1
2
3
4
5
6
7
8
9#include <common.h>
10#include <hang.h>
11#include <asm/io.h>
12#include <asm/arch/mux-k2g.h>
13#include <asm/arch/hardware.h>
14#include "board.h"
15
16struct pin_cfg k2g_generic_pin_cfg[] = {
17
18 { 115, MODE(0) },
19 { 116, MODE(0) },
20
21
22 { 223, MODE(0) },
23 { 224, MODE(0) },
24
25
26 { 225, MODE(0) },
27 { 226, MODE(0) },
28 { MAX_PIN_N, }
29};
30
31struct pin_cfg k2g_evm_pin_cfg[] = {
32
33 { 0, MODE(0) },
34 { 1, MODE(0) },
35 { 2, MODE(0) },
36 { 3, MODE(0) },
37 { 4, MODE(0) },
38 { 5, MODE(0) },
39 { 6, MODE(0) },
40 { 7, MODE(0) },
41 { 8, MODE(0) },
42 { 9, MODE(0) },
43 { 10, MODE(0) },
44 { 11, MODE(0) },
45 { 12, MODE(0) },
46 { 13, MODE(0) },
47 { 14, MODE(0) },
48 { 15, MODE(0) },
49 { 17, MODE(0) },
50 { 18, MODE(0) },
51 { 19, MODE(0) },
52 { 20, MODE(0) },
53 { 22, MODE(0) },
54 { 24, MODE(0) },
55 { 26, MODE(0) },
56
57
58 { 16, MODE(3) | PIN_IEN },
59 { 21, MODE(3) | PIN_IEN },
60 { 82, MODE(3) | PIN_IEN },
61 { 83, MODE(3) },
62 { 84, MODE(3) },
63 { 87, MODE(3) },
64 { 106, MODE(3) | PIN_IEN},
65 { 201, MODE(3) | PIN_IEN},
66 { 202, MODE(3) },
67 { 203, MODE(3) | PIN_IEN},
68 { 204, MODE(3) | PIN_IEN},
69 { 205, MODE(3) | PIN_IEN},
70 { 206, MODE(3) | PIN_IEN},
71 { 207, MODE(3) | PIN_IEN},
72 { 208, MODE(3) | PIN_IEN},
73 { 209, MODE(3) | PIN_IEN},
74 { 216, MODE(3) },
75 { 217, MODE(3) | PIN_IEN},
76
77
78 { 23, MODE(2) },
79 { 25, MODE(2) },
80 { 27, MODE(2) },
81
82
83 { 30, MODE(0) },
84 { 31, MODE(0) },
85 { 32, MODE(0) },
86 { 33, MODE(0) },
87 { 34, MODE(0) },
88 { 35, MODE(0) },
89 { 36, MODE(0) },
90 { 37, MODE(0) },
91 { 38, MODE(0) },
92 { 39, MODE(0) },
93 { 40, MODE(0) },
94 { 41, MODE(0) },
95 { 42, MODE(0) },
96 { 43, MODE(0) },
97 { 44, MODE(0) },
98 { 45, MODE(0) },
99 { 46, MODE(0) },
100 { 47, MODE(0) },
101 { 48, MODE(0) },
102 { 49, MODE(0) },
103 { 50, MODE(0) },
104 { 51, MODE(0) },
105 { 52, MODE(0) },
106 { 53, MODE(0) },
107 { 54, MODE(0) },
108 { 55, MODE(0) },
109 { 56, MODE(0) },
110 { 57, MODE(0) },
111 { 58, MODE(0) },
112 { 221, MODE(4) },
113
114
115 { 59, MODE(0) },
116 { 60, MODE(0) },
117 { 61, MODE(0) },
118 { 62, MODE(0) },
119 { 63, MODE(0) },
120 { 64, MODE(0) },
121 { 65, MODE(0) },
122 { 66, MODE(0) },
123 { 67, MODE(0) },
124 { 68, MODE(0) },
125 { 69, MODE(0) },
126 { 70, MODE(0) },
127 { 71, MODE(0) },
128
129
130 { 72, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
131 { 77, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
132 { 78, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
133 { 79, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
134 { 80, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
135 { 81, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
136 { 85, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
137 { 91, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
138 { 92, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
139 { 93, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
140 { 94, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
141 { 95, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
142
143
144 { 98, BUFFER_CLASS_B | PIN_PDIS | MODE(0) },
145 { 99, BUFFER_CLASS_B | PIN_PDIS | MODE(0) },
146
147
148 { 73, MODE(4) },
149 { 74, MODE(4) },
150 { 75, MODE(4) },
151 { 76, MODE(4) },
152 { 96, MODE(4) },
153 { 198, MODE(4) },
154 { 199, MODE(4) },
155 { 200, MODE(4) },
156 { 218, MODE(4) },
157 { 219, MODE(4) },
158 { 220, MODE(4) },
159 { 222, MODE(4) },
160
161
162 { 86, MODE(1) },
163 { 88, MODE(1) },
164 { 89, MODE(1) },
165 { 90, MODE(1) },
166
167
168 { 97, MODE(0) },
169
170
171 { 100, MODE(0) },
172 { 101, MODE(0) },
173 { 102, MODE(0) },
174 { 103, MODE(0) },
175 { 104, MODE(0) },
176
177
178 { 105, MODE(0) },
179 { 107, MODE(0) },
180 { 108, MODE(0) },
181 { 109, MODE(0) },
182
183
184 { 110, MODE(0) },
185 { 111, MODE(1) },
186 { 112, MODE(0) },
187 { 113, MODE(0) },
188 { 114, MODE(0) },
189
190
191 { 115, MODE(0) },
192 { 116, MODE(0) },
193 { 117, MODE(0) },
194 { 118, MODE(0) },
195
196
197 { 119, MODE(0) },
198 { 120, MODE(0) },
199 { 121, MODE(0) },
200 { 122, MODE(0) },
201
202
203 { 123, MODE(0) },
204 { 124, MODE(0) },
205 { 125, MODE(0) },
206 { 126, MODE(4) },
207
208
209 { 127, MODE(0) },
210 { 128, MODE(0) },
211 { 137, MODE(1) },
212 { 138, MODE(1) },
213
214
215 { 129, MODE(0) },
216 { 130, MODE(0) },
217 { 131, MODE(0) },
218 { 132, MODE(0) },
219 { 133, MODE(0) },
220 { 134, MODE(0) },
221 { 135, MODE(0) },
222 { 136, MODE(1) },
223
224
225 { 139, MODE(3) },
226 { 140, MODE(4) },
227 { 141, MODE(4) },
228 { 142, MODE(4) },
229 { 143, MODE(4) },
230 { 144, MODE(4) },
231 { 145, MODE(4) },
232 { 146, MODE(4) },
233 { 147, MODE(4) },
234 { 148, MODE(3) },
235 { 149, MODE(4) },
236 { 150, MODE(4) },
237 { 151, MODE(4) },
238
239
240 { 152, MODE(4) },
241 { 153, MODE(4) },
242 { 154, MODE(4) },
243 { 155, MODE(4) },
244 { 156, MODE(4) },
245 { 157, MODE(4) },
246 { 158, MODE(4) },
247 { 159, MODE(4) },
248 { 160, MODE(4) },
249 { 161, MODE(4) },
250 { 162, MODE(4) },
251 { 163, MODE(4) },
252 { 164, MODE(4) },
253 { 165, MODE(4) },
254 { 166, MODE(4) },
255 { 167, MODE(4) },
256 { 168, MODE(4) },
257
258
259 { 169, MODE(4) },
260 { 170, MODE(4) },
261 { 171, MODE(4) },
262 { 172, MODE(4) },
263 { 173, MODE(4) },
264 { 174, MODE(4) },
265 { 175, MODE(4) },
266 { 176, MODE(4) },
267 { 177, MODE(4) },
268 { 178, MODE(4) },
269 { 179, MODE(4) },
270 { 180, MODE(4) },
271 { 181, MODE(4) },
272 { 182, MODE(4) },
273 { 183, MODE(4) },
274 { 184, MODE(4) },
275 { 185, MODE(4) },
276 { 186, MODE(3) },
277 { 188, MODE(4) },
278 { 189, MODE(4) },
279 { 190, MODE(4) },
280 { 191, MODE(4) },
281
282
283 { 192, MODE(2) },
284 { 193, MODE(2) },
285 { 194, MODE(2) },
286 { 195, MODE(2) },
287 { 196, MODE(2) },
288 { 197, MODE(2) },
289 { 187, MODE(2) },
290
291
292 { 28, MODE(2) | PIN_IEN },
293 { 29, MODE(2) },
294 { 210, MODE(2) },
295 { 211, MODE(2) },
296 { 212, MODE(2) },
297 { 213, MODE(2) },
298 { 214, MODE(2) },
299 { 215, MODE(2) },
300
301
302 { 223, MODE(0) },
303 { 224, MODE(0) },
304 { 225, MODE(0) },
305 { 226, MODE(0) },
306 { 227, MODE(0) },
307 { 228, MODE(0) },
308 { 229, MODE(0) },
309 { 230, MODE(0) },
310 { 231, MODE(0) },
311
312 { 235, MODE(0) },
313 { 236, MODE(0) },
314 { 237, MODE(0) },
315 { 238, MODE(0) },
316 { 239, MODE(0) },
317 { 240, MODE(0) },
318 { 241, MODE(0) },
319 { 242, MODE(0) },
320 { 243, MODE(0) },
321 { 244, MODE(0) },
322
323 { 258, MODE(0) },
324 { 259, MODE(0) },
325 { MAX_PIN_N, }
326};
327
328struct pin_cfg k2g_ice_evm_pin_cfg[] = {
329
330 { 63, MODE(0) | PIN_PTD },
331 { 64, MODE(0) | PIN_PTU },
332 { 65, MODE(0) | PIN_PTU },
333 { 66, MODE(0) | PIN_PTD },
334 { 67, MODE(0) | PIN_PTD },
335 { 68, MODE(0) | PIN_PTD },
336 { 69, MODE(3) | PIN_PTU },
337 { 70, MODE(0) | PIN_PTU },
338 { 71, MODE(0) | PIN_PTD },
339
340
341 { 223, MODE(0) },
342 { 224, MODE(0) },
343
344
345 { 129, MODE(0) },
346 { 130, MODE(0) },
347 { 131, MODE(0) },
348 { 132, MODE(0) },
349 { 133, MODE(0) },
350 { 134, MODE(0) },
351 { 135, MODE(0) },
352
353
354 { 72, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
355 { 77, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
356 { 78, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
357 { 79, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
358 { 80, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
359 { 81, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
360 { 85, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
361 { 91, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
362 { 92, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
363 { 93, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
364 { 94, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
365 { 95, BUFFER_CLASS_D | PIN_PDIS | MODE(1) },
366
367
368 { 98, BUFFER_CLASS_B | PIN_PDIS | MODE(0) },
369 { 99, BUFFER_CLASS_B | PIN_PDIS | MODE(0) },
370
371
372 { 202, MODE(1) | PIN_PDIS },
373
374 { MAX_PIN_N, }
375};
376
377void k2g_mux_config(void)
378{
379 if (!board_ti_was_eeprom_read()) {
380 configure_pin_mux(k2g_generic_pin_cfg);
381 } else if (board_is_k2g_gp() || board_is_k2g_g1()) {
382 configure_pin_mux(k2g_evm_pin_cfg);
383 } else if (board_is_k2g_ice() || board_is_k2g_i1()) {
384 configure_pin_mux(k2g_ice_evm_pin_cfg);
385 } else {
386 puts("Unknown board, cannot configure pinmux.");
387 hang();
388 }
389}
390