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