1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
|
# All data validated against Tegra114 TRM on 2014/03/13 by swarren except:
# - drive_group_pins[] content
kernel_copyright_years = '2012-2013'
kernel_author = 'Pritesh Raithatha <praithatha@nvidia.com>'
uboot_copyright_years = '2010-2014'
gpios = (
#name, gpio, reg, f0, f1, f2, f3, od, ior, rcv_sel
('clk_32k_out', 'a0', 0x331c, 'blink', 'soc', 'rsvd3', 'rsvd4', False, False, False),
('uart3_cts_n', 'a1', 0x317c, 'uartc', 'sdmmc1', 'dtv', 'spi4', False, False, False),
('dap2_fs', 'a2', 0x3358, 'i2s1', 'hda', 'rsvd3', 'rsvd4', False, False, False),
('dap2_sclk', 'a3', 0x3364, 'i2s1', 'hda', 'rsvd3', 'rsvd4', False, False, False),
('dap2_din', 'a4', 0x335c, 'i2s1', 'hda', 'rsvd3', 'rsvd4', False, False, False),
('dap2_dout', 'a5', 0x3360, 'i2s1', 'hda', 'rsvd3', 'rsvd4', False, False, False),
('sdmmc3_clk', 'a6', 0x3390, 'sdmmc3', 'rsvd2', 'rsvd3', 'spi3', False, False, False),
('sdmmc3_cmd', 'a7', 0x3394, 'sdmmc3', 'pwm3', 'uarta', 'spi3', False, False, False),
('gmi_a17', 'b0', 0x3234, 'uartd', 'rsvd2', 'gmi', 'trace', False, False, False),
('gmi_a18', 'b1', 0x3238, 'uartd', 'rsvd2', 'gmi', 'trace', False, False, False),
('sdmmc3_dat3', 'b4', 0x33a4, 'sdmmc3', 'pwm0', 'displayb', 'spi3', False, False, False),
('sdmmc3_dat2', 'b5', 0x33a0, 'sdmmc3', 'pwm1', 'displaya', 'spi3', False, False, False),
('sdmmc3_dat1', 'b6', 0x339c, 'sdmmc3', 'pwm2', 'uarta', 'spi3', False, False, False),
('sdmmc3_dat0', 'b7', 0x3398, 'sdmmc3', 'rsvd2', 'rsvd3', 'spi3', False, False, False),
('uart3_rts_n', 'c0', 0x3180, 'uartc', 'pwm0', 'dtv', 'displaya', False, False, False),
('uart2_txd', 'c2', 0x3168, 'irda', 'spdif', 'uarta', 'spi4', False, False, False),
('uart2_rxd', 'c3', 0x3164, 'irda', 'spdif', 'uarta', 'spi4', False, False, False),
('gen1_i2c_scl', 'c4', 0x31a4, 'i2c1', 'rsvd2', 'rsvd3', 'rsvd4', True, False, False),
('gen1_i2c_sda', 'c5', 0x31a0, 'i2c1', 'rsvd2', 'rsvd3', 'rsvd4', True, False, False),
('gmi_wp_n', 'c7', 0x31c0, 'rsvd1', 'nand', 'gmi', 'gmi_alt', False, False, False),
('gmi_ad0', 'g0', 0x31f0, 'rsvd1', 'nand', 'gmi', 'rsvd4', False, False, False),
('gmi_ad1', 'g1', 0x31f4, 'rsvd1', 'nand', 'gmi', 'rsvd4', False, False, False),
('gmi_ad2', 'g2', 0x31f8, 'rsvd1', 'nand', 'gmi', 'rsvd4', False, False, False),
('gmi_ad3', 'g3', 0x31fc, 'rsvd1', 'nand', 'gmi', 'rsvd4', False, False, False),
('gmi_ad4', 'g4', 0x3200, 'rsvd1', 'nand', 'gmi', 'rsvd4', False, False, False),
('gmi_ad5', 'g5', 0x3204, 'rsvd1', 'nand', 'gmi', 'spi4', False, False, False),
('gmi_ad6', 'g6', 0x3208, 'rsvd1', 'nand', 'gmi', 'spi4', False, False, False),
('gmi_ad7', 'g7', 0x320c, 'rsvd1', 'nand', 'gmi', 'spi4', False, False, False),
('gmi_ad8', 'h0', 0x3210, 'pwm0', 'nand', 'gmi', 'dtv', False, False, False),
('gmi_ad9', 'h1', 0x3214, 'pwm1', 'nand', 'gmi', 'cldvfs', False, False, False),
('gmi_ad10', 'h2', 0x3218, 'pwm2', 'nand', 'gmi', 'cldvfs', False, False, False),
('gmi_ad11', 'h3', 0x321c, 'pwm3', 'nand', 'gmi', 'usb', False, False, False),
('gmi_ad12', 'h4', 0x3220, 'sdmmc2', 'nand', 'gmi', 'rsvd4', False, False, False),
('gmi_ad13', 'h5', 0x3224, 'sdmmc2', 'nand', 'gmi', 'rsvd4', False, False, False),
('gmi_ad14', 'h6', 0x3228, 'sdmmc2', 'nand', 'gmi', 'dtv', False, False, False),
('gmi_ad15', 'h7', 0x322c, 'sdmmc2', 'nand', 'gmi', 'dtv', False, False, False),
('gmi_wr_n', 'i0', 0x3240, 'rsvd1', 'nand', 'gmi', 'spi4', False, False, False),
('gmi_oe_n', 'i1', 0x3244, 'rsvd1', 'nand', 'gmi', 'soc', False, False, False),
('gmi_cs6_n', 'i3', 0x31e8, 'nand', 'nand_alt', 'gmi', 'spi4', False, False, False),
('gmi_rst_n', 'i4', 0x324c, 'nand', 'nand_alt', 'gmi', 'rsvd4', False, False, False),
('gmi_iordy', 'i5', 0x31c4, 'sdmmc2', 'rsvd2', 'gmi', 'trace', False, False, False),
('gmi_cs7_n', 'i6', 0x31ec, 'nand', 'nand_alt', 'gmi', 'sdmmc2', False, False, False),
('gmi_wait', 'i7', 0x31c8, 'spi4', 'nand', 'gmi', 'dtv', False, False, False),
('gmi_cs0_n', 'j0', 0x31d4, 'rsvd1', 'nand', 'gmi', 'usb', False, False, False),
('gmi_cs1_n', 'j2', 0x31d8, 'rsvd1', 'nand', 'gmi', 'soc', False, False, False),
('gmi_dqs_p', 'j3', 0x3248, 'sdmmc2', 'nand', 'gmi', 'trace', False, False, False),
('uart2_cts_n', 'j5', 0x3170, 'uarta', 'uartb', 'rsvd3', 'spi4', False, False, False),
('uart2_rts_n', 'j6', 0x316c, 'uarta', 'uartb', 'rsvd3', 'spi4', False, False, False),
('gmi_a16', 'j7', 0x3230, 'uartd', 'trace', 'gmi', 'gmi_alt', False, False, False),
('gmi_adv_n', 'k0', 0x31cc, 'rsvd1', 'nand', 'gmi', 'trace', False, False, False),
('gmi_clk', 'k1', 0x31d0, 'sdmmc2', 'nand', 'gmi', 'trace', False, False, False),
('gmi_cs4_n', 'k2', 0x31e4, 'usb', 'nand', 'gmi', 'trace', False, False, False),
('gmi_cs2_n', 'k3', 0x31dc, 'sdmmc2', 'nand', 'gmi', 'trace', False, False, False),
('gmi_cs3_n', 'k4', 0x31e0, 'sdmmc2', 'nand', 'gmi', 'gmi_alt', False, False, False),
('spdif_out', 'k5', 0x3354, 'spdif', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('spdif_in', 'k6', 0x3350, 'spdif', 'usb', 'rsvd3', 'rsvd4', False, False, False),
('gmi_a19', 'k7', 0x323c, 'uartd', 'spi4', 'gmi', 'trace', False, False, False),
('dap1_fs', 'n0', 0x3338, 'i2s0', 'hda', 'gmi', 'rsvd4', False, False, False),
('dap1_din', 'n1', 0x333c, 'i2s0', 'hda', 'gmi', 'rsvd4', False, False, False),
('dap1_dout', 'n2', 0x3340, 'i2s0', 'hda', 'gmi', 'rsvd4', False, False, False),
('dap1_sclk', 'n3', 0x3344, 'i2s0', 'hda', 'gmi', 'rsvd4', False, False, False),
('usb_vbus_en0', 'n4', 0x33f4, 'usb', 'rsvd2', 'rsvd3', 'rsvd4', True, False, False),
('usb_vbus_en1', 'n5', 0x33f8, 'usb', 'rsvd2', 'rsvd3', 'rsvd4', True, False, False),
('hdmi_int', 'n7', 0x3110, 'rsvd1', 'rsvd2', 'rsvd3', 'rsvd4', False, False, True),
('ulpi_data7', 'o0', 0x301c, 'spi2', 'hsi', 'uarta', 'ulpi', False, False, False),
('ulpi_data0', 'o1', 0x3000, 'spi3', 'hsi', 'uarta', 'ulpi', False, False, False),
('ulpi_data1', 'o2', 0x3004, 'spi3', 'hsi', 'uarta', 'ulpi', False, False, False),
('ulpi_data2', 'o3', 0x3008, 'spi3', 'hsi', 'uarta', 'ulpi', False, False, False),
('ulpi_data3', 'o4', 0x300c, 'spi3', 'hsi', 'uarta', 'ulpi', False, False, False),
('ulpi_data4', 'o5', 0x3010, 'spi2', 'hsi', 'uarta', 'ulpi', False, False, False),
('ulpi_data5', 'o6', 0x3014, 'spi2', 'hsi', 'uarta', 'ulpi', False, False, False),
('ulpi_data6', 'o7', 0x3018, 'spi2', 'hsi', 'uarta', 'ulpi', False, False, False),
('dap3_fs', 'p0', 0x3030, 'i2s2', 'spi5', 'displaya', 'displayb', False, False, False),
('dap3_din', 'p1', 0x3034, 'i2s2', 'spi5', 'displaya', 'displayb', False, False, False),
('dap3_dout', 'p2', 0x3038, 'i2s2', 'spi5', 'displaya', 'displayb', False, False, False),
('dap3_sclk', 'p3', 0x303c, 'i2s2', 'spi5', 'displaya', 'displayb', False, False, False),
('dap4_fs', 'p4', 0x31a8, 'i2s3', 'rsvd2', 'dtv', 'rsvd4', False, False, False),
('dap4_din', 'p5', 0x31ac, 'i2s3', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('dap4_dout', 'p6', 0x31b0, 'i2s3', 'rsvd2', 'dtv', 'rsvd4', False, False, False),
('dap4_sclk', 'p7', 0x31b4, 'i2s3', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('kb_col0', 'q0', 0x32fc, 'kbc', 'usb', 'spi2', 'emc_dll', False, False, False),
('kb_col1', 'q1', 0x3300, 'kbc', 'rsvd2', 'spi2', 'emc_dll', False, False, False),
('kb_col2', 'q2', 0x3304, 'kbc', 'rsvd2', 'spi2', 'rsvd4', False, False, False),
('kb_col3', 'q3', 0x3308, 'kbc', 'displaya', 'pwm2', 'uarta', False, False, False),
('kb_col4', 'q4', 0x330c, 'kbc', 'owr', 'sdmmc3', 'uarta', False, False, False),
('kb_col5', 'q5', 0x3310, 'kbc', 'rsvd2', 'sdmmc1', 'rsvd4', False, False, False),
('kb_col6', 'q6', 0x3314, 'kbc', 'rsvd2', 'spi2', 'rsvd4', False, False, False),
('kb_col7', 'q7', 0x3318, 'kbc', 'rsvd2', 'spi2', 'rsvd4', False, False, False),
('kb_row0', 'r0', 0x32bc, 'kbc', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('kb_row1', 'r1', 0x32c0, 'kbc', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('kb_row2', 'r2', 0x32c4, 'kbc', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('kb_row3', 'r3', 0x32c8, 'kbc', 'displaya', 'rsvd3', 'displayb', False, False, False),
('kb_row4', 'r4', 0x32cc, 'kbc', 'displaya', 'spi2', 'displayb', False, False, False),
('kb_row5', 'r5', 0x32d0, 'kbc', 'displaya', 'spi2', 'displayb', False, False, False),
('kb_row6', 'r6', 0x32d4, 'kbc', 'displaya', 'displaya_alt', 'displayb', False, False, False),
('kb_row7', 'r7', 0x32d8, 'kbc', 'rsvd2', 'cldvfs', 'uarta', False, False, False),
('kb_row8', 's0', 0x32dc, 'kbc', 'rsvd2', 'cldvfs', 'uarta', False, False, False),
('kb_row9', 's1', 0x32e0, 'kbc', 'rsvd2', 'rsvd3', 'uarta', False, False, False),
('kb_row10', 's2', 0x32e4, 'kbc', 'rsvd2', 'rsvd3', 'uarta', False, False, False),
('gen2_i2c_scl', 't5', 0x3250, 'i2c2', 'rsvd2', 'gmi', 'rsvd4', True, False, False),
('gen2_i2c_sda', 't6', 0x3254, 'i2c2', 'rsvd2', 'gmi', 'rsvd4', True, False, False),
('sdmmc4_cmd', 't7', 0x325c, 'sdmmc4', 'rsvd2', 'gmi', 'rsvd4', False, True, False),
('', 'u0', 0x3184, 'owr', 'uarta', 'rsvd3', 'rsvd4', False, False, False),
('', 'u1', 0x3188, 'rsvd1', 'uarta', 'rsvd3', 'rsvd4', False, False, False),
('', 'u2', 0x318c, 'rsvd1', 'uarta', 'rsvd3', 'rsvd4', False, False, False),
('', 'u3', 0x3190, 'pwm0', 'uarta', 'displaya', 'displayb', False, False, False),
('', 'u4', 0x3194, 'pwm1', 'uarta', 'displaya', 'displayb', False, False, False),
('', 'u5', 0x3198, 'pwm2', 'uarta', 'displaya', 'displayb', False, False, False),
('', 'u6', 0x319c, 'pwm3', 'uarta', 'usb', 'displayb', False, False, False),
('', 'v0', 0x3040, 'usb', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('', 'v1', 0x3044, 'rsvd1', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('sdmmc3_cd_n', 'v2', 0x33e8, 'sdmmc3', 'owr', 'rsvd3', 'rsvd4', False, False, False),
('sdmmc1_wp_n', 'v3', 0x33e4, 'sdmmc1', 'clk12', 'spi4', 'uarta', False, False, False),
('ddc_scl', 'v4', 0x3114, 'i2c4', 'rsvd2', 'rsvd3', 'rsvd4', False, False, True),
('ddc_sda', 'v5', 0x3118, 'i2c4', 'rsvd2', 'rsvd3', 'rsvd4', False, False, True),
# TRM calls this spi1_cs1_n; perhaps it's wrong?
('gpio_w2_aud', 'w2', 0x33ec, 'spi6', 'rsvd2', 'spi2', 'i2c1', False, False, False),
# TRM calls this spi1_cs2_n; perhaps it's wrong?
('gpio_w3_aud', 'w3', 0x33f0, 'spi6', 'spi1', 'spi2', 'i2c1', False, False, False),
('clk1_out', 'w4', 0x334c, 'extperiph1', 'dap2', 'rsvd3', 'rsvd4', False, False, False),
('clk2_out', 'w5', 0x3068, 'extperiph2', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('uart3_txd', 'w6', 0x3174, 'uartc', 'rsvd2', 'rsvd3', 'spi4', False, False, False),
('uart3_rxd', 'w7', 0x3178, 'uartc', 'rsvd2', 'rsvd3', 'spi4', False, False, False),
# TRM calls this spi2_mosi; perhaps it's wrong?
('dvfs_pwm', 'x0', 0x3368, 'spi6', 'cldvfs', 'rsvd3', 'rsvd4', False, False, False),
# TRM calls this spi2_miso; perhaps it's wrong?
('gpio_x1_aud', 'x1', 0x336c, 'spi6', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
# TRM calls this spi2_sck; perhaps it's wrong?
('dvfs_clk', 'x2', 0x3374, 'spi6', 'cldvfs', 'rsvd3', 'rsvd4', False, False, False),
# TRM calls this spi2_cs0_n; perhaps it's wrong?
('gpio_x3_aud', 'x3', 0x3370, 'spi6', 'spi1', 'rsvd3', 'rsvd4', False, False, False),
# TRM calls this spi1_mosi; perhaps it's wrong?
('gpio_x4_aud', 'x4', 0x3378, 'rsvd1', 'spi1', 'spi2', 'dap2', False, False, False),
# TRM calls this spi1_sck; perhaps it's wrong?
('gpio_x5_aud', 'x5', 0x337c, 'rsvd1', 'spi1', 'spi2', 'rsvd4', False, False, False),
# TRM calls this spi1_cs0_n; perhaps it's wrong?
('gpio_x6_aud', 'x6', 0x3380, 'spi6', 'spi1', 'spi2', 'rsvd4', False, False, False),
# TRM calls this spi2_cs0_n; perhaps it's wrong?
('gpio_x7_aud', 'x7', 0x3384, 'rsvd1', 'spi1', 'spi2', 'rsvd4', False, False, False),
('ulpi_clk', 'y0', 0x3020, 'spi1', 'spi5', 'uartd', 'ulpi', False, False, False),
('ulpi_dir', 'y1', 0x3024, 'spi1', 'spi5', 'uartd', 'ulpi', False, False, False),
('ulpi_nxt', 'y2', 0x3028, 'spi1', 'spi5', 'uartd', 'ulpi', False, False, False),
('ulpi_stp', 'y3', 0x302c, 'spi1', 'spi5', 'uartd', 'ulpi', False, False, False),
('sdmmc1_dat3', 'y4', 0x3050, 'sdmmc1', 'spdif', 'spi4', 'uarta', False, False, False),
('sdmmc1_dat2', 'y5', 0x3054, 'sdmmc1', 'pwm0', 'spi4', 'uarta', False, False, False),
('sdmmc1_dat1', 'y6', 0x3058, 'sdmmc1', 'pwm1', 'spi4', 'uarta', False, False, False),
('sdmmc1_dat0', 'y7', 0x305c, 'sdmmc1', 'rsvd2', 'spi4', 'uarta', False, False, False),
('sdmmc1_clk', 'z0', 0x3048, 'sdmmc1', 'clk12', 'rsvd3', 'rsvd4', False, False, False),
('sdmmc1_cmd', 'z1', 0x304c, 'sdmmc1', 'spdif', 'spi4', 'uarta', False, False, False),
('sys_clk_req', 'z5', 0x3320, 'sysclk', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('pwr_i2c_scl', 'z6', 0x32b4, 'i2cpwr', 'rsvd2', 'rsvd3', 'rsvd4', True, False, False),
('pwr_i2c_sda', 'z7', 0x32b8, 'i2cpwr', 'rsvd2', 'rsvd3', 'rsvd4', True, False, False),
('sdmmc4_dat0', 'aa0', 0x3260, 'sdmmc4', 'spi3', 'gmi', 'rsvd4', False, True, False),
('sdmmc4_dat1', 'aa1', 0x3264, 'sdmmc4', 'spi3', 'gmi', 'rsvd4', False, True, False),
('sdmmc4_dat2', 'aa2', 0x3268, 'sdmmc4', 'spi3', 'gmi', 'rsvd4', False, True, False),
('sdmmc4_dat3', 'aa3', 0x326c, 'sdmmc4', 'spi3', 'gmi', 'rsvd4', False, True, False),
('sdmmc4_dat4', 'aa4', 0x3270, 'sdmmc4', 'spi3', 'gmi', 'rsvd4', False, True, False),
('sdmmc4_dat5', 'aa5', 0x3274, 'sdmmc4', 'spi3', 'gmi', 'rsvd4', False, True, False),
('sdmmc4_dat6', 'aa6', 0x3278, 'sdmmc4', 'spi3', 'gmi', 'rsvd4', False, True, False),
('sdmmc4_dat7', 'aa7', 0x327c, 'sdmmc4', 'rsvd2', 'gmi', 'rsvd4', False, True, False),
('', 'bb0', 0x328c, 'i2s4', 'vi', 'vi_alt1', 'vi_alt3', False, False, False),
('cam_i2c_scl', 'bb1', 0x3290, 'vgp1', 'i2c3', 'rsvd3', 'rsvd4', True, False, False),
('cam_i2c_sda', 'bb2', 0x3294, 'vgp2', 'i2c3', 'rsvd3', 'rsvd4', True, False, False),
('', 'bb3', 0x3298, 'vgp3', 'displaya', 'displayb', 'rsvd4', False, False, False),
('', 'bb4', 0x329c, 'vgp4', 'displaya', 'displayb', 'rsvd4', False, False, False),
('', 'bb5', 0x32a0, 'vgp5', 'displaya', 'displayb', 'rsvd4', False, False, False),
('', 'bb6', 0x32a4, 'vgp6', 'displaya', 'displayb', 'rsvd4', False, False, False),
('', 'bb7', 0x32a8, 'i2s4', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('cam_mclk', 'cc0', 0x3284, 'vi', 'vi_alt1', 'vi_alt3', 'rsvd4', False, False, False),
('', 'cc1', 0x3288, 'i2s4', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('', 'cc2', 0x32ac, 'i2s4', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('sdmmc4_clk', 'cc4', 0x3258, 'sdmmc4', 'rsvd2', 'gmi', 'rsvd4', False, True, False),
('clk2_req', 'cc5', 0x306c, 'dap', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('clk3_out', 'ee0', 0x31b8, 'extperiph3', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('clk3_req', 'ee1', 0x31bc, 'dev3', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('clk1_req', 'ee2', 0x3348, 'dap', 'dap1', 'rsvd3', 'rsvd4', False, False, False),
('hdmi_cec', 'ee3', 0x33e0, 'cec', 'sdmmc3', 'rsvd3', 'soc', True, False, False),
('sdmmc3_clk_lb_out', 'ee4', 0x3400, 'sdmmc3', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('sdmmc3_clk_lb_in', 'ee5', 0x33fc, 'sdmmc3', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
)
pins = (
#name, reg, f0, f1, f2, f3, od, ior, rcv_sel
('core_pwr_req', 0x3324, 'pwron', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('cpu_pwr_req', 0x3328, 'cpu', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('pwr_int_n', 0x332c, 'pmi', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('reset_out_n', 0x3408, 'rsvd1', 'rsvd2', 'rsvd3', 'reset_out_n', False, False, False),
('owr', 0x3334, 'owr', 'rsvd2', 'rsvd3', 'rsvd4', False, False, True),
('jtag_rtck', 0x32b0, 'rtck', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('clk_32k_in', 0x3330, 'clk', 'rsvd2', 'rsvd3', 'rsvd4', False, False, False),
('gmi_clk_lb', 0x3404, 'sdmmc2', 'nand', 'gmi', 'rsvd4', False, False, False),
)
drive_groups = (
#name, r, hsm_b, schmitt_b, lpmd_b, drvdn_b, drvdn_w, drvup_b, drvup_w, slwr_b, slwr_w, slwf_b, slwf_w, drvtype
('ao1', 0x868, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('ao2', 0x86c, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('at1', 0x870, 2, 3, -1, 12, 7, 20, 7, 28, 2, 30, 2, True),
('at2', 0x874, 2, 3, -1, 12, 7, 20, 7, 28, 2, 30, 2, True),
('at3', 0x878, 2, 3, -1, 12, 7, 20, 7, 28, 2, 30, 2, True),
('at4', 0x87c, 2, 3, -1, 12, 7, 20, 7, 28, 2, 30, 2, True),
('at5', 0x880, 2, 3, 4, 14, 5, 19, 5, 28, 2, 30, 2, False),
('cdev1', 0x884, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('cdev2', 0x888, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('dap1', 0x890, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('dap2', 0x894, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('dap3', 0x898, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('dap4', 0x89c, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('dbg', 0x8a0, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('sdio3', 0x8b0, 2, 3, -1, 12, 7, 20, 7, 28, 2, 30, 2, False),
('spi', 0x8b4, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('uaa', 0x8b8, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('uab', 0x8bc, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('uart2', 0x8c0, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('uart3', 0x8c4, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('sdio1', 0x8ec, 2, 3, -1, 12, 7, 20, 7, 28, 2, 30, 2, False),
('ddc', 0x8fc, 2, 3, -1, 12, 5, 20, 5, 28, 2, 30, 2, False),
('gma', 0x900, 2, 3, -1, 14, 5, 20, 5, 28, 2, 30, 2, False),
('gme', 0x910, 2, 3, 4, 14, 5, 19, 5, 28, 2, 30, 2, False),
('gmf', 0x914, 2, 3, 4, 14, 5, 19, 5, 28, 2, 30, 2, False),
('gmg', 0x918, 2, 3, 4, 14, 5, 19, 5, 28, 2, 30, 2, False),
('gmh', 0x91c, 2, 3, 4, 14, 5, 19, 5, 28, 2, 30, 2, False),
('owr', 0x920, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
# There is confusion in the TRM; is this UDA or UAD?
('uda', 0x924, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('dev3', 0x92c, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('cec', 0x938, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('at6', 0x994, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, True),
('dap5', 0x998, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('usb_vbus_en', 0x99c, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('ao3', 0x9a0, 2, 3, 4, 12, 5, -1, -1, 28, 2, -1, -1, False),
('hv0', 0x9a4, 2, 3, 4, 12, 5, -1, -1, 28, 2, -1, -1, False),
('sdio4', 0x9a8, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
('ao0', 0x9ac, 2, 3, 4, 12, 5, 20, 5, 28, 2, 30, 2, False),
)
drive_group_pins = {
'ao1': (
'kb_row0_pr0',
'kb_row1_pr1',
'kb_row2_pr2',
'kb_row3_pr3',
'kb_row4_pr4',
'kb_row5_pr5',
'kb_row6_pr6',
'kb_row7_pr7',
'pwr_i2c_scl_pz6',
'pwr_i2c_sda_pz7',
),
'ao2': (
'clk_32k_out_pa0',
'kb_col0_pq0',
'kb_col1_pq1',
'kb_col2_pq2',
'kb_col3_pq3',
'kb_col4_pq4',
'kb_col5_pq5',
'kb_col6_pq6',
'kb_col7_pq7',
'kb_row8_ps0',
'kb_row9_ps1',
'kb_row10_ps2',
'sys_clk_req_pz5',
'core_pwr_req',
'cpu_pwr_req',
'reset_out_n',
),
'at1': (
'gmi_ad8_ph0',
'gmi_ad9_ph1',
'gmi_ad10_ph2',
'gmi_ad11_ph3',
'gmi_ad12_ph4',
'gmi_ad13_ph5',
'gmi_ad14_ph6',
'gmi_ad15_ph7',
'gmi_iordy_pi5',
'gmi_cs7_n_pi6',
),
'at2': (
'gmi_ad0_pg0',
'gmi_ad1_pg1',
'gmi_ad2_pg2',
'gmi_ad3_pg3',
'gmi_ad4_pg4',
'gmi_ad5_pg5',
'gmi_ad6_pg6',
'gmi_ad7_pg7',
'gmi_wr_n_pi0',
'gmi_oe_n_pi1',
'gmi_cs6_n_pi3',
'gmi_rst_n_pi4',
'gmi_wait_pi7',
'gmi_dqs_p_pj3',
'gmi_adv_n_pk0',
'gmi_clk_pk1',
'gmi_cs4_n_pk2',
'gmi_cs2_n_pk3',
'gmi_cs3_n_pk4',
),
'at3': (
'gmi_wp_n_pc7',
'gmi_cs0_n_pj0',
),
'at4': (
'gmi_a17_pb0',
'gmi_a18_pb1',
'gmi_cs1_n_pj2',
'gmi_a16_pj7',
'gmi_a19_pk7',
),
'at5': (
'gen2_i2c_scl_pt5',
'gen2_i2c_sda_pt6',
),
'cdev1': (
'clk1_out_pw4',
'clk1_req_pee2',
),
'cdev2': (
'clk2_out_pw5',
'clk2_req_pcc5',
'sdmmc1_wp_n_pv3',
),
'dap1': (
'dap1_fs_pn0',
'dap1_din_pn1',
'dap1_dout_pn2',
'dap1_sclk_pn3',
),
'dap2': (
'dap2_fs_pa2',
'dap2_sclk_pa3',
'dap2_din_pa4',
'dap2_dout_pa5',
),
'dap3': (
'dap3_fs_pp0',
'dap3_din_pp1',
'dap3_dout_pp2',
'dap3_sclk_pp3',
),
'dap4': (
'dap4_fs_pp4',
'dap4_din_pp5',
'dap4_dout_pp6',
'dap4_sclk_pp7',
),
'dbg': (
'gen1_i2c_scl_pc4',
'gen1_i2c_sda_pc5',
'pu0',
'pu1',
'pu2',
'pu3',
'pu4',
'pu5',
'pu6',
),
'sdio3': (
'sdmmc3_clk_pa6',
'sdmmc3_cmd_pa7',
'sdmmc3_dat3_pb4',
'sdmmc3_dat2_pb5',
'sdmmc3_dat1_pb6',
'sdmmc3_dat0_pb7',
'sdmmc3_clk_lb_out_pee4',
'sdmmc3_clk_lb_in_pee5',
),
'spi': (
'dvfs_pwm_px0',
'gpio_x1_aud_px1',
'dvfs_clk_px2',
'gpio_x3_aud_px3',
'gpio_x4_aud_px4',
'gpio_x5_aud_px5',
'gpio_x6_aud_px6',
'gpio_x7_aud_px7',
'gpio_w2_aud_pw2',
'gpio_w3_aud_pw3',
),
'uaa': (
'ulpi_data0_po1',
'ulpi_data1_po2',
'ulpi_data2_po3',
'ulpi_data3_po4',
),
'uab': (
'ulpi_data7_po0',
'ulpi_data4_po5',
'ulpi_data5_po6',
'ulpi_data6_po7',
'pv0',
'pv1',
),
'uart2': (
'uart2_txd_pc2',
'uart2_rxd_pc3',
'uart2_cts_n_pj5',
'uart2_rts_n_pj6',
),
'uart3': (
'uart3_cts_n_pa1',
'uart3_rts_n_pc0',
'uart3_txd_pw6',
'uart3_rxd_pw7',
),
'sdio1': (
'sdmmc1_dat3_py4',
'sdmmc1_dat2_py5',
'sdmmc1_dat1_py6',
'sdmmc1_dat0_py7',
'sdmmc1_clk_pz0',
'sdmmc1_cmd_pz1',
),
'ddc': (
'ddc_scl_pv4',
'ddc_sda_pv5',
),
'gma': (
'sdmmc4_clk_pcc4',
'sdmmc4_cmd_pt7',
'sdmmc4_dat0_paa0',
'sdmmc4_dat1_paa1',
'sdmmc4_dat2_paa2',
'sdmmc4_dat3_paa3',
'sdmmc4_dat4_paa4',
'sdmmc4_dat5_paa5',
'sdmmc4_dat6_paa6',
'sdmmc4_dat7_paa7',
),
'gme': (
'pbb0',
'cam_i2c_scl_pbb1',
'cam_i2c_sda_pbb2',
'pbb3',
'pcc2',
),
'gmf': (
'pbb4',
'pbb5',
'pbb6',
'pbb7',
),
'gmg': (
'cam_mclk_pcc0',
),
'gmh': (
'pcc1',
),
'owr': (
'sdmmc3_cd_n_pv2',
),
'uda': (
'ulpi_clk_py0',
'ulpi_dir_py1',
'ulpi_nxt_py2',
'ulpi_stp_py3',
),
'dev3': (
# FIXME
),
'cec': (
# FIXME
),
'at6': (
# FIXME
),
'dap5': (
# FIXME
),
'usb_vbus_en': (
# FIXME
),
'ao3': (
# FIXME
),
'hv0': (
# FIXME
),
'sdio4': (
# FIXME
),
'ao0': (
# FIXME
),
}
|