]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_R4_RM48_TMS570_CCS5/Library/gio.h
Complete RM4x and TMS570 demo.
[freertos] / FreeRTOS / Demo / CORTEX_R4_RM48_TMS570_CCS5 / Library / gio.h
1 /** @file gio.h\r
2 *   @brief GIO Driver Definition File\r
3 *   @date 11.August.2009\r
4 *   @version 1.01.000\r
5 *   \r
6 */\r
7 \r
8 /* (c) Texas Instruments 2009-2010, All rights reserved. */\r
9 \r
10 \r
11 #ifndef __GIO_H__\r
12 #define __GIO_H__\r
13 \r
14 /** @struct gioBase\r
15 *   @brief GIO Base Register Definition\r
16 *\r
17 *   This structure is used to access the GIO module egisters.\r
18 */\r
19 /** @typedef gioBASE_t\r
20 *   @brief GIO Register Frame Type Definition\r
21 *\r
22 *   This type is used to access the GIO Registers.\r
23 */\r
24 typedef volatile struct gioBase\r
25 {\r
26     unsigned GCR0;      /**< 0x0000: Global Control Register */\r
27     unsigned PWDN;      /**< 0x0004: Power Down Register */\r
28     unsigned INTDET;    /**< 0x0008: Interrupt Detect Regsiter*/\r
29     unsigned POL;       /**< 0x000C: Interrupt Polarity Register */\r
30     unsigned INTENASET; /**< 0x0010: Interrupt Enable Set Register */\r
31     unsigned INTENACLR; /**< 0x0014: Interrupt Enable Clear Register */\r
32     unsigned LVLSET;    /**< 0x0018: Interrupt Priority Set Register */\r
33     unsigned LVLCLR;    /**< 0x001C: Interrupt Priority Clear Register */\r
34     unsigned FLG;       /**< 0x0020: Interrupt Flag Register */\r
35     unsigned OFFSET0;   /**< 0x0024: Interrupt Offset A Register */\r
36     unsigned OFFSET1;   /**< 0x0028: Interrupt Offset B Register */\r
37 } gioBASE_t;\r
38 \r
39 \r
40 /** @struct gioPort\r
41 *   @brief GIO Port Register Definition\r
42 */\r
43 /** @typedef gioPORT_t\r
44 *   @brief GIO Port Register Type Definition\r
45 *\r
46 *   This type is used to access the GIO Port Registers.\r
47 */\r
48 typedef volatile struct gioPort\r
49 {\r
50     unsigned DIR;    /**< 0x0000: Data Direction Register */\r
51     unsigned DIN;    /**< 0x0004: Data Input Register */\r
52     unsigned DOUT;   /**< 0x0008: Data Output Register */\r
53     unsigned DSET;   /**< 0x000C: Data Output Set Register */\r
54     unsigned DCLR;   /**< 0x0010: Data Output Clear Register */\r
55     unsigned PDR;    /**< 0x0014: Open Drain Regsiter */\r
56     unsigned PULDIS; /**< 0x0018: Pullup Disable Register */\r
57     unsigned PSL;    /**< 0x001C: Pull Up/Down Selection Register */\r
58 } gioPORT_t;\r
59 \r
60 \r
61 /** @def gioREG\r
62 *   @brief GIO Register Frame Pointer\r
63 *\r
64 *   This pointer is used by the GIO driver to access the gio module registers.\r
65 */\r
66 #define gioREG   ((gioBASE_t *)0xFFF7BC00U)\r
67 \r
68 /** @def gioPORTA\r
69 *   @brief GIO Port (A) Register Pointer\r
70 *\r
71 *   Pointer used by the GIO driver to access PORTA\r
72 */\r
73 #define gioPORTA ((gioPORT_t *)0xFFF7BC34U)\r
74 \r
75 /** @def gioPORTB\r
76 *   @brief GIO Port (B) Register Pointer\r
77 *\r
78 *   Pointer used by the GIO driver to access PORTB\r
79 */\r
80 #define gioPORTB ((gioPORT_t *)0xFFF7BC54U)\r
81 \r
82 \r
83 /* GIO Interface Functions */\r
84 void gioInit(void);\r
85 void gioSetDirection(gioPORT_t *port, unsigned dir);\r
86 void gioSetBit(gioPORT_t *port, unsigned bit, unsigned value);\r
87 void gioSetPort(gioPORT_t *port, unsigned value);\r
88 unsigned gioGetBit(gioPORT_t *port, unsigned bit);\r
89 unsigned gioGetPort(gioPORT_t *port);\r
90 void gioEnableNotification(unsigned bit);\r
91 void gioDisableNotification(unsigned bit);\r
92 void gioNotification(int bit);\r
93 \r
94 #endif\r