blob: e2848fec67ba58d038b20f8666ccf693f4beafd1 [file] [log] [blame]
Tom Warren80205862011-04-14 12:09:40 +00001/*
2 * Copyright (c) 2011, Google Inc. All rights reserved.
3 * See file CREDITS for list of people who contributed to this
4 * project.
Tom Warrenc570d7a2012-05-22 12:19:25 +00005 * Portions Copyright 2011-2012 NVIDIA Corporation
Tom Warren80205862011-04-14 12:09:40 +00006 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20 * MA 02111-1307 USA
21 */
22
Tom Warrenab371962012-09-19 15:50:56 -070023#ifndef _TEGRA20_GPIO_H_
24#define _TEGRA20_GPIO_H_
Tom Warren80205862011-04-14 12:09:40 +000025
26/*
Tom Warrenb3878b82011-06-17 06:27:28 +000027 * The Tegra 2x GPIO controller has 224 GPIOs arranged in 7 banks of 4 ports,
Tom Warren80205862011-04-14 12:09:40 +000028 * each with 8 GPIOs.
29 */
Tom Warrenb3878b82011-06-17 06:27:28 +000030#define TEGRA_GPIO_PORTS 4 /* number of ports per bank */
31#define TEGRA_GPIO_BANKS 7 /* number of banks */
Tom Warrenab371962012-09-19 15:50:56 -070032
33#include <asm/arch-tegra/gpio.h>
Tom Warren80205862011-04-14 12:09:40 +000034
35/* GPIO Controller registers for a single bank */
36struct gpio_ctlr_bank {
37 uint gpio_config[TEGRA_GPIO_PORTS];
38 uint gpio_dir_out[TEGRA_GPIO_PORTS];
39 uint gpio_out[TEGRA_GPIO_PORTS];
40 uint gpio_in[TEGRA_GPIO_PORTS];
41 uint gpio_int_status[TEGRA_GPIO_PORTS];
42 uint gpio_int_enable[TEGRA_GPIO_PORTS];
43 uint gpio_int_level[TEGRA_GPIO_PORTS];
44 uint gpio_int_clear[TEGRA_GPIO_PORTS];
45};
46
47struct gpio_ctlr {
48 struct gpio_ctlr_bank gpio_bank[TEGRA_GPIO_BANKS];
49};
50
Tom Warrenb3878b82011-06-17 06:27:28 +000051enum gpio_pin {
52 GPIO_PA0 = 0, /* pin 0 */
53 GPIO_PA1,
54 GPIO_PA2,
55 GPIO_PA3,
56 GPIO_PA4,
57 GPIO_PA5,
58 GPIO_PA6,
59 GPIO_PA7,
60 GPIO_PB0, /* pin 8 */
61 GPIO_PB1,
62 GPIO_PB2,
63 GPIO_PB3,
64 GPIO_PB4,
65 GPIO_PB5,
66 GPIO_PB6,
67 GPIO_PB7,
68 GPIO_PC0, /* pin 16 */
69 GPIO_PC1,
70 GPIO_PC2,
71 GPIO_PC3,
72 GPIO_PC4,
73 GPIO_PC5,
74 GPIO_PC6,
75 GPIO_PC7,
76 GPIO_PD0, /* pin 24 */
77 GPIO_PD1,
78 GPIO_PD2,
79 GPIO_PD3,
80 GPIO_PD4,
81 GPIO_PD5,
82 GPIO_PD6,
83 GPIO_PD7,
84 GPIO_PE0, /* pin 32 */
85 GPIO_PE1,
86 GPIO_PE2,
87 GPIO_PE3,
88 GPIO_PE4,
89 GPIO_PE5,
90 GPIO_PE6,
91 GPIO_PE7,
92 GPIO_PF0, /* pin 40 */
93 GPIO_PF1,
94 GPIO_PF2,
95 GPIO_PF3,
96 GPIO_PF4,
97 GPIO_PF5,
98 GPIO_PF6,
99 GPIO_PF7,
100 GPIO_PG0, /* pin 48 */
101 GPIO_PG1,
102 GPIO_PG2,
103 GPIO_PG3,
104 GPIO_PG4,
105 GPIO_PG5,
106 GPIO_PG6,
107 GPIO_PG7,
108 GPIO_PH0, /* pin 56 */
109 GPIO_PH1,
110 GPIO_PH2,
111 GPIO_PH3,
112 GPIO_PH4,
113 GPIO_PH5,
114 GPIO_PH6,
115 GPIO_PH7,
116 GPIO_PI0, /* pin 64 */
117 GPIO_PI1,
118 GPIO_PI2,
119 GPIO_PI3,
120 GPIO_PI4,
121 GPIO_PI5,
122 GPIO_PI6,
123 GPIO_PI7,
124 GPIO_PJ0, /* pin 72 */
125 GPIO_PJ1,
126 GPIO_PJ2,
127 GPIO_PJ3,
128 GPIO_PJ4,
129 GPIO_PJ5,
130 GPIO_PJ6,
131 GPIO_PJ7,
132 GPIO_PK0, /* pin 80 */
133 GPIO_PK1,
134 GPIO_PK2,
135 GPIO_PK3,
136 GPIO_PK4,
137 GPIO_PK5,
138 GPIO_PK6,
139 GPIO_PK7,
140 GPIO_PL0, /* pin 88 */
141 GPIO_PL1,
142 GPIO_PL2,
143 GPIO_PL3,
144 GPIO_PL4,
145 GPIO_PL5,
146 GPIO_PL6,
147 GPIO_PL7,
148 GPIO_PM0, /* pin 96 */
149 GPIO_PM1,
150 GPIO_PM2,
151 GPIO_PM3,
152 GPIO_PM4,
153 GPIO_PM5,
154 GPIO_PM6,
155 GPIO_PM7,
156 GPIO_PN0, /* pin 104 */
157 GPIO_PN1,
158 GPIO_PN2,
159 GPIO_PN3,
160 GPIO_PN4,
161 GPIO_PN5,
162 GPIO_PN6,
163 GPIO_PN7,
164 GPIO_PO0, /* pin 112 */
165 GPIO_PO1,
166 GPIO_PO2,
167 GPIO_PO3,
168 GPIO_PO4,
169 GPIO_PO5,
170 GPIO_PO6,
171 GPIO_PO7,
172 GPIO_PP0, /* pin 120 */
173 GPIO_PP1,
174 GPIO_PP2,
175 GPIO_PP3,
176 GPIO_PP4,
177 GPIO_PP5,
178 GPIO_PP6,
179 GPIO_PP7,
180 GPIO_PQ0, /* pin 128 */
181 GPIO_PQ1,
182 GPIO_PQ2,
183 GPIO_PQ3,
184 GPIO_PQ4,
185 GPIO_PQ5,
186 GPIO_PQ6,
187 GPIO_PQ7,
188 GPIO_PR0, /* pin 136 */
189 GPIO_PR1,
190 GPIO_PR2,
191 GPIO_PR3,
192 GPIO_PR4,
193 GPIO_PR5,
194 GPIO_PR6,
195 GPIO_PR7,
196 GPIO_PS0, /* pin 144 */
197 GPIO_PS1,
198 GPIO_PS2,
199 GPIO_PS3,
200 GPIO_PS4,
201 GPIO_PS5,
202 GPIO_PS6,
203 GPIO_PS7,
204 GPIO_PT0, /* pin 152 */
205 GPIO_PT1,
206 GPIO_PT2,
207 GPIO_PT3,
208 GPIO_PT4,
209 GPIO_PT5,
210 GPIO_PT6,
211 GPIO_PT7,
212 GPIO_PU0, /* pin 160 */
213 GPIO_PU1,
214 GPIO_PU2,
215 GPIO_PU3,
216 GPIO_PU4,
217 GPIO_PU5,
218 GPIO_PU6,
219 GPIO_PU7,
220 GPIO_PV0, /* pin 168 */
221 GPIO_PV1,
222 GPIO_PV2,
223 GPIO_PV3,
224 GPIO_PV4,
225 GPIO_PV5,
226 GPIO_PV6,
227 GPIO_PV7,
228 GPIO_PW0, /* pin 176 */
229 GPIO_PW1,
230 GPIO_PW2,
231 GPIO_PW3,
232 GPIO_PW4,
233 GPIO_PW5,
234 GPIO_PW6,
235 GPIO_PW7,
236 GPIO_PX0, /* pin 184 */
237 GPIO_PX1,
238 GPIO_PX2,
239 GPIO_PX3,
240 GPIO_PX4,
241 GPIO_PX5,
242 GPIO_PX6,
243 GPIO_PX7,
244 GPIO_PY0, /* pin 192 */
245 GPIO_PY1,
246 GPIO_PY2,
247 GPIO_PY3,
248 GPIO_PY4,
249 GPIO_PY5,
250 GPIO_PY6,
251 GPIO_PY7,
252 GPIO_PZ0, /* pin 200 */
253 GPIO_PZ1,
254 GPIO_PZ2,
255 GPIO_PZ3,
256 GPIO_PZ4,
257 GPIO_PZ5,
258 GPIO_PZ6,
259 GPIO_PZ7,
260 GPIO_PAA0, /* pin 208 */
261 GPIO_PAA1,
262 GPIO_PAA2,
263 GPIO_PAA3,
264 GPIO_PAA4,
265 GPIO_PAA5,
266 GPIO_PAA6,
267 GPIO_PAA7,
268 GPIO_PBB0, /* pin 216 */
269 GPIO_PBB1,
270 GPIO_PBB2,
271 GPIO_PBB3,
272 GPIO_PBB4,
273 GPIO_PBB5,
274 GPIO_PBB6,
275 GPIO_PBB7, /* pin 223 */
276};
Tom Warren80205862011-04-14 12:09:40 +0000277
Tom Warrenab371962012-09-19 15:50:56 -0700278#endif /* TEGRA20_GPIO_H_ */