Nut/OS  5.0.5
API Reference
gpio_def.h
Go to the documentation of this file.
00001 #ifndef _DEV_GPIO_DEF_H_
00002 #define _DEV_GPIO_DEF_H_
00003 
00045 #define NUTGPIO_PORT    0
00046 #define NUTGPIO_PORTA   1
00047 #define NUTGPIO_PORTB   2
00048 #define NUTGPIO_PORTC   3
00049 #define NUTGPIO_PORTD   4
00050 #define NUTGPIO_PORTE   5
00051 #define NUTGPIO_PORTF   6
00052 #define NUTGPIO_PORTG   7
00053 #define NUTGPIO_PORTH   8
00054 #define NUTGPIO_PORTI   9
00055 #define NUTGPIO_PORTJ   10
00056 #define NUTGPIO_PORTK   11
00057 #define NUTGPIO_PORTL   12
00058 
00059 #define NUTGPIO_EXTINT0     1
00060 #define NUTGPIO_EXTINT1     2
00061 #define NUTGPIO_EXTINT2     3
00062 #define NUTGPIO_EXTINT3     4
00063 #define NUTGPIO_EXTINT4     5
00064 #define NUTGPIO_EXTINT5     6
00065 #define NUTGPIO_EXTINT6     7
00066 #define NUTGPIO_EXTINT7     8
00067 #define NUTGPIO_EXTFIQ0    -1
00068 
00069 
00077 #define GPIO_CFG_INPUT      0x00000000
00078 
00079 
00086 #define GPIO_CFG_DISABLED   0x00000001
00087 
00094 #define GPIO_CFG_OUTPUT     0x00000002
00095 
00099 #define GPIO_CFG_PULLUP     0x00000004
00100 
00106 #define GPIO_CFG_MULTIDRIVE 0x00000008
00107 
00111 #define GPIO_CFG_DEBOUNCE   0x00000010
00112 
00117 #define GPIO_CFG_PERIPHERAL0 0x00000020
00118 
00123 #define GPIO_CFG_PERIPHERAL1 0x00000040
00124 
00129 #define GPIO_CFG_PERIPHERAL2 0x00000080
00130 
00135 #define GPIO_CFG_PERIPHERAL3 0x00000100
00136 
00137 typedef struct {
00138     void (*iov_handler) (void *);
00139     void *iov_arg;
00140 } GPIO_VECTOR;
00141 
00142 typedef struct {
00143     IRQ_HANDLER *ios_sig;
00144     void (*ios_handler) (void *);
00145     int (*ios_ctl) (int cmd, void *param, int bit);
00146     GPIO_VECTOR *ios_vector;
00147 } GPIO_SIGNAL;
00148 
00149 #if defined(PIO_ISR)
00150 extern GPIO_SIGNAL sig_GPIO;
00151 #endif
00152 #if defined(PIOA_ISR)
00153 extern GPIO_SIGNAL sig_GPIO1;
00154 #endif
00155 #if defined(PIOB_ISR)
00156 extern GPIO_SIGNAL sig_GPIO2;
00157 #endif
00158 #if defined(PIOC_ISR)
00159 extern GPIO_SIGNAL sig_GPIO3;
00160 #endif
00161 
00162 extern uint32_t GpioPinConfigGet(int bank, int bit);
00163 extern int GpioPinConfigSet(int bank, int bit, uint32_t flags);
00164 extern int GpioPortConfigSet(int bank, unsigned int mask, uint32_t flags);
00165 
00166 extern int GpioPinGet(int bank, int bit);
00167 extern void GpioPinSet(int bank, int bit, int value);
00168 extern void GpioPinSetLow(int bank, int bit);
00169 extern void GpioPinSetHigh(int bank, int bit);
00170 
00171 extern unsigned int GpioPortGet(int bank);
00172 extern void GpioPortSet(int bank, unsigned int value);
00173 extern void GpioPortSetLow(int bank, unsigned int mask);
00174 extern void GpioPortSetHigh(int bank, unsigned int mask);
00175 
00176 extern int GpioRegisterIrqHandler(GPIO_SIGNAL * sig, int bit, void (*handler) (void *), void *arg);
00177 extern int GpioIrqEnable(GPIO_SIGNAL * sig, int bit);
00178 extern int GpioIrqDisable(GPIO_SIGNAL * sig, int bit);
00179 
00180 #endif /* _DEV_GPIO_DEF_H_ */