1 //*****************************************************************************
\r
3 // gpio.h - Defines and Macros for GPIO API.
\r
5 // Copyright (c) 2005,2006 Luminary Micro, Inc. All rights reserved.
\r
7 // Software License Agreement
\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
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
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
24 // This is part of revision 991 of the Stellaris Driver Library.
\r
26 //*****************************************************************************
\r
36 //*****************************************************************************
\r
38 // The following values define the bit field for the ucPins argument to several
\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
51 //*****************************************************************************
\r
53 // Values that can be passed to GPIODirModeSet as the ulPinIO parameter, and
\r
54 // returned from GPIODirModeGet.
\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
61 //*****************************************************************************
\r
63 // Values that can be passed to GPIOIntTypeSet as the ulIntType parameter, and
\r
64 // returned from GPIOIntTypeGet.
\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
73 //*****************************************************************************
\r
75 // Values that can be passed to GPIOPadConfigSet as the ulStrength parameter,
\r
76 // and returned by GPIOPadConfigGet in the *pulStrength parameter.
\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
84 //*****************************************************************************
\r
86 // Values that can be passed to GPIOPadConfigSet as the ulPadType parameter,
\r
87 // and returned by GPIOPadConfigGet in the *pulPadType parameter.
\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
98 //*****************************************************************************
\r
100 // Prototypes for the APIs.
\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 GPIOPinTypePWM(unsigned long ulPort, unsigned char ucPins);
\r
128 extern void GPIOPinTypeQEI(unsigned long ulPort, unsigned char ucPins);
\r
129 extern void GPIOPinTypeSSI(unsigned long ulPort, unsigned char ucPins);
\r
130 extern void GPIOPinTypeTimer(unsigned long ulPort, unsigned char ucPins);
\r
131 extern void GPIOPinTypeUART(unsigned long ulPort, unsigned char ucPins);
\r
137 #endif // __GPIO_H__
\r