⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csl_gpiohal.h

📁 SEED的VPM642测试程序-板级支持库
💻 H
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************\
*      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 + -