home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-arm / arch-at91rm9200 / gpio.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  6.8 KB  |  195 lines

  1. /*
  2.  * include/asm-arm/arch-at91rm9200/gpio.h
  3.  *
  4.  *  Copyright (C) 2005 HP Labs
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  */
  12.  
  13. #ifndef __ASM_ARCH_AT91RM9200_GPIO_H
  14. #define __ASM_ARCH_AT91RM9200_GPIO_H
  15.  
  16. #define PIN_BASE        NR_AIC_IRQS
  17.  
  18. #define PQFP_GPIO_BANKS        3    /* PQFP package has 3 banks */
  19. #define BGA_GPIO_BANKS        4    /* BGA package has 4 banks */
  20.  
  21. /* these pin numbers double as IRQ numbers, like AT91_ID_* values */
  22.  
  23. #define    AT91_PIN_PA0    (PIN_BASE + 0x00 + 0)
  24. #define    AT91_PIN_PA1    (PIN_BASE + 0x00 + 1)
  25. #define    AT91_PIN_PA2    (PIN_BASE + 0x00 + 2)
  26. #define    AT91_PIN_PA3    (PIN_BASE + 0x00 + 3)
  27. #define    AT91_PIN_PA4    (PIN_BASE + 0x00 + 4)
  28.  
  29. #define    AT91_PIN_PA5    (PIN_BASE + 0x00 + 5)
  30. #define    AT91_PIN_PA6    (PIN_BASE + 0x00 + 6)
  31. #define    AT91_PIN_PA7    (PIN_BASE + 0x00 + 7)
  32. #define    AT91_PIN_PA8    (PIN_BASE + 0x00 + 8)
  33. #define    AT91_PIN_PA9    (PIN_BASE + 0x00 + 9)
  34.  
  35. #define    AT91_PIN_PA10    (PIN_BASE + 0x00 + 10)
  36. #define    AT91_PIN_PA11    (PIN_BASE + 0x00 + 11)
  37. #define    AT91_PIN_PA12    (PIN_BASE + 0x00 + 12)
  38. #define    AT91_PIN_PA13    (PIN_BASE + 0x00 + 13)
  39. #define    AT91_PIN_PA14    (PIN_BASE + 0x00 + 14)
  40.  
  41. #define    AT91_PIN_PA15    (PIN_BASE + 0x00 + 15)
  42. #define    AT91_PIN_PA16    (PIN_BASE + 0x00 + 16)
  43. #define    AT91_PIN_PA17    (PIN_BASE + 0x00 + 17)
  44. #define    AT91_PIN_PA18    (PIN_BASE + 0x00 + 18)
  45. #define    AT91_PIN_PA19    (PIN_BASE + 0x00 + 19)
  46.  
  47. #define    AT91_PIN_PA20    (PIN_BASE + 0x00 + 20)
  48. #define    AT91_PIN_PA21    (PIN_BASE + 0x00 + 21)
  49. #define    AT91_PIN_PA22    (PIN_BASE + 0x00 + 22)
  50. #define    AT91_PIN_PA23    (PIN_BASE + 0x00 + 23)
  51. #define    AT91_PIN_PA24    (PIN_BASE + 0x00 + 24)
  52.  
  53. #define    AT91_PIN_PA25    (PIN_BASE + 0x00 + 25)
  54. #define    AT91_PIN_PA26    (PIN_BASE + 0x00 + 26)
  55. #define    AT91_PIN_PA27    (PIN_BASE + 0x00 + 27)
  56. #define    AT91_PIN_PA28    (PIN_BASE + 0x00 + 28)
  57. #define    AT91_PIN_PA29    (PIN_BASE + 0x00 + 29)
  58.  
  59. #define    AT91_PIN_PA30    (PIN_BASE + 0x00 + 30)
  60. #define    AT91_PIN_PA31    (PIN_BASE + 0x00 + 31)
  61.  
  62. #define    AT91_PIN_PB0    (PIN_BASE + 0x20 + 0)
  63. #define    AT91_PIN_PB1    (PIN_BASE + 0x20 + 1)
  64. #define    AT91_PIN_PB2    (PIN_BASE + 0x20 + 2)
  65. #define    AT91_PIN_PB3    (PIN_BASE + 0x20 + 3)
  66. #define    AT91_PIN_PB4    (PIN_BASE + 0x20 + 4)
  67.  
  68. #define    AT91_PIN_PB5    (PIN_BASE + 0x20 + 5)
  69. #define    AT91_PIN_PB6    (PIN_BASE + 0x20 + 6)
  70. #define    AT91_PIN_PB7    (PIN_BASE + 0x20 + 7)
  71. #define    AT91_PIN_PB8    (PIN_BASE + 0x20 + 8)
  72. #define    AT91_PIN_PB9    (PIN_BASE + 0x20 + 9)
  73.  
  74. #define    AT91_PIN_PB10    (PIN_BASE + 0x20 + 10)
  75. #define    AT91_PIN_PB11    (PIN_BASE + 0x20 + 11)
  76. #define    AT91_PIN_PB12    (PIN_BASE + 0x20 + 12)
  77. #define    AT91_PIN_PB13    (PIN_BASE + 0x20 + 13)
  78. #define    AT91_PIN_PB14    (PIN_BASE + 0x20 + 14)
  79.  
  80. #define    AT91_PIN_PB15    (PIN_BASE + 0x20 + 15)
  81. #define    AT91_PIN_PB16    (PIN_BASE + 0x20 + 16)
  82. #define    AT91_PIN_PB17    (PIN_BASE + 0x20 + 17)
  83. #define    AT91_PIN_PB18    (PIN_BASE + 0x20 + 18)
  84. #define    AT91_PIN_PB19    (PIN_BASE + 0x20 + 19)
  85.  
  86. #define    AT91_PIN_PB20    (PIN_BASE + 0x20 + 20)
  87. #define    AT91_PIN_PB21    (PIN_BASE + 0x20 + 21)
  88. #define    AT91_PIN_PB22    (PIN_BASE + 0x20 + 22)
  89. #define    AT91_PIN_PB23    (PIN_BASE + 0x20 + 23)
  90. #define    AT91_PIN_PB24    (PIN_BASE + 0x20 + 24)
  91.  
  92. #define    AT91_PIN_PB25    (PIN_BASE + 0x20 + 25)
  93. #define    AT91_PIN_PB26    (PIN_BASE + 0x20 + 26)
  94. #define    AT91_PIN_PB27    (PIN_BASE + 0x20 + 27)
  95. #define    AT91_PIN_PB28    (PIN_BASE + 0x20 + 28)
  96. #define    AT91_PIN_PB29    (PIN_BASE + 0x20 + 29)
  97.  
  98. #define    AT91_PIN_PB30    (PIN_BASE + 0x20 + 30)
  99. #define    AT91_PIN_PB31    (PIN_BASE + 0x20 + 31)
  100.  
  101. #define    AT91_PIN_PC0    (PIN_BASE + 0x40 + 0)
  102. #define    AT91_PIN_PC1    (PIN_BASE + 0x40 + 1)
  103. #define    AT91_PIN_PC2    (PIN_BASE + 0x40 + 2)
  104. #define    AT91_PIN_PC3    (PIN_BASE + 0x40 + 3)
  105. #define    AT91_PIN_PC4    (PIN_BASE + 0x40 + 4)
  106.  
  107. #define    AT91_PIN_PC5    (PIN_BASE + 0x40 + 5)
  108. #define    AT91_PIN_PC6    (PIN_BASE + 0x40 + 6)
  109. #define    AT91_PIN_PC7    (PIN_BASE + 0x40 + 7)
  110. #define    AT91_PIN_PC8    (PIN_BASE + 0x40 + 8)
  111. #define    AT91_PIN_PC9    (PIN_BASE + 0x40 + 9)
  112.  
  113. #define    AT91_PIN_PC10    (PIN_BASE + 0x40 + 10)
  114. #define    AT91_PIN_PC11    (PIN_BASE + 0x40 + 11)
  115. #define    AT91_PIN_PC12    (PIN_BASE + 0x40 + 12)
  116. #define    AT91_PIN_PC13    (PIN_BASE + 0x40 + 13)
  117. #define    AT91_PIN_PC14    (PIN_BASE + 0x40 + 14)
  118.  
  119. #define    AT91_PIN_PC15    (PIN_BASE + 0x40 + 15)
  120. #define    AT91_PIN_PC16    (PIN_BASE + 0x40 + 16)
  121. #define    AT91_PIN_PC17    (PIN_BASE + 0x40 + 17)
  122. #define    AT91_PIN_PC18    (PIN_BASE + 0x40 + 18)
  123. #define    AT91_PIN_PC19    (PIN_BASE + 0x40 + 19)
  124.  
  125. #define    AT91_PIN_PC20    (PIN_BASE + 0x40 + 20)
  126. #define    AT91_PIN_PC21    (PIN_BASE + 0x40 + 21)
  127. #define    AT91_PIN_PC22    (PIN_BASE + 0x40 + 22)
  128. #define    AT91_PIN_PC23    (PIN_BASE + 0x40 + 23)
  129. #define    AT91_PIN_PC24    (PIN_BASE + 0x40 + 24)
  130.  
  131. #define    AT91_PIN_PC25    (PIN_BASE + 0x40 + 25)
  132. #define    AT91_PIN_PC26    (PIN_BASE + 0x40 + 26)
  133. #define    AT91_PIN_PC27    (PIN_BASE + 0x40 + 27)
  134. #define    AT91_PIN_PC28    (PIN_BASE + 0x40 + 28)
  135. #define    AT91_PIN_PC29    (PIN_BASE + 0x40 + 29)
  136.  
  137. #define    AT91_PIN_PC30    (PIN_BASE + 0x40 + 30)
  138. #define    AT91_PIN_PC31    (PIN_BASE + 0x40 + 31)
  139.  
  140. #define    AT91_PIN_PD0    (PIN_BASE + 0x60 + 0)
  141. #define    AT91_PIN_PD1    (PIN_BASE + 0x60 + 1)
  142. #define    AT91_PIN_PD2    (PIN_BASE + 0x60 + 2)
  143. #define    AT91_PIN_PD3    (PIN_BASE + 0x60 + 3)
  144. #define    AT91_PIN_PD4    (PIN_BASE + 0x60 + 4)
  145.  
  146. #define    AT91_PIN_PD5    (PIN_BASE + 0x60 + 5)
  147. #define    AT91_PIN_PD6    (PIN_BASE + 0x60 + 6)
  148. #define    AT91_PIN_PD7    (PIN_BASE + 0x60 + 7)
  149. #define    AT91_PIN_PD8    (PIN_BASE + 0x60 + 8)
  150. #define    AT91_PIN_PD9    (PIN_BASE + 0x60 + 9)
  151.  
  152. #define    AT91_PIN_PD10    (PIN_BASE + 0x60 + 10)
  153. #define    AT91_PIN_PD11    (PIN_BASE + 0x60 + 11)
  154. #define    AT91_PIN_PD12    (PIN_BASE + 0x60 + 12)
  155. #define    AT91_PIN_PD13    (PIN_BASE + 0x60 + 13)
  156. #define    AT91_PIN_PD14    (PIN_BASE + 0x60 + 14)
  157.  
  158. #define    AT91_PIN_PD15    (PIN_BASE + 0x60 + 15)
  159. #define    AT91_PIN_PD16    (PIN_BASE + 0x60 + 16)
  160. #define    AT91_PIN_PD17    (PIN_BASE + 0x60 + 17)
  161. #define    AT91_PIN_PD18    (PIN_BASE + 0x60 + 18)
  162. #define    AT91_PIN_PD19    (PIN_BASE + 0x60 + 19)
  163.  
  164. #define    AT91_PIN_PD20    (PIN_BASE + 0x60 + 20)
  165. #define    AT91_PIN_PD21    (PIN_BASE + 0x60 + 21)
  166. #define    AT91_PIN_PD22    (PIN_BASE + 0x60 + 22)
  167. #define    AT91_PIN_PD23    (PIN_BASE + 0x60 + 23)
  168. #define    AT91_PIN_PD24    (PIN_BASE + 0x60 + 24)
  169.  
  170. #define    AT91_PIN_PD25    (PIN_BASE + 0x60 + 25)
  171. #define    AT91_PIN_PD26    (PIN_BASE + 0x60 + 26)
  172. #define    AT91_PIN_PD27    (PIN_BASE + 0x60 + 27)
  173. #define    AT91_PIN_PD28    (PIN_BASE + 0x60 + 28)
  174. #define    AT91_PIN_PD29    (PIN_BASE + 0x60 + 29)
  175.  
  176. #define    AT91_PIN_PD30    (PIN_BASE + 0x60 + 30)
  177. #define    AT91_PIN_PD31    (PIN_BASE + 0x60 + 31)
  178.  
  179. #ifndef __ASSEMBLY__
  180. /* setup setup routines, called from board init or driver probe() */
  181. extern int at91_set_A_periph(unsigned pin, int use_pullup);
  182. extern int at91_set_B_periph(unsigned pin, int use_pullup);
  183. extern int at91_set_gpio_input(unsigned pin, int use_pullup);
  184. extern int at91_set_gpio_output(unsigned pin, int value);
  185. extern int at91_set_deglitch(unsigned pin, int is_on);
  186. extern int at91_set_multi_drive(unsigned pin, int is_on);
  187.  
  188. /* callable at any time */
  189. extern int at91_set_gpio_value(unsigned pin, int value);
  190. extern int at91_get_gpio_value(unsigned pin);
  191. #endif
  192.  
  193. #endif
  194.  
  195.