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