📄 csl_gpiohal.h
字号:
/******************************************************************************\* Copyright (C) 2000-2001 Texas Instruments Incorporated.* All Rights Reserved*------------------------------------------------------------------------------* FILENAME...... csl_gpiohal.h* DATE CREATED.. 12/04/2000 * LAST MODIFIED. 06/17/2003 - Added support for 6712C* 06/09/2003 - Added support for 6711C* 10/02/2001 - GPIO1 implementation* *------------------------------------------------------------------------------* REGISTERS** GPENx - GPIO Enable register* GPDIRx - GPIO Direction register * GPVALx - GPIO Value register * GPDHx - GPIO Delta High register * GPHMx - GPIO High Mask register * GPDLx - GPIO Delta Low register * GPLMx - GPIO Low Mask register * GPGCx - GPIO Global Control register * GPPOLx - GPIO Interrupt Polarity register ** with x = {0,1} \******************************************************************************/#ifndef _CSL_GPIOHAL_H_#define _CSL_GPIOHAL_H_#include <csl_stdinchal.h>#include <csl_chip.h>#if (GPIO_SUPPORT)/******************************************************************************\* MISC section \******************************************************************************/#define _GPIO_BASE_ADDR 0x01B00000u #define _GPIO_BASE_ADDR0 0x01B00000u#if (CHIP_DA610)#define _GPIO_BASE_ADDR1 0x01B04000u#endif/******************************************************************************\* Module level register/field access macros\******************************************************************************/ /* -------------------------- */ /* FIELD MAKE MACROS */ /* -------------------------- */ #define GPIO_FMK(REG,FIELD,x)\ _PER_FMK(GPIO,##REG,##FIELD,x) #define GPIO_FMKS(REG,FIELD,SYM)\ _PER_FMKS(GPIO,##REG,##FIELD,##SYM) /* ----------------------------------------- */ /* RAW REGISTER/FIELD ACCESS MACROS */ /* ----------------------------------------- */ #define GPIO_ADDR(REG)\ _GPIO_##REG##_ADDR #define GPIO_RGET(REG)\ _PER_RGET(_GPIO_##REG##_ADDR,GPIO,##REG) #define GPIO_RSET(REG,x)\ _PER_RSET(_GPIO_##REG##_ADDR,GPIO,##REG,x) #define GPIO_FGET(REG,FIELD)\ _GPIO_##REG##_FGET(##FIELD) #define GPIO_FSET(REG,FIELD,x)\ _GPIO_##REG##_FSET(##FIELD,##x) #define GPIO_FSETS(REG,FIELD,SYM)\ _GPIO_##REG##_FSETS(##FIELD,##SYM) /* --------------------------------------------------- */ /* ADDRESS BASED REGISTER/FIELD ACCESS MACROS */ /* --------------------------------------------------- */ #define GPIO_RGETA(addr,REG)\ _PER_RGET(addr,GPIO,##REG) #define GPIO_RSETA(addr,REG,x)\ _PER_RSET(addr,GPIO,##REG,x) #define GPIO_FGETA(addr,REG,FIELD)\ _PER_FGET(addr,GPIO,##REG,##FIELD) #define GPIO_FSETA(addr,REG,FIELD,x)\ _PER_FSET(addr,GPIO,##REG,##FIELD,x) #define GPIO_FSETSA(addr,REG,FIELD,SYM)\ _PER_FSETS(addr,GPIO,##REG,##FIELD,##SYM) /* -------------------------------------------------- */ /* HANDLE BASED REGISTER/FIELD ACCESS MACROS */ /* -------------------------------------------------- */ #define GPIO_ADDRH(h,REG)\ (Uint32)(&((h)->baseAddr[_GPIO_##REG##_OFFSET])) #define GPIO_RGETH(h,REG)\ GPIO_RGETA(GPIO_ADDRH(h,##REG),##REG) #define GPIO_RSETH(h,REG,x)\ GPIO_RSETA(GPIO_ADDRH(h,##REG),##REG,x) #define GPIO_FGETH(h,REG,FIELD)\ GPIO_FGETA(GPIO_ADDRH(h,##REG),##REG,##FIELD) #define GPIO_FSETH(h,REG,FIELD,x)\ GPIO_FSETA(GPIO_ADDRH(h,##REG),##REG,##FIELD,x) #define GPIO_FSETSH(h,REG,FIELD,SYM)\ GPIO_FSETSA(GPIO_ADDRH(h,##REG),##REG,##FIELD,##SYM)/******************************************************************************\* _____________________* | |* | G P E N |* |___________________|** GPEN - GPIO Enable register** FIELDS (msb -> lsb)* (rw) GPXEN *\******************************************************************************/ #define _GPIO_GPEN_OFFSET 0 #define _GPIO_GPEN_ADDR 0x01B00000u#if (CHIP_6711C || CHIP_6712C) #define _GPIO_GPEN_GPXEN_MASK 0x000000F4u#else #define _GPIO_GPEN_GPXEN_MASK 0x0000FFFFu#endif #define _GPIO_GPEN_GPXEN_SHIFT 0x00000000u#if (CHIP_6713 || CHIP_DA610 || CHIP_6711C || CHIP_6712C) #define GPIO_GPEN_GPXEN_DEFAULT 0x000000F0u#else #define GPIO_GPEN_GPXEN_DEFAULT 0x000000F9u#endif #define GPIO_GPEN_GPXEN_OF(x) _VALUEOF(x) #define GPIO_GPEN_OF(x) _VALUEOF(x) #define GPIO_GPEN_DEFAULT (Uint32)( \ _PER_FDEFAULT(GPIO,GPEN,GPXEN)\ ) #define GPIO_GPEN_RMK(gpxen) (Uint32)( \ _PER_FMK(GPIO,GPEN,GPXEN,gpxen)\ ) #define _GPIO_GPEN_FGET(FIELD)\ _PER_FGET(_GPIO_GPEN_ADDR,GPIO,GPEN,##FIELD) #define _GPIO_GPEN_FSET(FIELD,field)\ _PER_FSET(_GPIO_GPEN_ADDR,GPIO,GPEN,##FIELD,field) #define _GPIO_GPEN_FSETS(FIELD,SYM)\ _PER_FSETS(_GPIO_GPEN_ADDR,GPIO,GPEN,##FIELD,##SYM)/******************************************************************************\* _____________________* | |* | G P D I R |* |___________________|** GPDIR - GPIO Direction register** FIELDS (msb -> lsb)* (rw) GPXDIR *\******************************************************************************/ #define _GPIO_GPDIR_OFFSET 1 #define _GPIO_GPDIR_ADDR 0x01B00004u#if (CHIP_6711C || CHIP_6712C) #define _GPIO_GPDIR_GPXDIR_MASK 0x000000F4u#else #define _GPIO_GPDIR_GPXDIR_MASK 0x0000FFFFu#endif #define _GPIO_GPDIR_GPXDIR_SHIFT 0x00000000u #define GPIO_GPDIR_GPXDIR_DEFAULT 0x00000000u #define GPIO_GPDIR_GPXDIR_OF(x) _VALUEOF(x) #define GPIO_GPDIR_OF(x) _VALUEOF(x) #define GPIO_GPDIR_DEFAULT (Uint32)( \ _PER_FDEFAULT(GPIO,GPDIR,GPXDIR)\ ) #define GPIO_GPDIR_RMK(gpxdir) (Uint32)( \ _PER_FMK(GPIO,GPDIR,GPXDIR,gpxdir)\ ) #define _GPIO_GPDIR_FGET(FIELD)\ _PER_FGET(_GPIO_GPDIR_ADDR,GPIO,GPDIR,##FIELD) #define _GPIO_GPDIR_FSET(FIELD,field)\ _PER_FSET(_GPIO_GPDIR_ADDR,GPIO,GPDIR,##FIELD,field) #define _GPIO_GPDIR_FSETS(FIELD,SYM)\ _PER_FSETS(_GPIO_GPDIR_ADDR,GPIO,GPDIR,##FIELD,##SYM)/******************************************************************************\* _____________________* | |* | G P V A L |* |___________________|** GPVAL - GPIO Value register** FIELDS (msb -> lsb)* (rw) GPXVAL *\******************************************************************************/ #define _GPIO_GPVAL_OFFSET 2 #define _GPIO_GPVAL_ADDR 0x01B00008u#if (CHIP_6711C || CHIP_6712C) #define _GPIO_GPVAL_GPXVAL_MASK 0x000000F4u#else #define _GPIO_GPVAL_GPXVAL_MASK 0x0000FFFFu#endif #define _GPIO_GPVAL_GPXVAL_SHIFT 0x00000000u #define GPIO_GPVAL_GPXVAL_DEFAULT 0x00000000u #define GPIO_GPVAL_GPXVAL_OF(x) _VALUEOF(x) #define GPIO_GPVAL_OF(x) _VALUEOF(x) #define GPIO_GPVAL_DEFAULT (Uint32)( \ _PER_FDEFAULT(GPIO,GPVAL,GPXVAL)\ ) #define GPIO_GPVAL_RMK(gpxval) (Uint32)( \ _PER_FMK(GPIO,GPVAL,GPXVAL,gpxval)\ ) #define _GPIO_GPVAL_FGET(FIELD)\ _PER_FGET(_GPIO_GPVAL_ADDR,GPIO,GPVAL,##FIELD) #define _GPIO_GPVAL_FSET(FIELD,field)\ _PER_FSET(_GPIO_GPVAL_ADDR,GPIO,GPVAL,##FIELD,field) #define _GPIO_GPVAL_FSETS(FIELD,SYM)\ _PER_FSETS(_GPIO_GPVAL_ADDR,GPIO,GPVAL,##FIELD,##SYM)/******************************************************************************\* _____________________* | |* | G P D H |* |___________________|** GPDH - GPIO Delta High register** FIELDS (msb -> lsb)* (rw) GPXDH *\******************************************************************************/ #define _GPIO_GPDH_OFFSET 4 #define _GPIO_GPDH_ADDR 0x01B00010u#if (CHIP_6711C || CHIP_6712C) #define _GPIO_GPDH_GPXDH_MASK 0x000000F4u#else #define _GPIO_GPDH_GPXDH_MASK 0x0000FFFFu#endif #define _GPIO_GPDH_GPXDH_SHIFT 0x00000000u #define GPIO_GPDH_GPXDH_DEFAULT 0x00000000u #define GPIO_GPDH_GPXDH_OF(x) _VALUEOF(x) #define GPIO_GPDH_OF(x) _VALUEOF(x) #define GPIO_GPDH_DEFAULT (Uint32)( \ _PER_FDEFAULT(GPIO,GPDH,GPXDH)\ ) #define GPIO_GPDH_RMK(gpxdh) (Uint32)( \ _PER_FMK(GPIO,GPDH,GPXDH,gpxdh)\ ) #define _GPIO_GPDH_FGET(FIELD)\ _PER_FGET(_GPIO_GPDH_ADDR,GPIO,GPDH,##FIELD) #define _GPIO_GPDH_FSET(FIELD,field)\ _PER_FSET(_GPIO_GPDH_ADDR,GPIO,GPDH,##FIELD,field) #define _GPIO_GPDH_FSETS(FIELD,SYM)\ _PER_FSETS(_GPIO_GPDH_ADDR,GPIO,GPDH,##FIELD,##SYM)/******************************************************************************\* _____________________* | |* | G P H M |* |___________________|** GPHM - GPIO High Mask register** FIELDS (msb -> lsb)* (rw) GPXHM *\******************************************************************************/ #define _GPIO_GPHM_OFFSET 5 #define _GPIO_GPHM_ADDR 0x01B00014u#if (CHIP_6711C || CHIP_6712C) #define _GPIO_GPHM_GPXHM_MASK 0x000000F4u#else #define _GPIO_GPHM_GPXHM_MASK 0x0000FFFFu#endif #define _GPIO_GPHM_GPXHM_SHIFT 0x00000000u #define GPIO_GPHM_GPXHM_DEFAULT 0x00000000u #define GPIO_GPHM_GPXHM_OF(x) _VALUEOF(x) #define GPIO_GPHM_OF(x) _VALUEOF(x) #define GPIO_GPHM_DEFAULT (Uint32)( \ _PER_FDEFAULT(GPIO,GPHM,GPXHM)\ ) #define GPIO_GPHM_RMK(gpxhm) (Uint32)( \ _PER_FMK(GPIO,GPHM,GPXHM,gpxhm)\ ) #define _GPIO_GPHM_FGET(FIELD)\ _PER_FGET(_GPIO_GPHM_ADDR,GPIO,GPHM,##FIELD) #define _GPIO_GPHM_FSET(FIELD,field)\ _PER_FSET(_GPIO_GPHM_ADDR,GPIO,GPHM,##FIELD,field) #define _GPIO_GPHM_FSETS(FIELD,SYM)\ _PER_FSETS(_GPIO_GPHM_ADDR,GPIO,GPHM,##FIELD,##SYM)/******************************************************************************\* _____________________* | |* | G P D L |* |___________________|** GPDL - GPIO Delta Low register** FIELDS (msb -> lsb)* (rw) GPXDL *\******************************************************************************/ #define _GPIO_GPDL_OFFSET 6 #define _GPIO_GPDL_ADDR 0x01B00018u#if (CHIP_6711C || CHIP_6712C) #define _GPIO_GPDL_GPXDL_MASK 0x000000F4u#else #define _GPIO_GPDL_GPXDL_MASK 0x0000FFFFu#endif #define _GPIO_GPDL_GPXDL_SHIFT 0x00000000u #define GPIO_GPDL_GPXDL_DEFAULT 0x00000000u #define GPIO_GPDL_GPXDL_OF(x) _VALUEOF(x) #define GPIO_GPDL_OF(x) _VALUEOF(x) #define GPIO_GPDL_DEFAULT (Uint32)( \ _PER_FDEFAULT(GPIO,GPDL,GPXDL)\ ) #define GPIO_GPDL_RMK(gpxdl) (Uint32)( \ _PER_FMK(GPIO,GPDL,GPXDL,gpxdl)\ ) #define _GPIO_GPDL_FGET(FIELD)\ _PER_FGET(_GPIO_GPDL_ADDR,GPIO,GPDL,##FIELD)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -