]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_LM3S102_Rowley/hw_include/gpio.h
First version under SVN is V4.0.1
[freertos] / Demo / CORTEX_LM3S102_Rowley / hw_include / gpio.h
1 //*****************************************************************************\r
2 //\r
3 // gpio.h - Defines and Macros for GPIO API.\r
4 //\r
5 // Copyright (c) 2005,2006 Luminary Micro, Inc.  All rights reserved.\r
6 //\r
7 // Software License Agreement\r
8 //\r
9 // Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
10 // exclusively on LMI's Stellaris Family of microcontroller products.\r
11 //\r
12 // The software is owned by LMI and/or its suppliers, and is protected under\r
13 // applicable copyright laws.  All rights are reserved.  Any use in violation\r
14 // of the foregoing restrictions may subject the user to criminal sanctions\r
15 // under applicable laws, as well as to civil liability for the breach of the\r
16 // terms and conditions of this license.\r
17 //\r
18 // THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
19 // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
20 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
21 // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
22 // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
23 //\r
24 // This is part of revision 523 of the Stellaris Driver Library.\r
25 //\r
26 //*****************************************************************************\r
27 \r
28 #ifndef __GPIO_H__\r
29 #define __GPIO_H__\r
30 \r
31 #ifdef __cplusplus\r
32 extern "C"\r
33 {\r
34 #endif\r
35 \r
36 //*****************************************************************************\r
37 //\r
38 // The following values define the bit field for the ucPins argument to several\r
39 // of the APIs.\r
40 //\r
41 //*****************************************************************************\r
42 #define GPIO_PIN_0              0x00000001  // GPIO pin 0\r
43 #define GPIO_PIN_1              0x00000002  // GPIO pin 1\r
44 #define GPIO_PIN_2              0x00000004  // GPIO pin 2\r
45 #define GPIO_PIN_3              0x00000008  // GPIO pin 3\r
46 #define GPIO_PIN_4              0x00000010  // GPIO pin 4\r
47 #define GPIO_PIN_5              0x00000020  // GPIO pin 5\r
48 #define GPIO_PIN_6              0x00000040  // GPIO pin 6\r
49 #define GPIO_PIN_7              0x00000080  // GPIO pin 7\r
50 \r
51 //*****************************************************************************\r
52 //\r
53 // Values that can be passed to GPIODirModeSet as the ulPinIO parameter, and\r
54 // returned from GPIODirModeGet.\r
55 //\r
56 //*****************************************************************************\r
57 #define GPIO_DIR_MODE_IN        0x00000000  // Pin is a GPIO input\r
58 #define GPIO_DIR_MODE_OUT       0x00000001  // Pin is a GPIO output\r
59 #define GPIO_DIR_MODE_HW        0x00000002  // Pin is a peripheral function\r
60 \r
61 //*****************************************************************************\r
62 //\r
63 // Values that can be passed to GPIOIntTypeSet as the ulIntType parameter, and\r
64 // returned from GPIOIntTypeGet.\r
65 //\r
66 //*****************************************************************************\r
67 #define GPIO_FALLING_EDGE       0x00000000  // Interrupt on falling edge\r
68 #define GPIO_RISING_EDGE        0x00000004  // Interrupt on rising edge\r
69 #define GPIO_BOTH_EDGES         0x00000001  // Interrupt on both edges\r
70 #define GPIO_LOW_LEVEL          0x00000002  // Interrupt on low level\r
71 #define GPIO_HIGH_LEVEL         0x00000007  // Interrupt on high level\r
72 \r
73 //*****************************************************************************\r
74 //\r
75 // Values that can be passed to GPIOPadConfigSet as the ulStrength parameter,\r
76 // and returned by GPIOPadConfigGet in the *pulStrength parameter.\r
77 //\r
78 //*****************************************************************************\r
79 #define GPIO_STRENGTH_2MA       0x00000001  // 2mA drive strength\r
80 #define GPIO_STRENGTH_4MA       0x00000002  // 4mA drive strength\r
81 #define GPIO_STRENGTH_8MA       0x00000004  // 8mA drive strength\r
82 #define GPIO_STRENGTH_8MA_SC    0x0000000C  // 8mA drive with slew rate control\r
83 \r
84 //*****************************************************************************\r
85 //\r
86 // Values that can be passed to GPIOPadConfigSet as the ulPadType parameter,\r
87 // and returned by GPIOPadConfigGet in the *pulPadType parameter.\r
88 //\r
89 //*****************************************************************************\r
90 #define GPIO_PIN_TYPE_STD       0x00000008  // Push-pull\r
91 #define GPIO_PIN_TYPE_STD_WPU   0x0000000A  // Push-pull with weak pull-up\r
92 #define GPIO_PIN_TYPE_STD_WPD   0x0000000C  // Push-pull with weak pull-down\r
93 #define GPIO_PIN_TYPE_OD        0x00000009  // Open-drain\r
94 #define GPIO_PIN_TYPE_OD_WPU    0x0000000B  // Open-drain with weak pull-up\r
95 #define GPIO_PIN_TYPE_OD_WPD    0x0000000D  // Open-drain with weak pull-down\r
96 #define GPIO_PIN_TYPE_ANALOG    0x00000000  // Analog comparator\r
97 \r
98 //*****************************************************************************\r
99 //\r
100 // Prototypes for the APIs.\r
101 //\r
102 //*****************************************************************************\r
103 extern void GPIODirModeSet(unsigned long ulPort, unsigned char ucPins,\r
104                            unsigned long ulPinIO);\r
105 extern unsigned long GPIODirModeGet(unsigned long ulPort, unsigned char ucPin);\r
106 extern void GPIOIntTypeSet(unsigned long ulPort, unsigned char ucPins,\r
107                            unsigned long ulIntType);\r
108 extern unsigned long GPIOIntTypeGet(unsigned long ulPort, unsigned char ucPin);\r
109 extern void GPIOPadConfigSet(unsigned long ulPort, unsigned char ucPins,\r
110                              unsigned long ulStrength,\r
111                              unsigned long ulPadType);\r
112 extern void GPIOPadConfigGet(unsigned long ulPort, unsigned char ucPin,\r
113                              unsigned long *pulStrength,\r
114                              unsigned long *pulPadType);\r
115 extern void GPIOPinIntEnable(unsigned long ulPort, unsigned char ucPins);\r
116 extern void GPIOPinIntDisable(unsigned long ulPort, unsigned char ucPins);\r
117 extern long GPIOPinIntStatus(unsigned long ulPort, tBoolean bMasked);\r
118 extern void GPIOPinIntClear(unsigned long ulPort, unsigned char ucPins);\r
119 extern void GPIOPortIntRegister(unsigned long ulPort,\r
120                                 void (*pfIntHandler)(void));\r
121 extern void GPIOPortIntUnregister(unsigned long ulPort);\r
122 extern long GPIOPinRead(unsigned long ulPort, unsigned char ucPins);\r
123 extern void GPIOPinWrite(unsigned long ulPort, unsigned char ucPins,\r
124                          unsigned char ucVal);\r
125 extern void GPIOPinTypeComparator(unsigned long ulPort, unsigned char ucPins);\r
126 extern void GPIOPinTypeI2C(unsigned long ulPort, unsigned char ucPins);\r
127 extern void GPIOPinTypeSSI(unsigned long ulPort, unsigned char ucPins);\r
128 extern void GPIOPinTypeTimer(unsigned long ulPort, unsigned char ucPins);\r
129 extern void GPIOPinTypeUART(unsigned long ulPort, unsigned char ucPins);\r
130 \r
131 #ifdef __cplusplus\r
132 }\r
133 #endif\r
134 \r
135 #endif //  __GPIO_H__\r