| /** @file gio.h | |
| * @brief GIO Driver Definition File | |
| * @date 11.August.2009 | |
| * @version 1.01.000 | |
| * | |
| */ | |
| /* (c) Texas Instruments 2009-2010, All rights reserved. */ | |
| #ifndef __GIO_H__ | |
| #define __GIO_H__ | |
| /** @struct gioBase | |
| * @brief GIO Base Register Definition | |
| * | |
| * This structure is used to access the GIO module egisters. | |
| */ | |
| /** @typedef gioBASE_t | |
| * @brief GIO Register Frame Type Definition | |
| * | |
| * This type is used to access the GIO Registers. | |
| */ | |
| typedef volatile struct gioBase | |
| { | |
| unsigned GCR0; /**< 0x0000: Global Control Register */ | |
| unsigned PWDN; /**< 0x0004: Power Down Register */ | |
| unsigned INTDET; /**< 0x0008: Interrupt Detect Regsiter*/ | |
| unsigned POL; /**< 0x000C: Interrupt Polarity Register */ | |
| unsigned INTENASET; /**< 0x0010: Interrupt Enable Set Register */ | |
| unsigned INTENACLR; /**< 0x0014: Interrupt Enable Clear Register */ | |
| unsigned LVLSET; /**< 0x0018: Interrupt Priority Set Register */ | |
| unsigned LVLCLR; /**< 0x001C: Interrupt Priority Clear Register */ | |
| unsigned FLG; /**< 0x0020: Interrupt Flag Register */ | |
| unsigned OFFSET0; /**< 0x0024: Interrupt Offset A Register */ | |
| unsigned OFFSET1; /**< 0x0028: Interrupt Offset B Register */ | |
| } gioBASE_t; | |
| /** @struct gioPort | |
| * @brief GIO Port Register Definition | |
| */ | |
| /** @typedef gioPORT_t | |
| * @brief GIO Port Register Type Definition | |
| * | |
| * This type is used to access the GIO Port Registers. | |
| */ | |
| typedef volatile struct gioPort | |
| { | |
| unsigned DIR; /**< 0x0000: Data Direction Register */ | |
| unsigned DIN; /**< 0x0004: Data Input Register */ | |
| unsigned DOUT; /**< 0x0008: Data Output Register */ | |
| unsigned DSET; /**< 0x000C: Data Output Set Register */ | |
| unsigned DCLR; /**< 0x0010: Data Output Clear Register */ | |
| unsigned PDR; /**< 0x0014: Open Drain Regsiter */ | |
| unsigned PULDIS; /**< 0x0018: Pullup Disable Register */ | |
| unsigned PSL; /**< 0x001C: Pull Up/Down Selection Register */ | |
| } gioPORT_t; | |
| /** @def gioREG | |
| * @brief GIO Register Frame Pointer | |
| * | |
| * This pointer is used by the GIO driver to access the gio module registers. | |
| */ | |
| #define gioREG ((gioBASE_t *)0xFFF7BC00U) | |
| /** @def gioPORTA | |
| * @brief GIO Port (A) Register Pointer | |
| * | |
| * Pointer used by the GIO driver to access PORTA | |
| */ | |
| #define gioPORTA ((gioPORT_t *)0xFFF7BC34U) | |
| /** @def gioPORTB | |
| * @brief GIO Port (B) Register Pointer | |
| * | |
| * Pointer used by the GIO driver to access PORTB | |
| */ | |
| #define gioPORTB ((gioPORT_t *)0xFFF7BC54U) | |
| /* GIO Interface Functions */ | |
| void gioInit(void); | |
| void gioSetDirection(gioPORT_t *port, unsigned dir); | |
| void gioSetBit(gioPORT_t *port, unsigned bit, unsigned value); | |
| void gioSetPort(gioPORT_t *port, unsigned value); | |
| unsigned gioGetBit(gioPORT_t *port, unsigned bit); | |
| unsigned gioGetPort(gioPORT_t *port); | |
| void gioEnableNotification(unsigned bit); | |
| void gioDisableNotification(unsigned bit); | |
| void gioNotification(int bit); | |
| #endif |