1/* 2 * arch/arm/mach-ep93xx/include/mach/gpio.h 3 */ 4 5#ifndef __ASM_ARCH_GPIO_H 6#define __ASM_ARCH_GPIO_H 7 8/* GPIO port A. */ 9#define EP93XX_GPIO_LINE_A(x) ((x) + 0) 10#define EP93XX_GPIO_LINE_EGPIO0 EP93XX_GPIO_LINE_A(0) 11#define EP93XX_GPIO_LINE_EGPIO1 EP93XX_GPIO_LINE_A(1) 12#define EP93XX_GPIO_LINE_EGPIO2 EP93XX_GPIO_LINE_A(2) 13#define EP93XX_GPIO_LINE_EGPIO3 EP93XX_GPIO_LINE_A(3) 14#define EP93XX_GPIO_LINE_EGPIO4 EP93XX_GPIO_LINE_A(4) 15#define EP93XX_GPIO_LINE_EGPIO5 EP93XX_GPIO_LINE_A(5) 16#define EP93XX_GPIO_LINE_EGPIO6 EP93XX_GPIO_LINE_A(6) 17#define EP93XX_GPIO_LINE_EGPIO7 EP93XX_GPIO_LINE_A(7) 18 19/* GPIO port B. */ 20#define EP93XX_GPIO_LINE_B(x) ((x) + 8) 21#define EP93XX_GPIO_LINE_EGPIO8 EP93XX_GPIO_LINE_B(0) 22#define EP93XX_GPIO_LINE_EGPIO9 EP93XX_GPIO_LINE_B(1) 23#define EP93XX_GPIO_LINE_EGPIO10 EP93XX_GPIO_LINE_B(2) 24#define EP93XX_GPIO_LINE_EGPIO11 EP93XX_GPIO_LINE_B(3) 25#define EP93XX_GPIO_LINE_EGPIO12 EP93XX_GPIO_LINE_B(4) 26#define EP93XX_GPIO_LINE_EGPIO13 EP93XX_GPIO_LINE_B(5) 27#define EP93XX_GPIO_LINE_EGPIO14 EP93XX_GPIO_LINE_B(6) 28#define EP93XX_GPIO_LINE_EGPIO15 EP93XX_GPIO_LINE_B(7) 29 30/* GPIO port C. */ 31#define EP93XX_GPIO_LINE_C(x) ((x) + 40) 32#define EP93XX_GPIO_LINE_ROW0 EP93XX_GPIO_LINE_C(0) 33#define EP93XX_GPIO_LINE_ROW1 EP93XX_GPIO_LINE_C(1) 34#define EP93XX_GPIO_LINE_ROW2 EP93XX_GPIO_LINE_C(2) 35#define EP93XX_GPIO_LINE_ROW3 EP93XX_GPIO_LINE_C(3) 36#define EP93XX_GPIO_LINE_ROW4 EP93XX_GPIO_LINE_C(4) 37#define EP93XX_GPIO_LINE_ROW5 EP93XX_GPIO_LINE_C(5) 38#define EP93XX_GPIO_LINE_ROW6 EP93XX_GPIO_LINE_C(6) 39#define EP93XX_GPIO_LINE_ROW7 EP93XX_GPIO_LINE_C(7) 40 41/* GPIO port D. */ 42#define EP93XX_GPIO_LINE_D(x) ((x) + 24) 43#define EP93XX_GPIO_LINE_COL0 EP93XX_GPIO_LINE_D(0) 44#define EP93XX_GPIO_LINE_COL1 EP93XX_GPIO_LINE_D(1) 45#define EP93XX_GPIO_LINE_COL2 EP93XX_GPIO_LINE_D(2) 46#define EP93XX_GPIO_LINE_COL3 EP93XX_GPIO_LINE_D(3) 47#define EP93XX_GPIO_LINE_COL4 EP93XX_GPIO_LINE_D(4) 48#define EP93XX_GPIO_LINE_COL5 EP93XX_GPIO_LINE_D(5) 49#define EP93XX_GPIO_LINE_COL6 EP93XX_GPIO_LINE_D(6) 50#define EP93XX_GPIO_LINE_COL7 EP93XX_GPIO_LINE_D(7) 51 52/* GPIO port E. */ 53#define EP93XX_GPIO_LINE_E(x) ((x) + 32) 54#define EP93XX_GPIO_LINE_GRLED EP93XX_GPIO_LINE_E(0) 55#define EP93XX_GPIO_LINE_RDLED EP93XX_GPIO_LINE_E(1) 56#define EP93XX_GPIO_LINE_DIORn EP93XX_GPIO_LINE_E(2) 57#define EP93XX_GPIO_LINE_IDECS1n EP93XX_GPIO_LINE_E(3) 58#define EP93XX_GPIO_LINE_IDECS2n EP93XX_GPIO_LINE_E(4) 59#define EP93XX_GPIO_LINE_IDEDA0 EP93XX_GPIO_LINE_E(5) 60#define EP93XX_GPIO_LINE_IDEDA1 EP93XX_GPIO_LINE_E(6) 61#define EP93XX_GPIO_LINE_IDEDA2 EP93XX_GPIO_LINE_E(7) 62 63/* GPIO port F. */ 64#define EP93XX_GPIO_LINE_F(x) ((x) + 16) 65#define EP93XX_GPIO_LINE_WP EP93XX_GPIO_LINE_F(0) 66#define EP93XX_GPIO_LINE_MCCD1 EP93XX_GPIO_LINE_F(1) 67#define EP93XX_GPIO_LINE_MCCD2 EP93XX_GPIO_LINE_F(2) 68#define EP93XX_GPIO_LINE_MCBVD1 EP93XX_GPIO_LINE_F(3) 69#define EP93XX_GPIO_LINE_MCBVD2 EP93XX_GPIO_LINE_F(4) 70#define EP93XX_GPIO_LINE_VS1 EP93XX_GPIO_LINE_F(5) 71#define EP93XX_GPIO_LINE_READY EP93XX_GPIO_LINE_F(6) 72#define EP93XX_GPIO_LINE_VS2 EP93XX_GPIO_LINE_F(7) 73 74/* GPIO port G. */ 75#define EP93XX_GPIO_LINE_G(x) ((x) + 48) 76#define EP93XX_GPIO_LINE_EECLK EP93XX_GPIO_LINE_G(0) 77#define EP93XX_GPIO_LINE_EEDAT EP93XX_GPIO_LINE_G(1) 78#define EP93XX_GPIO_LINE_SLA0 EP93XX_GPIO_LINE_G(2) 79#define EP93XX_GPIO_LINE_SLA1 EP93XX_GPIO_LINE_G(3) 80#define EP93XX_GPIO_LINE_DD12 EP93XX_GPIO_LINE_G(4) 81#define EP93XX_GPIO_LINE_DD13 EP93XX_GPIO_LINE_G(5) 82#define EP93XX_GPIO_LINE_DD14 EP93XX_GPIO_LINE_G(6) 83#define EP93XX_GPIO_LINE_DD15 EP93XX_GPIO_LINE_G(7) 84 85/* GPIO port H. */ 86#define EP93XX_GPIO_LINE_H(x) ((x) + 56) 87#define EP93XX_GPIO_LINE_DD0 EP93XX_GPIO_LINE_H(0) 88#define EP93XX_GPIO_LINE_DD1 EP93XX_GPIO_LINE_H(1) 89#define EP93XX_GPIO_LINE_DD2 EP93XX_GPIO_LINE_H(2) 90#define EP93XX_GPIO_LINE_DD3 EP93XX_GPIO_LINE_H(3) 91#define EP93XX_GPIO_LINE_DD4 EP93XX_GPIO_LINE_H(4) 92#define EP93XX_GPIO_LINE_DD5 EP93XX_GPIO_LINE_H(5) 93#define EP93XX_GPIO_LINE_DD6 EP93XX_GPIO_LINE_H(6) 94#define EP93XX_GPIO_LINE_DD7 EP93XX_GPIO_LINE_H(7) 95 96/* maximum value for gpio line identifiers */ 97#define EP93XX_GPIO_LINE_MAX EP93XX_GPIO_LINE_H(7) 98 99/* maximum value for irq capable line identifiers */ 100#define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7) 101 102/* new generic GPIO API - see Documentation/gpio.txt */ 103 104#include <asm-generic/gpio.h> 105 106#define gpio_get_value __gpio_get_value 107#define gpio_set_value __gpio_set_value 108#define gpio_cansleep __gpio_cansleep 109 110/* 111 * Map GPIO A0..A7 (0..7) to irq 64..71, 112 * B0..B7 (7..15) to irq 72..79, and 113 * F0..F7 (16..24) to irq 80..87. 114 */ 115#define gpio_to_irq(gpio) \ 116 (((gpio) <= EP93XX_GPIO_LINE_MAX_IRQ) ? (64 + (gpio)) : -EINVAL) 117 118#define irq_to_gpio(irq) ((irq) - gpio_to_irq(0)) 119 120#endif 121