huangcm
2025-09-01 53d8e046ac1bf2ebe94f671983e3d3be059df91a
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
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
/*
 * Allwinner sun50iw5t pin config info.
 */
 
/ {
   soc@03000000{
       r_pio: pinctrl@07022000 {
           compatible = "allwinner,sun50iw5t-r-pinctrl";
           reg = <0x0 0x07022000 0x0 0x400>;
           interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
           clocks = <&clk_cpurpio>;
           device_type = "r_pio";
           gpio-controller;
           interrupt-controller;
           #interrupt-cells = <3>;
           #size-cells = <0>;
           #gpio-cells = <6>;
 
           s_rsb0_pins_a: s_rsb00@0 {
               allwinner,pins = "PL0", "PL1";
               allwinner,function = "s_rsb0";
               allwinner,muxsel = <2>;
               allwinner,drive = <2>;
               allwinner,pull = <1>;
           };
 
           s_uart0_pins_a: s_uart0@0 {
               allwinner,pins = "PL2", "PL3";
               allwinner,function = "s_uart0";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           s_twi0_pins_a: s_twi0@0 {
               allwinner,pins = "PL0", "PL1";
               allwinner,function = "s_twi0";
               allwinner,muxsel = <3>;
               allwinner,drive = <2>;
               allwinner,pull = <1>;
           };
 
           s_twi1_pins_a: s_twi1@0 {
               allwinner,pins = "PL8", "PL9";
               allwinner,function = "s_twi1";
               allwinner,muxsel = <2>;
               allwinner,drive = <2>;
               allwinner,pull = <1>;
           };
 
           s_twi2_pins_a: s_twi2@0 {
               allwinner,pins = "PL10", "PL11";
               allwinner,function = "s_twi2";
               allwinner,muxsel = <2>;
               allwinner,drive = <2>;
               allwinner,pull = <1>;
           };
 
           s_spi0_pins_a: s_spi0@0 {
               allwinner,pins = "PL12", "PL13", "PL14", "PL15";
               allwinner,function = "s_spi0";
               allwinner,muxsel = <2>;
               allwinner,drive = <2>;
               allwinner,pull = <1>;
           };
 
           s_jtag0_pins_a: s_jtag0@0 {
               allwinner,pins = "PL4", "PL5", "PL6", "PL7";
               allwinner,function = "s_jtag0";
               allwinner,muxsel = <2>;
               allwinner,drive = <2>;
               allwinner,pull = <1>;
           };
       };
 
       pio: pinctrl@0300b000 {
           compatible = "allwinner,sun50iw5t-pinctrl";
           reg = <0x0 0x0300b000 0x0 0x400>;
           interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
                    <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
                    <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
                    <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
                    <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
           device_type = "pio";
           clocks = <&clk_pio>;
           gpio-controller;
           interrupt-controller;
           #interrupt-cells = <3>;
           #size-cells = <0>;
           #gpio-cells = <6>;
 
           vdevice_pins_a: vdevice@0 {
               allwinner,pins = "PB1", "PB2";
               allwinner,function = "vdevice";
               allwinner,muxsel = <5>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
               allwinner,data = <0>;
           };
 
           uart0_pins_a: uart0@0 {
               allwinner,pins = "PB8", "PB9";
               allwinner,pname = "uart0_tx", "uart0_rx";
               allwinner,function = "uart0";
               allwinner,muxsel = <3>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           uart0_pins_b: uart0@1 {
               allwinner,pins = "PB8", "PB9";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           uart1_pins_a: uart1@0 {
               allwinner,pins = "PG6", "PG7", "PG8", "PG9";
               allwinner,pname = "uart1_tx", "uart1_rx",
                         "uart1_rts", "uart1_cts";
               allwinner,function = "uart1";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           uart1_pins_b: uart1@1 {
               allwinner,pins = "PG6", "PG7", "PG8", "PG9";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           uart2_pins_a: uart2@0 {
               allwinner,pins = "PB0", "PB1", "PB2", "PB3";
               allwinner,pname = "uart2_tx", "uart2_rx",
                         "uart2_rts", "uart2_cts";
               allwinner,function = "uart2";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           uart2_pins_b: uart2@1 {
               allwinner,pins = "PB0", "PB1", "PB2", "PB3";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           uart3_pins_a: uart3@0 {
               allwinner,pins = "PH4", "PH5", "PH6", "PH7";
               allwinner,pname = "uart3_tx", "uart3_rx",
                         "uart3_rts", "uart3_cts";
               allwinner,function = "uart3";
               allwinner,muxsel = <3>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           uart3_pins_b: uart3@1 {
               allwinner,pins = "PH4", "PH5", "PH6", "PH7";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           twi0_pins_a: twi0@0 {
               allwinner,pins = "PH0", "PH1";
               allwinner,pname = "twi0_scl", "twi0_sda";
               allwinner,function = "twi0";
               allwinner,muxsel = <2>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           twi0_pins_b: twi0@1 {
               allwinner,pins = "PH0", "PH1";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           twi1_pins_a: twi1@0 {
               allwinner,pins = "PH2", "PH3";
               allwinner,pname = "twi1_scl", "twi1_sda";
               allwinner,function = "twi1";
               allwinner,muxsel = <2>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           twi1_pins_b: twi1@1 {
               allwinner,pins = "PH2", "PH3";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           twi2_pins_a: twi2@0 {
               allwinner,pins = "PE16", "PE17";
               allwinner,pname = "twi2_scl", "twi2_sda";
               allwinner,function = "twi2";
               allwinner,muxsel = <3>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           twi2_pins_b: twi2@1 {
               allwinner,pins = "PE16", "PE17";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
           twi3_pins_a: twi3@0 {
               allwinner,pins = "PH4", "PH5";
               allwinner,pname = "twi3_scl", "twi3_sda";
               allwinner,function = "twi3";
               allwinner,muxsel = <5>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           twi3_pins_b: twi3@1 {
               allwinner,pins = "PH4", "PH5";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
           twi4_pins_a: twi4@0 {
               allwinner,pins = "PH6", "PH7";
               allwinner,pname = "twi4_scl", "twi4_sda";
               allwinner,function = "twi4";
               allwinner,muxsel = <5>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           twi4_pins_b: twi4@1 {
               allwinner,pins = "PH6", "PH7";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           spi0_pins_a: spi0@0 {
               allwinner,pins = "PC0", "PC2", "PC3";
               allwinner,pname = "spi0_sclk", "spi0_mosi",
                         "spi0_miso";
               allwinner,function = "spi0";
               allwinner,muxsel = <4>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           spi0_pins_b: spi0@1 {
               allwinner,pins = "PC5";
               allwinner,pname = "spi0_cs0";
               allwinner,function = "spi0";
               allwinner,muxsel = <4>;
               allwinner,drive = <0>;
               allwinner,pull = <1>;    // only CS should be pulled up
           };
 
           spi0_pins_c: spi0@2 {
               allwinner,pins = "PC3", "PC2", "PC0", "PC5";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           spi1_pins_a: spi1@0 {
               allwinner,pins = "PH5", "PH6", "PH7";
               allwinner,pname = "spi1_sclk", "spi1_mosi",
                         "spi1_miso";
               allwinner,function = "spi1";
               allwinner,muxsel = <4>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           spi1_pins_b: spi1@1 {
               allwinner,pins = "PH4";
               allwinner,pname = "spi1_cs0";
               allwinner,function = "spi1";
               allwinner,muxsel = <4>;
               allwinner,drive = <0>;
               allwinner,pull = <1>;    // only CS should be pulled up
           };
 
           spi1_pins_c: spi1@2 {
               allwinner,pins = "PH4", "PH5", "PH6", "PH7";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <0>;
               allwinner,pull = <0>;
           };
 
           sdc0_pins_a: sdc0@0 {
               allwinner,pins = "PF0", "PF1", "PF2",
                        "PF3", "PF4", "PF5";
               allwinner,function = "sdc0";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           sdc0_pins_b: sdc0@1 {
               allwinner,pins = "PF0", "PF1", "PF2",
                        "PF3", "PF4", "PF5";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           sdc1_pins_a: sdc1@0 {
               allwinner,pins = "PG0", "PG1", "PG2",
                        "PG3", "PG4", "PG5";
               allwinner,function = "sdc1";
               allwinner,muxsel = <2>;
               allwinner,drive = <3>;
               allwinner,pull = <1>;
           };
 
           sdc1_pins_b: sdc1@1 {
               allwinner,pins = "PG0", "PG1", "PG2",
                        "PG3", "PG4", "PG5";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           sdc2_pins_a: sdc2@0 {
               allwinner,pins = "PC1", "PC4", "PC5", "PC6",
                        "PC7", "PC8", "PC9", "PC10",
                        "PC11", "PC12", "PC13", "PC14";
               allwinner,function = "sdc2";
               allwinner,muxsel = <3>;
               allwinner,drive = <2>;
               allwinner,pull = <1>;
           };
 
           sdc2_pins_b: sdc2@1 {
               allwinner,pins = "PC1", "PC4", "PC5", "PC6",
                        "PC7", "PC8", "PC8", "PC10",
                        "PC11", "PC12", "PC13", "PC14";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;
           };
 
           daudio0_pins_a: daudio0@0 {
               allwinner,pins = "PB6", "PB8", "PB4", "PB5", "PB7";
               allwinner,function = "i2s0";
               allwinner,muxsel = <3>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           daudio0_pins_b: daudio0_sleep@0 {
               allwinner,pins = "PB6", "PB8", "PB4", "PB5", "PB7";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           daudio1_pins_a: daudio1@0 {
               allwinner,pins = "PG10", "PG11", "PG12", "PG13";
               allwinner,function = "i2s1";
               allwinner,muxsel = <3>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           daudio1_pins_b: daudio1_sleep@0 {
               allwinner,pins = "PG10", "PG11", "PG12", "PG13";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           daudio2_pins_a: daudio2@0 {
               allwinner,pins = "PH4", "PH5", "PH6", "PH7", "PH8";
               allwinner,function = "i2s2";
               allwinner,muxsel = <3>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           daudio2_pins_b: daudio2_sleep@0 {
               allwinner,pins = "PH4", "PH5", "PH6", "PH7", "PH8";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           dmic_pins_a: dmic@0 {
               allwinner,pins = "PH8", "PH9", "PH10", "PH11", "PH12";
               allwinner,function = "dmic";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           dmic_pins_b: dmic_sleep@0 {
               allwinner,pins = "PH8", "PH9", "PH10", "PH11", "PH12";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           aif2_pins_a: aif2@0 {
               allwinner,pins = "PB6", "PB4", "PB5", "PB7";
               allwinner,function = "aif2";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           aif3_pins_a: aif3@0 {
               allwinner,pins = "PG10", "PG11", "PG12", "PG13";
               allwinner,function = "aif3";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           aif2_pins_b: aif2_sleep@0 {
               allwinner,pins = "PB6", "PB4", "PB5", "PB7";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           aif3_pins_b: aif3_sleep@0 {
               allwinner,pins = "PG10", "PG11", "PG12", "PG13";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           csi0_pins_a: csi0@0 {
               allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6",
                        "PE7", "PE8", "PE9", "PE10", "PE11";
               allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync",
                         "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3",
                         "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7";
               allwinner,function = "csi0";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
               allwinner,data = <0>;
           };
           csi0_pins_b: csi0@1 {
               allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6",
                        "PE7", "PE8", "PE9", "PE10", "PE11";
               allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync",
                         "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3",
                         "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
               allwinner,data = <0>;
           };
           csi_mclk0_pins_a: csi_mclk0@0 {
               allwinner,pins = "PE1";
               allwinner,pname = "csi_mclk0";
               allwinner,function = "csi_mclk0";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
               allwinner,data = <0>;
           };
           csi_mclk0_pins_b: csi_mclk0@1 {
               allwinner,pins = "PE1";
               allwinner,pname = "csi_mclk0";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
               allwinner,data = <0>;
           };
           csi_cci0_pins_a: csi_cci0@0 {
               allwinner,pins = "PE12", "PE13";
               allwinner,pname = "csi_cci0_sck", "csi_cci0_sda";
               allwinner,function = "csi_cci0";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
               allwinner,data = <0>;
           };
           csi_cci0_pins_b: csi_cci0@1 {
               allwinner,pins = "PE12", "PE13";
               allwinner,pname = "csi_cci0_sck", "csi_cci0_sda";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
               allwinner,data = <0>;
           };
 
           nand0_pins_a: nand0@0 {
               allwinner,pins = "PC0", "PC1", "PC2", "PC4",
                        "PC6", "PC7", "PC8", "PC9",
                        "PC10", "PC11", "PC12", "PC13",
                        "PC14";
               allwinner,pname= "nand0_we", "nand0_ale","nand0_cle", "nand0_nre",
                        "nand0_d0", "nand0_d1", "nand0_d2", "nand0_d3",
                        "nand0_d4", "nand0_d5", "nand0_d6", "nand0_d7",
                        "nand0_ndqs";
               allwinner,function = "nand0";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
           nand0_pins_b: nand0@1 {
               allwinner,pins = "PC3", "PC5", "PC15", "PC16";
               allwinner,pname= "nand0_ce0", "nand0_rb0", "nand0_ce1", "nand0_rb1";
               allwinner,function = "nand0";
               allwinner,muxsel = <2>;
               allwinner,drive = <1>;
               allwinner,pull = <1>;// only RB&CE should be pulled up
           };
 
           nand0_pins_c: nand0@2 {
               allwinner,pins = "PC0", "PC1", "PC2", "PC3",
                        "PC4", "PC5", "PC6", "PC7",
                        "PC8", "PC9", "PC10", "PC11",
                        "PC12", "PC13", "PC14", "PC15",
                        "PC16";
               allwinner,function = "io_disabled";
               allwinner,muxsel = <7>;
               allwinner,drive = <1>;
               allwinner,pull = <0>;
           };
 
       };
   };
};