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