Lines Matching refs:gpio

43 struct gpio;
45 static inline int au1000_gpio1_to_irq(int gpio)
47 return MAKE_IRQ(1, gpio - ALCHEMY_GPIO1_BASE);
50 static inline int au1000_gpio2_to_irq(int gpio)
63 static inline int au1500_gpio1_to_irq(int gpio)
65 gpio -= ALCHEMY_GPIO1_BASE;
67 switch (gpio) {
70 case 23 ... 28: return MAKE_IRQ(1, gpio);
76 static inline int au1500_gpio2_to_irq(int gpio)
78 gpio -= ALCHEMY_GPIO2_BASE;
80 switch (gpio) {
81 case 0 ... 3: return MAKE_IRQ(1, 16 + gpio - 0);
82 case 4 ... 5: return MAKE_IRQ(1, 21 + gpio - 4);
83 case 6 ... 7: return MAKE_IRQ(1, 29 + gpio - 6);
109 static inline int au1100_gpio1_to_irq(int gpio)
111 return MAKE_IRQ(1, gpio - ALCHEMY_GPIO1_BASE);
114 static inline int au1100_gpio2_to_irq(int gpio)
116 gpio -= ALCHEMY_GPIO2_BASE;
118 if ((gpio >= 8) && (gpio <= 15))
136 static inline int au1550_gpio1_to_irq(int gpio)
138 gpio -= ALCHEMY_GPIO1_BASE;
140 switch (gpio) {
142 case 20 ... 28: return MAKE_IRQ(1, gpio);
143 case 16 ... 17: return MAKE_IRQ(1, 18 + gpio - 16);
149 static inline int au1550_gpio2_to_irq(int gpio)
151 gpio -= ALCHEMY_GPIO2_BASE;
153 switch (gpio) {
156 case 6 ... 7: return MAKE_IRQ(1, 29 + gpio - 6);
180 static inline int au1200_gpio1_to_irq(int gpio)
182 return MAKE_IRQ(1, gpio - ALCHEMY_GPIO1_BASE);
185 static inline int au1200_gpio2_to_irq(int gpio)
187 gpio -= ALCHEMY_GPIO2_BASE;
189 switch (gpio) {
190 case 0 ... 2: return MAKE_IRQ(0, 5 + gpio - 0);
192 case 4 ... 7: return MAKE_IRQ(0, 24 + gpio - 4);
216 * GPIO1 block macros for common linux gpio functions.
218 static inline void alchemy_gpio1_set_value(int gpio, int v)
220 unsigned long mask = 1 << (gpio - ALCHEMY_GPIO1_BASE);
225 static inline int alchemy_gpio1_get_value(int gpio)
227 unsigned long mask = 1 << (gpio - ALCHEMY_GPIO1_BASE);
231 static inline int alchemy_gpio1_direction_input(int gpio)
233 unsigned long mask = 1 << (gpio - ALCHEMY_GPIO1_BASE);
238 static inline int alchemy_gpio1_direction_output(int gpio, int v)
243 alchemy_gpio1_set_value(gpio, v);
247 static inline int alchemy_gpio1_is_valid(int gpio)
249 return ((gpio >= ALCHEMY_GPIO1_BASE) && (gpio <= ALCHEMY_GPIO1_MAX));
252 static inline int alchemy_gpio1_to_irq(int gpio)
256 return au1000_gpio1_to_irq(gpio);
258 return au1100_gpio1_to_irq(gpio);
260 return au1500_gpio1_to_irq(gpio);
262 return au1550_gpio1_to_irq(gpio);
264 return au1200_gpio1_to_irq(gpio);
281 * GPIO2 block macros for common linux GPIO functions. The 'gpio'
284 static inline void __alchemy_gpio2_mod_dir(int gpio, int to_out)
287 unsigned long mask = 1 << (gpio - ALCHEMY_GPIO2_BASE);
298 static inline void alchemy_gpio2_set_value(int gpio, int v)
302 mask = ((v) ? 0x00010001 : 0x00010000) << (gpio - ALCHEMY_GPIO2_BASE);
307 static inline int alchemy_gpio2_get_value(int gpio)
311 (1 << (gpio - ALCHEMY_GPIO2_BASE));
314 static inline int alchemy_gpio2_direction_input(int gpio)
318 __alchemy_gpio2_mod_dir(gpio, 0);
323 static inline int alchemy_gpio2_direction_output(int gpio, int v)
326 alchemy_gpio2_set_value(gpio, v);
328 __alchemy_gpio2_mod_dir(gpio, 1);
333 static inline int alchemy_gpio2_is_valid(int gpio)
335 return ((gpio >= ALCHEMY_GPIO2_BASE) && (gpio <= ALCHEMY_GPIO2_MAX));
338 static inline int alchemy_gpio2_to_irq(int gpio)
342 return au1000_gpio2_to_irq(gpio);
344 return au1100_gpio2_to_irq(gpio);
346 return au1500_gpio2_to_irq(gpio);
348 return au1550_gpio2_to_irq(gpio);
350 return au1200_gpio2_to_irq(gpio);
464 /* wrappers for on-chip gpios; can be used before gpio chips have been
467 static inline int alchemy_gpio_direction_input(int gpio)
469 return (gpio >= ALCHEMY_GPIO2_BASE) ?
470 alchemy_gpio2_direction_input(gpio) :
471 alchemy_gpio1_direction_input(gpio);
474 static inline int alchemy_gpio_direction_output(int gpio, int v)
476 return (gpio >= ALCHEMY_GPIO2_BASE) ?
477 alchemy_gpio2_direction_output(gpio, v) :
478 alchemy_gpio1_direction_output(gpio, v);
481 static inline int alchemy_gpio_get_value(int gpio)
483 return (gpio >= ALCHEMY_GPIO2_BASE) ?
484 alchemy_gpio2_get_value(gpio) :
485 alchemy_gpio1_get_value(gpio);
488 static inline void alchemy_gpio_set_value(int gpio, int v)
490 if (gpio >= ALCHEMY_GPIO2_BASE)
491 alchemy_gpio2_set_value(gpio, v);
493 alchemy_gpio1_set_value(gpio, v);
496 static inline int alchemy_gpio_is_valid(int gpio)
498 return (gpio >= ALCHEMY_GPIO2_BASE) ?
499 alchemy_gpio2_is_valid(gpio) :
500 alchemy_gpio1_is_valid(gpio);
503 static inline int alchemy_gpio_to_irq(int gpio)
505 return (gpio >= ALCHEMY_GPIO2_BASE) ?
506 alchemy_gpio2_to_irq(gpio) :
507 alchemy_gpio1_to_irq(gpio);