blob: b40b1ff9c5123a43b1ad0ed1df293b43324a3674 [file] [log] [blame]
Tom Warrenc5e93132011-04-14 12:09:40 +00001/*
2 * Copyright (c) 2011, Google Inc. All rights reserved.
Tom Warren52a8b822012-05-22 12:19:25 +00003 * Portions Copyright 2011-2012 NVIDIA Corporation
Tom Warrenc5e93132011-04-14 12:09:40 +00004 *
Wolfgang Denk1a459662013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Tom Warrenc5e93132011-04-14 12:09:40 +00006 */
7
Tom Warren150c2492012-09-19 15:50:56 -07008#ifndef _TEGRA20_GPIO_H_
9#define _TEGRA20_GPIO_H_
Tom Warrenc5e93132011-04-14 12:09:40 +000010
11/*
Tom Warren4e5ae092011-06-17 06:27:28 +000012 * The Tegra 2x GPIO controller has 224 GPIOs arranged in 7 banks of 4 ports,
Tom Warrenc5e93132011-04-14 12:09:40 +000013 * each with 8 GPIOs.
14 */
Tom Warren4e5ae092011-06-17 06:27:28 +000015#define TEGRA_GPIO_PORTS 4 /* number of ports per bank */
16#define TEGRA_GPIO_BANKS 7 /* number of banks */
Tom Warren150c2492012-09-19 15:50:56 -070017
18#include <asm/arch-tegra/gpio.h>
Tom Warrenc5e93132011-04-14 12:09:40 +000019
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};
31
32struct gpio_ctlr {
33 struct gpio_ctlr_bank gpio_bank[TEGRA_GPIO_BANKS];
34};
35
Tom Warren4e5ae092011-06-17 06:27:28 +000036enum gpio_pin {
37 GPIO_PA0 = 0, /* pin 0 */
38 GPIO_PA1,
39 GPIO_PA2,
40 GPIO_PA3,
41 GPIO_PA4,
42 GPIO_PA5,
43 GPIO_PA6,
44 GPIO_PA7,
45 GPIO_PB0, /* pin 8 */
46 GPIO_PB1,
47 GPIO_PB2,
48 GPIO_PB3,
49 GPIO_PB4,
50 GPIO_PB5,
51 GPIO_PB6,
52 GPIO_PB7,
53 GPIO_PC0, /* pin 16 */
54 GPIO_PC1,
55 GPIO_PC2,
56 GPIO_PC3,
57 GPIO_PC4,
58 GPIO_PC5,
59 GPIO_PC6,
60 GPIO_PC7,
61 GPIO_PD0, /* pin 24 */
62 GPIO_PD1,
63 GPIO_PD2,
64 GPIO_PD3,
65 GPIO_PD4,
66 GPIO_PD5,
67 GPIO_PD6,
68 GPIO_PD7,
69 GPIO_PE0, /* pin 32 */
70 GPIO_PE1,
71 GPIO_PE2,
72 GPIO_PE3,
73 GPIO_PE4,
74 GPIO_PE5,
75 GPIO_PE6,
76 GPIO_PE7,
77 GPIO_PF0, /* pin 40 */
78 GPIO_PF1,
79 GPIO_PF2,
80 GPIO_PF3,
81 GPIO_PF4,
82 GPIO_PF5,
83 GPIO_PF6,
84 GPIO_PF7,
85 GPIO_PG0, /* pin 48 */
86 GPIO_PG1,
87 GPIO_PG2,
88 GPIO_PG3,
89 GPIO_PG4,
90 GPIO_PG5,
91 GPIO_PG6,
92 GPIO_PG7,
93 GPIO_PH0, /* pin 56 */
94 GPIO_PH1,
95 GPIO_PH2,
96 GPIO_PH3,
97 GPIO_PH4,
98 GPIO_PH5,
99 GPIO_PH6,
100 GPIO_PH7,
101 GPIO_PI0, /* pin 64 */
102 GPIO_PI1,
103 GPIO_PI2,
104 GPIO_PI3,
105 GPIO_PI4,
106 GPIO_PI5,
107 GPIO_PI6,
108 GPIO_PI7,
109 GPIO_PJ0, /* pin 72 */
110 GPIO_PJ1,
111 GPIO_PJ2,
112 GPIO_PJ3,
113 GPIO_PJ4,
114 GPIO_PJ5,
115 GPIO_PJ6,
116 GPIO_PJ7,
117 GPIO_PK0, /* pin 80 */
118 GPIO_PK1,
119 GPIO_PK2,
120 GPIO_PK3,
121 GPIO_PK4,
122 GPIO_PK5,
123 GPIO_PK6,
124 GPIO_PK7,
125 GPIO_PL0, /* pin 88 */
126 GPIO_PL1,
127 GPIO_PL2,
128 GPIO_PL3,
129 GPIO_PL4,
130 GPIO_PL5,
131 GPIO_PL6,
132 GPIO_PL7,
133 GPIO_PM0, /* pin 96 */
134 GPIO_PM1,
135 GPIO_PM2,
136 GPIO_PM3,
137 GPIO_PM4,
138 GPIO_PM5,
139 GPIO_PM6,
140 GPIO_PM7,
141 GPIO_PN0, /* pin 104 */
142 GPIO_PN1,
143 GPIO_PN2,
144 GPIO_PN3,
145 GPIO_PN4,
146 GPIO_PN5,
147 GPIO_PN6,
148 GPIO_PN7,
149 GPIO_PO0, /* pin 112 */
150 GPIO_PO1,
151 GPIO_PO2,
152 GPIO_PO3,
153 GPIO_PO4,
154 GPIO_PO5,
155 GPIO_PO6,
156 GPIO_PO7,
157 GPIO_PP0, /* pin 120 */
158 GPIO_PP1,
159 GPIO_PP2,
160 GPIO_PP3,
161 GPIO_PP4,
162 GPIO_PP5,
163 GPIO_PP6,
164 GPIO_PP7,
165 GPIO_PQ0, /* pin 128 */
166 GPIO_PQ1,
167 GPIO_PQ2,
168 GPIO_PQ3,
169 GPIO_PQ4,
170 GPIO_PQ5,
171 GPIO_PQ6,
172 GPIO_PQ7,
173 GPIO_PR0, /* pin 136 */
174 GPIO_PR1,
175 GPIO_PR2,
176 GPIO_PR3,
177 GPIO_PR4,
178 GPIO_PR5,
179 GPIO_PR6,
180 GPIO_PR7,
181 GPIO_PS0, /* pin 144 */
182 GPIO_PS1,
183 GPIO_PS2,
184 GPIO_PS3,
185 GPIO_PS4,
186 GPIO_PS5,
187 GPIO_PS6,
188 GPIO_PS7,
189 GPIO_PT0, /* pin 152 */
190 GPIO_PT1,
191 GPIO_PT2,
192 GPIO_PT3,
193 GPIO_PT4,
194 GPIO_PT5,
195 GPIO_PT6,
196 GPIO_PT7,
197 GPIO_PU0, /* pin 160 */
198 GPIO_PU1,
199 GPIO_PU2,
200 GPIO_PU3,
201 GPIO_PU4,
202 GPIO_PU5,
203 GPIO_PU6,
204 GPIO_PU7,
205 GPIO_PV0, /* pin 168 */
206 GPIO_PV1,
207 GPIO_PV2,
208 GPIO_PV3,
209 GPIO_PV4,
210 GPIO_PV5,
211 GPIO_PV6,
212 GPIO_PV7,
213 GPIO_PW0, /* pin 176 */
214 GPIO_PW1,
215 GPIO_PW2,
216 GPIO_PW3,
217 GPIO_PW4,
218 GPIO_PW5,
219 GPIO_PW6,
220 GPIO_PW7,
221 GPIO_PX0, /* pin 184 */
222 GPIO_PX1,
223 GPIO_PX2,
224 GPIO_PX3,
225 GPIO_PX4,
226 GPIO_PX5,
227 GPIO_PX6,
228 GPIO_PX7,
229 GPIO_PY0, /* pin 192 */
230 GPIO_PY1,
231 GPIO_PY2,
232 GPIO_PY3,
233 GPIO_PY4,
234 GPIO_PY5,
235 GPIO_PY6,
236 GPIO_PY7,
237 GPIO_PZ0, /* pin 200 */
238 GPIO_PZ1,
239 GPIO_PZ2,
240 GPIO_PZ3,
241 GPIO_PZ4,
242 GPIO_PZ5,
243 GPIO_PZ6,
244 GPIO_PZ7,
245 GPIO_PAA0, /* pin 208 */
246 GPIO_PAA1,
247 GPIO_PAA2,
248 GPIO_PAA3,
249 GPIO_PAA4,
250 GPIO_PAA5,
251 GPIO_PAA6,
252 GPIO_PAA7,
253 GPIO_PBB0, /* pin 216 */
254 GPIO_PBB1,
255 GPIO_PBB2,
256 GPIO_PBB3,
257 GPIO_PBB4,
258 GPIO_PBB5,
259 GPIO_PBB6,
260 GPIO_PBB7, /* pin 223 */
261};
Tom Warrenc5e93132011-04-14 12:09:40 +0000262
Tom Warren150c2492012-09-19 15:50:56 -0700263#endif /* TEGRA20_GPIO_H_ */