gpio.h

Go to the documentation of this file.
00001 #ifndef _DEV_GPIO_H_
00002 #define _DEV_GPIO_H_
00003 
00045 #include <cfg/arch/gpio.h>
00046 #include <dev/irqreg.h>
00047 
00054 #define GPIO_CFG_DISABLED   0x00000001
00055 
00062 #define GPIO_CFG_OUTPUT     0x00000002
00063 
00067 #define GPIO_CFG_PULLUP     0x00000004
00068 
00074 #define GPIO_CFG_MULTIDRIVE 0x00000008
00075 
00079 #define GPIO_CFG_DEBOUNCE   0x00000010
00080 
00081 typedef struct {
00082     void (*iov_handler) (void *);
00083     void *iov_arg;
00084 } GPIO_VECTOR;
00085 
00086 typedef struct {
00087     IRQ_HANDLER *ios_sig;
00088     void (*ios_handler) (void *);
00089     int (*ios_ctl) (int cmd, void *param, int bit);
00090     GPIO_VECTOR *ios_vector;
00091 } GPIO_SIGNAL;
00092 
00093 #if defined(PIO_ISR)
00094 extern GPIO_SIGNAL sig_GPIO;
00095 #endif
00096 #if defined(PIOA_ISR)
00097 extern GPIO_SIGNAL sig_GPIO1;
00098 #endif
00099 #if defined(PIOB_ISR)
00100 extern GPIO_SIGNAL sig_GPIO2;
00101 #endif
00102 #if defined(PIOC_ISR)
00103 extern GPIO_SIGNAL sig_GPIO3;
00104 #endif
00105 
00106 __BEGIN_DECLS
00107 /* Prototypes */
00108 
00109 extern uint32_t GpioPinConfigGet(int bank, int bit);
00110 extern int GpioPinConfigSet(int bank, int bit, uint32_t flags);
00111 extern int GpioPortConfigSet(int bank, u_int mask, uint32_t flags);
00112 
00113 extern int GpioPinGet(int bank, int bit);
00114 extern void GpioPinSet(int bank, int bit, int value);
00115 extern void GpioPinSetLow(int bank, int bit);
00116 extern void GpioPinSetHigh(int bank, int bit);
00117 
00118 extern u_int GpioPortGet(int bank);
00119 extern void GpioPortSet(int bank, u_int value);
00120 extern void GpioPortSetLow(int bank, u_int mask);
00121 extern void GpioPortSetHigh(int bank, u_int mask);
00122 
00123 extern int GpioRegisterIrqHandler(GPIO_SIGNAL * sig, int bit, void (*handler) (void *), void *arg);
00124 extern int GpioIrqEnable(GPIO_SIGNAL * sig, int bit);
00125 extern int GpioIrqDisable(GPIO_SIGNAL * sig, int bit);
00126 
00127 __END_DECLS
00128 /* End of prototypes */
00129 #endif

© 2000-2007 by egnite Software GmbH - visit http://www.ethernut.de/