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