📄 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 + -