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