gpio.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. /*
  2. * Copyright (c) 2010-2012, NVIDIA CORPORATION. All rights reserved.
  3. *
  4. * This program is free software; you can redistribute it and/or modify it
  5. * under the terms and conditions of the GNU General Public License,
  6. * version 2, as published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope it will be useful, but WITHOUT
  9. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  11. * more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #ifndef _TEGRA30_GPIO_H_
  17. #define _TEGRA30_GPIO_H_
  18. /*
  19. * The Tegra 3x GPIO controller has 246 GPIOS in 8 banks of 4 ports,
  20. * each with 8 GPIOs.
  21. */
  22. #define TEGRA_GPIO_PORTS 4 /* number of ports per bank */
  23. #define TEGRA_GPIO_BANKS 8 /* number of banks */
  24. #include <asm/arch-tegra/gpio.h>
  25. /* GPIO Controller registers for a single bank */
  26. struct gpio_ctlr_bank {
  27. uint gpio_config[TEGRA_GPIO_PORTS];
  28. uint gpio_dir_out[TEGRA_GPIO_PORTS];
  29. uint gpio_out[TEGRA_GPIO_PORTS];
  30. uint gpio_in[TEGRA_GPIO_PORTS];
  31. uint gpio_int_status[TEGRA_GPIO_PORTS];
  32. uint gpio_int_enable[TEGRA_GPIO_PORTS];
  33. uint gpio_int_level[TEGRA_GPIO_PORTS];
  34. uint gpio_int_clear[TEGRA_GPIO_PORTS];
  35. uint gpio_masked_config[TEGRA_GPIO_PORTS];
  36. uint gpio_masked_dir_out[TEGRA_GPIO_PORTS];
  37. uint gpio_masked_out[TEGRA_GPIO_PORTS];
  38. uint gpio_masked_in[TEGRA_GPIO_PORTS];
  39. uint gpio_masked_int_status[TEGRA_GPIO_PORTS];
  40. uint gpio_masked_int_enable[TEGRA_GPIO_PORTS];
  41. uint gpio_masked_int_level[TEGRA_GPIO_PORTS];
  42. uint gpio_masked_int_clear[TEGRA_GPIO_PORTS];
  43. };
  44. struct gpio_ctlr {
  45. struct gpio_ctlr_bank gpio_bank[TEGRA_GPIO_BANKS];
  46. };
  47. enum gpio_pin {
  48. GPIO_PA0 = 0, /* pin 0 */
  49. GPIO_PA1,
  50. GPIO_PA2,
  51. GPIO_PA3,
  52. GPIO_PA4,
  53. GPIO_PA5,
  54. GPIO_PA6,
  55. GPIO_PA7,
  56. GPIO_PB0, /* pin 8 */
  57. GPIO_PB1,
  58. GPIO_PB2,
  59. GPIO_PB3,
  60. GPIO_PB4,
  61. GPIO_PB5,
  62. GPIO_PB6,
  63. GPIO_PB7,
  64. GPIO_PC0, /* pin 16 */
  65. GPIO_PC1,
  66. GPIO_PC2,
  67. GPIO_PC3,
  68. GPIO_PC4,
  69. GPIO_PC5,
  70. GPIO_PC6,
  71. GPIO_PC7,
  72. GPIO_PD0, /* pin 24 */
  73. GPIO_PD1,
  74. GPIO_PD2,
  75. GPIO_PD3,
  76. GPIO_PD4,
  77. GPIO_PD5,
  78. GPIO_PD6,
  79. GPIO_PD7,
  80. GPIO_PE0, /* pin 32 */
  81. GPIO_PE1,
  82. GPIO_PE2,
  83. GPIO_PE3,
  84. GPIO_PE4,
  85. GPIO_PE5,
  86. GPIO_PE6,
  87. GPIO_PE7,
  88. GPIO_PF0, /* pin 40 */
  89. GPIO_PF1,
  90. GPIO_PF2,
  91. GPIO_PF3,
  92. GPIO_PF4,
  93. GPIO_PF5,
  94. GPIO_PF6,
  95. GPIO_PF7,
  96. GPIO_PG0, /* pin 48 */
  97. GPIO_PG1,
  98. GPIO_PG2,
  99. GPIO_PG3,
  100. GPIO_PG4,
  101. GPIO_PG5,
  102. GPIO_PG6,
  103. GPIO_PG7,
  104. GPIO_PH0, /* pin 56 */
  105. GPIO_PH1,
  106. GPIO_PH2,
  107. GPIO_PH3,
  108. GPIO_PH4,
  109. GPIO_PH5,
  110. GPIO_PH6,
  111. GPIO_PH7,
  112. GPIO_PI0, /* pin 64 */
  113. GPIO_PI1,
  114. GPIO_PI2,
  115. GPIO_PI3,
  116. GPIO_PI4,
  117. GPIO_PI5,
  118. GPIO_PI6,
  119. GPIO_PI7,
  120. GPIO_PJ0, /* pin 72 */
  121. GPIO_PJ1,
  122. GPIO_PJ2,
  123. GPIO_PJ3,
  124. GPIO_PJ4,
  125. GPIO_PJ5,
  126. GPIO_PJ6,
  127. GPIO_PJ7,
  128. GPIO_PK0, /* pin 80 */
  129. GPIO_PK1,
  130. GPIO_PK2,
  131. GPIO_PK3,
  132. GPIO_PK4,
  133. GPIO_PK5,
  134. GPIO_PK6,
  135. GPIO_PK7,
  136. GPIO_PL0, /* pin 88 */
  137. GPIO_PL1,
  138. GPIO_PL2,
  139. GPIO_PL3,
  140. GPIO_PL4,
  141. GPIO_PL5,
  142. GPIO_PL6,
  143. GPIO_PL7,
  144. GPIO_PM0, /* pin 96 */
  145. GPIO_PM1,
  146. GPIO_PM2,
  147. GPIO_PM3,
  148. GPIO_PM4,
  149. GPIO_PM5,
  150. GPIO_PM6,
  151. GPIO_PM7,
  152. GPIO_PN0, /* pin 104 */
  153. GPIO_PN1,
  154. GPIO_PN2,
  155. GPIO_PN3,
  156. GPIO_PN4,
  157. GPIO_PN5,
  158. GPIO_PN6,
  159. GPIO_PN7,
  160. GPIO_PO0, /* pin 112 */
  161. GPIO_PO1,
  162. GPIO_PO2,
  163. GPIO_PO3,
  164. GPIO_PO4,
  165. GPIO_PO5,
  166. GPIO_PO6,
  167. GPIO_PO7,
  168. GPIO_PP0, /* pin 120 */
  169. GPIO_PP1,
  170. GPIO_PP2,
  171. GPIO_PP3,
  172. GPIO_PP4,
  173. GPIO_PP5,
  174. GPIO_PP6,
  175. GPIO_PP7,
  176. GPIO_PQ0, /* pin 128 */
  177. GPIO_PQ1,
  178. GPIO_PQ2,
  179. GPIO_PQ3,
  180. GPIO_PQ4,
  181. GPIO_PQ5,
  182. GPIO_PQ6,
  183. GPIO_PQ7,
  184. GPIO_PR0, /* pin 136 */
  185. GPIO_PR1,
  186. GPIO_PR2,
  187. GPIO_PR3,
  188. GPIO_PR4,
  189. GPIO_PR5,
  190. GPIO_PR6,
  191. GPIO_PR7,
  192. GPIO_PS0, /* pin 144 */
  193. GPIO_PS1,
  194. GPIO_PS2,
  195. GPIO_PS3,
  196. GPIO_PS4,
  197. GPIO_PS5,
  198. GPIO_PS6,
  199. GPIO_PS7,
  200. GPIO_PT0, /* pin 152 */
  201. GPIO_PT1,
  202. GPIO_PT2,
  203. GPIO_PT3,
  204. GPIO_PT4,
  205. GPIO_PT5,
  206. GPIO_PT6,
  207. GPIO_PT7,
  208. GPIO_PU0, /* pin 160 */
  209. GPIO_PU1,
  210. GPIO_PU2,
  211. GPIO_PU3,
  212. GPIO_PU4,
  213. GPIO_PU5,
  214. GPIO_PU6,
  215. GPIO_PU7,
  216. GPIO_PV0, /* pin 168 */
  217. GPIO_PV1,
  218. GPIO_PV2,
  219. GPIO_PV3,
  220. GPIO_PV4,
  221. GPIO_PV5,
  222. GPIO_PV6,
  223. GPIO_PV7,
  224. GPIO_PW0, /* pin 176 */
  225. GPIO_PW1,
  226. GPIO_PW2,
  227. GPIO_PW3,
  228. GPIO_PW4,
  229. GPIO_PW5,
  230. GPIO_PW6,
  231. GPIO_PW7,
  232. GPIO_PX0, /* pin 184 */
  233. GPIO_PX1,
  234. GPIO_PX2,
  235. GPIO_PX3,
  236. GPIO_PX4,
  237. GPIO_PX5,
  238. GPIO_PX6,
  239. GPIO_PX7,
  240. GPIO_PY0, /* pin 192 */
  241. GPIO_PY1,
  242. GPIO_PY2,
  243. GPIO_PY3,
  244. GPIO_PY4,
  245. GPIO_PY5,
  246. GPIO_PY6,
  247. GPIO_PY7,
  248. GPIO_PZ0, /* pin 200 */
  249. GPIO_PZ1,
  250. GPIO_PZ2,
  251. GPIO_PZ3,
  252. GPIO_PZ4,
  253. GPIO_PZ5,
  254. GPIO_PZ6,
  255. GPIO_PZ7,
  256. GPIO_PAA0, /* pin 208 */
  257. GPIO_PAA1,
  258. GPIO_PAA2,
  259. GPIO_PAA3,
  260. GPIO_PAA4,
  261. GPIO_PAA5,
  262. GPIO_PAA6,
  263. GPIO_PAA7,
  264. GPIO_PBB0, /* pin 216 */
  265. GPIO_PBB1,
  266. GPIO_PBB2,
  267. GPIO_PBB3,
  268. GPIO_PBB4,
  269. GPIO_PBB5,
  270. GPIO_PBB6,
  271. GPIO_PBB7,
  272. GPIO_PCC0, /* pin 224 */
  273. GPIO_PCC1,
  274. GPIO_PCC2,
  275. GPIO_PCC3,
  276. GPIO_PCC4,
  277. GPIO_PCC5,
  278. GPIO_PCC6,
  279. GPIO_PCC7,
  280. GPIO_PDD0, /* pin 232 */
  281. GPIO_PDD1,
  282. GPIO_PDD2,
  283. GPIO_PDD3,
  284. GPIO_PDD4,
  285. GPIO_PDD5,
  286. GPIO_PDD6,
  287. GPIO_PDD7,
  288. GPIO_PEE0, /* pin 240 */
  289. GPIO_PEE1,
  290. GPIO_PEE2,
  291. GPIO_PEE3,
  292. GPIO_PEE4,
  293. GPIO_PEE5,
  294. GPIO_PEE6,
  295. GPIO_PEE7, /* pin 247 */
  296. };
  297. #endif /* _TEGRA30_GPIO_H_ */