1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23#ifndef _TEGRA_GPIO_H_
24#define _TEGRA_GPIO_H_
25
26
27
28
29
30#define TEGRA_GPIO_PORTS 4
31#define TEGRA_GPIO_BANKS 7
32#define MAX_NUM_GPIOS (TEGRA_GPIO_PORTS * TEGRA_GPIO_BANKS * 8)
33#define GPIO_NAME_SIZE 20
34
35
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
51#define GPIO_BANK(x) ((x) >> 5)
52#define GPIO_PORT(x) (((x) >> 3) & 0x3)
53#define GPIO_FULLPORT(x) ((x) >> 3)
54#define GPIO_BIT(x) ((x) & 0x7)
55
56enum gpio_pin {
57 GPIO_PA0 = 0,
58 GPIO_PA1,
59 GPIO_PA2,
60 GPIO_PA3,
61 GPIO_PA4,
62 GPIO_PA5,
63 GPIO_PA6,
64 GPIO_PA7,
65 GPIO_PB0,
66 GPIO_PB1,
67 GPIO_PB2,
68 GPIO_PB3,
69 GPIO_PB4,
70 GPIO_PB5,
71 GPIO_PB6,
72 GPIO_PB7,
73 GPIO_PC0,
74 GPIO_PC1,
75 GPIO_PC2,
76 GPIO_PC3,
77 GPIO_PC4,
78 GPIO_PC5,
79 GPIO_PC6,
80 GPIO_PC7,
81 GPIO_PD0,
82 GPIO_PD1,
83 GPIO_PD2,
84 GPIO_PD3,
85 GPIO_PD4,
86 GPIO_PD5,
87 GPIO_PD6,
88 GPIO_PD7,
89 GPIO_PE0,
90 GPIO_PE1,
91 GPIO_PE2,
92 GPIO_PE3,
93 GPIO_PE4,
94 GPIO_PE5,
95 GPIO_PE6,
96 GPIO_PE7,
97 GPIO_PF0,
98 GPIO_PF1,
99 GPIO_PF2,
100 GPIO_PF3,
101 GPIO_PF4,
102 GPIO_PF5,
103 GPIO_PF6,
104 GPIO_PF7,
105 GPIO_PG0,
106 GPIO_PG1,
107 GPIO_PG2,
108 GPIO_PG3,
109 GPIO_PG4,
110 GPIO_PG5,
111 GPIO_PG6,
112 GPIO_PG7,
113 GPIO_PH0,
114 GPIO_PH1,
115 GPIO_PH2,
116 GPIO_PH3,
117 GPIO_PH4,
118 GPIO_PH5,
119 GPIO_PH6,
120 GPIO_PH7,
121 GPIO_PI0,
122 GPIO_PI1,
123 GPIO_PI2,
124 GPIO_PI3,
125 GPIO_PI4,
126 GPIO_PI5,
127 GPIO_PI6,
128 GPIO_PI7,
129 GPIO_PJ0,
130 GPIO_PJ1,
131 GPIO_PJ2,
132 GPIO_PJ3,
133 GPIO_PJ4,
134 GPIO_PJ5,
135 GPIO_PJ6,
136 GPIO_PJ7,
137 GPIO_PK0,
138 GPIO_PK1,
139 GPIO_PK2,
140 GPIO_PK3,
141 GPIO_PK4,
142 GPIO_PK5,
143 GPIO_PK6,
144 GPIO_PK7,
145 GPIO_PL0,
146 GPIO_PL1,
147 GPIO_PL2,
148 GPIO_PL3,
149 GPIO_PL4,
150 GPIO_PL5,
151 GPIO_PL6,
152 GPIO_PL7,
153 GPIO_PM0,
154 GPIO_PM1,
155 GPIO_PM2,
156 GPIO_PM3,
157 GPIO_PM4,
158 GPIO_PM5,
159 GPIO_PM6,
160 GPIO_PM7,
161 GPIO_PN0,
162 GPIO_PN1,
163 GPIO_PN2,
164 GPIO_PN3,
165 GPIO_PN4,
166 GPIO_PN5,
167 GPIO_PN6,
168 GPIO_PN7,
169 GPIO_PO0,
170 GPIO_PO1,
171 GPIO_PO2,
172 GPIO_PO3,
173 GPIO_PO4,
174 GPIO_PO5,
175 GPIO_PO6,
176 GPIO_PO7,
177 GPIO_PP0,
178 GPIO_PP1,
179 GPIO_PP2,
180 GPIO_PP3,
181 GPIO_PP4,
182 GPIO_PP5,
183 GPIO_PP6,
184 GPIO_PP7,
185 GPIO_PQ0,
186 GPIO_PQ1,
187 GPIO_PQ2,
188 GPIO_PQ3,
189 GPIO_PQ4,
190 GPIO_PQ5,
191 GPIO_PQ6,
192 GPIO_PQ7,
193 GPIO_PR0,
194 GPIO_PR1,
195 GPIO_PR2,
196 GPIO_PR3,
197 GPIO_PR4,
198 GPIO_PR5,
199 GPIO_PR6,
200 GPIO_PR7,
201 GPIO_PS0,
202 GPIO_PS1,
203 GPIO_PS2,
204 GPIO_PS3,
205 GPIO_PS4,
206 GPIO_PS5,
207 GPIO_PS6,
208 GPIO_PS7,
209 GPIO_PT0,
210 GPIO_PT1,
211 GPIO_PT2,
212 GPIO_PT3,
213 GPIO_PT4,
214 GPIO_PT5,
215 GPIO_PT6,
216 GPIO_PT7,
217 GPIO_PU0,
218 GPIO_PU1,
219 GPIO_PU2,
220 GPIO_PU3,
221 GPIO_PU4,
222 GPIO_PU5,
223 GPIO_PU6,
224 GPIO_PU7,
225 GPIO_PV0,
226 GPIO_PV1,
227 GPIO_PV2,
228 GPIO_PV3,
229 GPIO_PV4,
230 GPIO_PV5,
231 GPIO_PV6,
232 GPIO_PV7,
233 GPIO_PW0,
234 GPIO_PW1,
235 GPIO_PW2,
236 GPIO_PW3,
237 GPIO_PW4,
238 GPIO_PW5,
239 GPIO_PW6,
240 GPIO_PW7,
241 GPIO_PX0,
242 GPIO_PX1,
243 GPIO_PX2,
244 GPIO_PX3,
245 GPIO_PX4,
246 GPIO_PX5,
247 GPIO_PX6,
248 GPIO_PX7,
249 GPIO_PY0,
250 GPIO_PY1,
251 GPIO_PY2,
252 GPIO_PY3,
253 GPIO_PY4,
254 GPIO_PY5,
255 GPIO_PY6,
256 GPIO_PY7,
257 GPIO_PZ0,
258 GPIO_PZ1,
259 GPIO_PZ2,
260 GPIO_PZ3,
261 GPIO_PZ4,
262 GPIO_PZ5,
263 GPIO_PZ6,
264 GPIO_PZ7,
265 GPIO_PAA0,
266 GPIO_PAA1,
267 GPIO_PAA2,
268 GPIO_PAA3,
269 GPIO_PAA4,
270 GPIO_PAA5,
271 GPIO_PAA6,
272 GPIO_PAA7,
273 GPIO_PBB0,
274 GPIO_PBB1,
275 GPIO_PBB2,
276 GPIO_PBB3,
277 GPIO_PBB4,
278 GPIO_PBB5,
279 GPIO_PBB6,
280 GPIO_PBB7,
281};
282
283
284
285
286
287void gpio_info(void);
288
289#define gpio_status() gpio_info()
290#endif
291