gpio.h 4.5 KB

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