blob: 48833bff9eef9f4de2ab614f8bd42e3512ef35c6 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Kever Yange43e7392017-11-28 16:04:15 +08002/*
3 * (C) Copyright 2017 Rockchip Electronics Co., Ltd
Kever Yange43e7392017-11-28 16:04:15 +08004 */
5
6#include <dt-bindings/gpio/gpio.h>
7#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/pinctrl/rockchip.h>
10#include <dt-bindings/clock/rk3128-cru.h>
Kever Yange43e7392017-11-28 16:04:15 +080011
12/ {
13 compatible = "rockchip,rk3128";
14 rockchip,sram = <&sram>;
15 interrupt-parent = <&gic>;
16 #address-cells = <1>;
17 #size-cells = <1>;
18
19 aliases {
20 gpio0 = &gpio0;
21 gpio1 = &gpio1;
22 gpio2 = &gpio2;
23 gpio3 = &gpio3;
24 i2c0 = &i2c0;
25 i2c1 = &i2c1;
26 i2c2 = &i2c2;
27 i2c3 = &i2c3;
28 spi0 = &spi0;
29 serial0 = &uart0;
30 serial1 = &uart1;
31 serial2 = &uart2;
32 mmc0 = &emmc;
33 mmc1 = &sdmmc;
34 };
35
Kever Yange43e7392017-11-28 16:04:15 +080036 arm-pmu {
37 compatible = "arm,cortex-a7-pmu";
38 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
39 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
40 <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
41 <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
42 };
43
44 cpus {
45 #address-cells = <1>;
46 #size-cells = <0>;
47 enable-method = "rockchip,rk3128-smp";
48
Johan Jonker1f288232022-09-09 22:19:24 +020049 cpu0: cpu@0 {
Kever Yange43e7392017-11-28 16:04:15 +080050 device_type = "cpu";
51 compatible = "arm,cortex-a7";
Johan Jonker1f288232022-09-09 22:19:24 +020052 reg = <0x0>;
Kever Yange43e7392017-11-28 16:04:15 +080053 operating-points = <
54 /* KHz uV */
55 816000 1000000
56 >;
57 #cooling-cells = <2>; /* min followed by max */
58 clock-latency = <40000>;
59 clocks = <&cru ARMCLK>;
60 };
61
Johan Jonker1f288232022-09-09 22:19:24 +020062 cpu1: cpu@1 {
Kever Yange43e7392017-11-28 16:04:15 +080063 device_type = "cpu";
64 compatible = "arm,cortex-a7";
Johan Jonker1f288232022-09-09 22:19:24 +020065 reg = <0x1>;
Kever Yange43e7392017-11-28 16:04:15 +080066 };
67
Johan Jonker1f288232022-09-09 22:19:24 +020068 cpu2: cpu@2 {
Kever Yange43e7392017-11-28 16:04:15 +080069 device_type = "cpu";
70 compatible = "arm,cortex-a7";
Johan Jonker1f288232022-09-09 22:19:24 +020071 reg = <0x2>;
Kever Yange43e7392017-11-28 16:04:15 +080072 };
73
Johan Jonker1f288232022-09-09 22:19:24 +020074 cpu3: cpu@3 {
Kever Yange43e7392017-11-28 16:04:15 +080075 device_type = "cpu";
76 compatible = "arm,cortex-a7";
Johan Jonker1f288232022-09-09 22:19:24 +020077 reg = <0x3>;
Kever Yange43e7392017-11-28 16:04:15 +080078 };
79 };
80
81 cpu_axi_bus: cpu_axi_bus {
82 compatible = "rockchip,cpu_axi_bus";
83 #address-cells = <1>;
84 #size-cells = <1>;
85 ranges;
86
87 qos {
88 #address-cells = <1>;
89 #size-cells = <1>;
90 ranges;
91
92 crypto {
93 reg = <0x10128080 0x20>;
94 };
95
96 core {
97 reg = <0x1012a000 0x20>;
98 };
99
100 peri {
101 reg = <0x1012c000 0x20>;
102 };
103
104 gpu {
105 reg = <0x1012d000 0x20>;
106 };
107
108 vpu {
109 reg = <0x1012e000 0x20>;
110 };
111
112 rga {
113 reg = <0x1012f000 0x20>;
114 };
115 ebc {
116 reg = <0x1012f080 0x20>;
117 };
118
119 iep {
120 reg = <0x1012f100 0x20>;
121 };
122
123 lcdc {
124 reg = <0x1012f180 0x20>;
125 rockchip,priority = <3 3>;
126 };
127
128 vip {
129 reg = <0x1012f200 0x20>;
130 rockchip,priority = <3 3>;
131 };
132 };
133
134 msch {
135 #address-cells = <1>;
136 #size-cells = <1>;
137 ranges;
138
139 msch@10128000 {
140 reg = <0x10128000 0x20>;
141 rockchip,read-latency = <0x3f>;
142 };
143 };
144 };
145
146 psci {
147 compatible = "arm,psci";
148 method = "smc";
149 cpu_suspend = <0x84000001>;
150 cpu_off = <0x84000002>;
151 cpu_on = <0x84000003>;
152 migrate = <0x84000005>;
153 };
154
155 amba {
156 compatible = "arm,amba-bus";
157 #address-cells = <1>;
158 #size-cells = <1>;
159 interrupt-parent = <&gic>;
160 ranges;
161
Johan Jonker1f288232022-09-09 22:19:24 +0200162 pdma: dma-controller@20078000 {
Kever Yange43e7392017-11-28 16:04:15 +0800163 compatible = "arm,pl330", "arm,primecell";
164 reg = <0x20078000 0x4000>;
165 arm,pl330-broken-no-flushp;//2
166 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
167 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
168 #dma-cells = <1>;
Johan Jonker9d3bfc32022-09-09 22:18:45 +0200169 clocks = <&cru ACLK_DMAC>;
Kever Yange43e7392017-11-28 16:04:15 +0800170 clock-names = "apb_pclk";
171 };
172 };
173
174 xin24m: xin24m {
175 compatible = "fixed-clock";
176 clock-frequency = <24000000>;
177 clock-output-names = "xin24m";
178 #clock-cells = <0>;
179 };
180
181 xin12m: xin12m {
182 compatible = "fixed-clock";
183 clocks = <&xin24m>;
184 clock-frequency = <12000000>;
185 clock-output-names = "xin12m";
186 #clock-cells = <0>;
187 };
188
189 timer {
190 compatible = "arm,armv7-timer";
191 arm,cpu-registers-not-fw-configured;
192 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
193 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
194 clock-frequency = <24000000>;
195 };
196
197 timer@20044000 {
198 compatible = "arm,armv7-timer";
199 reg = <0x20044000 0xb8>;
200 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
201 rockchip,broadcast = <1>;
202 };
203
Johan Jonker1f288232022-09-09 22:19:24 +0200204 watchdog: watchdog@2004c000 {
Kever Yange43e7392017-11-28 16:04:15 +0800205 compatible = "rockchip,watch dog";
206 reg = <0x2004c000 0x100>;
207 clock-names = "pclk_wdt";
208 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
209 rockchip,irq = <1>;
210 rockchip,timeout = <60>;
211 rockchip,atboot = <1>;
212 rockchip,debug = <0>;
213 };
214
215 reset: reset@20000110 {
216 compatible = "rockchip,reset";
217 reg = <0x20000110 0x24>;
218 #reset-cells = <1>;
219 };
220
Johan Jonker1f288232022-09-09 22:19:24 +0200221 nandc: nand-controller@10500000 {
Kever Yange43e7392017-11-28 16:04:15 +0800222 compatible = "rockchip,rk-nandc";
223 reg = <0x10500000 0x4000>;
224 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
225 pinctrl-names = "default";
226 pinctrl-0 = <&nandc_ale &nandc_cle &nandc_wrn &nandc_rdn &nandc_rdy &nandc_cs0 &nandc_data>;
227 nandc_id = <0>;
228 clocks = <&cru SCLK_NANDC>,
229 <&cru HCLK_NANDC>,
230 <&cru SRST_NANDC>;
231 clock-names = "clk_nandc", "g_clk_nandc", "hclk_nandc";
232 };
233
Kever Yange43e7392017-11-28 16:04:15 +0800234 cru: clock-controller@20000000 {
Kever Yange43e7392017-11-28 16:04:15 +0800235 compatible = "rockchip,rk3128-cru";
236 reg = <0x20000000 0x1000>;
237 rockchip,grf = <&grf>;
238 #clock-cells = <1>;
239 #reset-cells = <1>;
240 assigned-clocks = <&cru PLL_GPLL>;
241 assigned-clock-rates = <594000000>;
242 };
243
Johan Jonker1f288232022-09-09 22:19:24 +0200244 uart0: serial@20060000 {
Kever Yange43e7392017-11-28 16:04:15 +0800245 compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
246 reg = <0x20060000 0x100>;
247 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
248 reg-shift = <2>;
249 reg-io-width = <4>;
250 clock-frequency = <24000000>;
251 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
252 clock-names = "baudclk", "apb_pclk";
253 pinctrl-names = "default";
254 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
255 dmas = <&pdma 2>, <&pdma 3>;
256 #dma-cells = <2>;
257 };
258
Johan Jonker1f288232022-09-09 22:19:24 +0200259 uart1: serial@20064000 {
Kever Yange43e7392017-11-28 16:04:15 +0800260 compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
261 reg = <0x20064000 0x100>;
262 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
263 reg-shift = <2>;
264 reg-io-width = <4>;
265 clock-frequency = <24000000>;
266 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
267 clock-names = "baudclk", "apb_pclk";
268 pinctrl-names = "default";
269 pinctrl-0 = <&uart1_xfer>;
270 dmas = <&pdma 4>, <&pdma 5>;
271 #dma-cells = <2>;
272 };
273
Johan Jonker1f288232022-09-09 22:19:24 +0200274 uart2: serial@20068000 {
Kever Yange43e7392017-11-28 16:04:15 +0800275 compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
276 reg = <0x20068000 0x100>;
277 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
278 reg-shift = <2>;
279 reg-io-width = <4>;
280 clock-frequency = <24000000>;
281 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
282 clock-names = "baudclk", "apb_pclk";
283 pinctrl-names = "default";
284 pinctrl-0 = <&uart2_xfer>;
285 dmas = <&pdma 6>, <&pdma 7>;
286 #dma-cells = <2>;
287 };
288
289 saradc: saradc@2006c000 {
290 compatible = "rockchip,saradc";
291 reg = <0x2006c000 0x100>;
292 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
293 #io-channel-cells = <1>;
294 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
295 clock-names = "saradc", "apb_pclk";
296 resets = <&cru SRST_SARADC>;
297 reset-names = "saradc-apb";
298 status = "disabled";
299 };
300
Johan Jonker1f288232022-09-09 22:19:24 +0200301 pwm0: pwm@20050000 {
Kever Yange43e7392017-11-28 16:04:15 +0800302 compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
303 reg = <0x20050000 0x10>;
Kever Yang32e49002018-01-16 16:08:18 +0800304 #pwm-cells = <3>;
Kever Yange43e7392017-11-28 16:04:15 +0800305 pinctrl-names = "default";
306 pinctrl-0 = <&pwm0_pin>;
307 clocks = <&cru PCLK_PWM>;
308 clock-names = "pwm";
309 };
310
Johan Jonker1f288232022-09-09 22:19:24 +0200311 pwm1: pwm@20050010 {
Kever Yange43e7392017-11-28 16:04:15 +0800312 compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
313 reg = <0x20050010 0x10>;
Kever Yang32e49002018-01-16 16:08:18 +0800314 #pwm-cells = <3>;
Kever Yange43e7392017-11-28 16:04:15 +0800315 pinctrl-names = "default";
316 pinctrl-0 = <&pwm1_pin>;
317 clocks = <&cru PCLK_PWM>;
318 clock-names = "pwm";
319 };
320
Johan Jonker1f288232022-09-09 22:19:24 +0200321 pwm2: pwm@20050020 {
Kever Yange43e7392017-11-28 16:04:15 +0800322 compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
323 reg = <0x20050020 0x10>;
Kever Yang32e49002018-01-16 16:08:18 +0800324 #pwm-cells = <3>;
Kever Yange43e7392017-11-28 16:04:15 +0800325 pinctrl-names = "default";
326 pinctrl-0 = <&pwm2_pin>;
327 clocks = <&cru PCLK_PWM>;
328 clock-names = "pwm";
329 };
330
Johan Jonker1f288232022-09-09 22:19:24 +0200331 pwm3: pwm@20050030 {
Kever Yange43e7392017-11-28 16:04:15 +0800332 compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
333 reg = <0x20050030 0x10>;
Kever Yang32e49002018-01-16 16:08:18 +0800334 #pwm-cells = <3>;
Kever Yange43e7392017-11-28 16:04:15 +0800335 pinctrl-names = "default";
336 pinctrl-0 = <&pwm3_pin>;
337 clocks = <&cru PCLK_PWM>;
338 clock-names = "pwm";
339 };
340
341 sram: sram@10080400 {
342 compatible = "rockchip,rk3128-smp-sram", "mmio-sram";
343 reg = <0x10080400 0x1C00>;
344 map-exec;
345 map-cacheable;
346 };
347
348 pmu: syscon@100a0000 {
349 compatible = "rockchip,rk3128-pmu", "syscon", "simple-mfd";
350 reg = <0x100a0000 0x1000>;
351 #address-cells = <1>;
352 #size-cells = <1>;
353 };
354
355 gic: interrupt-controller@10139000 {
356 compatible = "arm,gic-400";
357 interrupt-controller;
358 #interrupt-cells = <3>;
359 #address-cells = <0>;
360 reg = <0x10139000 0x1000>,
361 <0x1013a000 0x1000>,
362 <0x1013c000 0x2000>,
363 <0x1013e000 0x2000>;
364 interrupts = <GIC_PPI 9 0xf04>;
365 };
366
367 u2phy: usb2-phy {
368 compatible = "rockchip,rk3128-usb2phy";
369 reg = <0x017c 0x0c>;
370 rockchip,grf = <&grf>;
371 clocks = <&cru SCLK_OTGPHY0>;
372 clock-names = "phyclk";
373 #clock-cells = <0>;
374 clock-output-names = "usb480m_phy";
375 #phy-cells = <1>;
376 status = "disabled";
377
378 u2phy_otg: otg-port {
379 #phy-cells = <0>;
380 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
381 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
382 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
383 interrupt-names = "otg-bvalid", "otg-id",
384 "linestate";
385 status = "disabled";
386 };
387
388 u2phy_host: host-port {
389 #phy-cells = <0>;
390 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
391 interrupt-names = "linestate";
392 status = "disabled";
393 };
394 };
395
396 usb_otg: usb@10180000 {
397 compatible = "rockchip,rk3128-usb", "rockchip,rk3288-usb",
398 "snps,dwc2";
399 reg = <0x10180000 0x40000>;
400 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
401 dr_mode = "otg";
402 g-use-dma;
403 hnp-srp-disable;
404 phys = <&u2phy 0>;
405 phy-names = "usb";
406 status = "disabled";
407 };
408
409 usb_host_ehci: usb@101c0000 {
410 compatible = "generic-ehci";
411 reg = <0x101c0000 0x20000>;
412 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
413 phys = <&u2phy 1>;
414 phy-names = "usb";
415 status = "disabled";
416 };
417
418 usb_host_ohci: usb@101e0000 {
419 compatible = "generic-ohci";
420 reg = <0x101e0000 0x20000>;
421 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
422 phys = <&u2phy 1>;
423 phy-names = "usb";
424 status = "disabled";
425 };
426
Johan Jonker1f288232022-09-09 22:19:24 +0200427 sdmmc: mmc@10214000 {
Kever Yange43e7392017-11-28 16:04:15 +0800428 compatible = "rockchip,rk312x-dw-mshc", "rockchip,rk3288-dw-mshc";
429 reg = <0x10214000 0x4000>;
430 max-frequency = <150000000>;
431 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
432 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
433 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
434 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
435 fifo-depth = <0x100>;
436 pinctrl-names = "default";
437 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
438 bus-width = <4>;
439 status = "disabled";
440 };
441
Johan Jonker1f288232022-09-09 22:19:24 +0200442 emmc: mmc@1021c000 {
Kever Yange43e7392017-11-28 16:04:15 +0800443 compatible = "rockchip,rk3128-dw-mshc", "rockchip,rk3288-dw-mshc";
444 reg = <0x1021c000 0x4000>;
445 max-frequency = <150000000>;
446 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
447 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
448 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
449 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
450 bus-width = <8>;
451 default-sample-phase = <158>;
452 num-slots = <1>;
453 fifo-depth = <0x100>;
454 pinctrl-names = "default";
455 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
456 resets = <&cru SRST_EMMC>;
457 reset-names = "reset";
458 status = "disabled";
459 };
460
Johan Jonker1f288232022-09-09 22:19:24 +0200461 i2c0: i2c@20072000 {
Kever Yange43e7392017-11-28 16:04:15 +0800462 compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
463 reg = <20072000 0x1000>;
464 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
465 #address-cells = <1>;
466 #size-cells = <0>;
467 clock-names = "i2c";
468 clocks = <&cru PCLK_I2C0>;
469 pinctrl-names = "default";
470 pinctrl-0 = <&i2c0_xfer>;
471 };
472
Johan Jonker1f288232022-09-09 22:19:24 +0200473 i2c1: i2c@20056000 {
Kever Yange43e7392017-11-28 16:04:15 +0800474 compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
475 reg = <0x20056000 0x1000>;
476 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
477 #address-cells = <1>;
478 #size-cells = <0>;
479 clock-names = "i2c";
480 clocks = <&cru PCLK_I2C1>;
481 pinctrl-names = "default";
482 pinctrl-0 = <&i2c1_xfer>;
483 };
484
Johan Jonker1f288232022-09-09 22:19:24 +0200485 i2c2: i2c@2005a000 {
Kever Yange43e7392017-11-28 16:04:15 +0800486 compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
487 reg = <0x2005a000 0x1000>;
488 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
489 #address-cells = <1>;
490 #size-cells = <0>;
491 clock-names = "i2c";
492 clocks = <&cru PCLK_I2C2>;
493 pinctrl-names = "default";
494 pinctrl-0 = <&i2c2_xfer>;
495 };
496
Johan Jonker1f288232022-09-09 22:19:24 +0200497 i2c3: i2c@2005e000 {
Kever Yange43e7392017-11-28 16:04:15 +0800498 compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
499 reg = <0x2005e000 0x1000>;
500 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
501 #address-cells = <1>;
502 #size-cells = <0>;
503 clock-names = "i2c";
504 clocks = <&cru PCLK_I2C3>;
505 pinctrl-names = "default";
506 pinctrl-0 = <&i2c3_xfer>;
507 };
508
509 spi0: spi@20074000 {
510 compatible = "rockchip,rk3128-spi", "rockchip,rk3288-spi";
511 reg = <0x20074000 0x1000>;
512 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
513 #address-cells = <1>;
514 #size-cells = <0>;
515 pinctrl-names = "default";
516 pinctrl-0 = <&spi0_txd_mux0 &spi0_rxd_mux0 &spi0_clk_mux0 &spi0_cs0_mux0 &spi0_cs1_mux0>;
517 rockchip,spi-src-clk = <0>;
518 num-cs = <2>;
Johan Jonker9d3bfc32022-09-09 22:18:45 +0200519 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
520 clock-names = "spiclk", "apb_pclk";
Kever Yange43e7392017-11-28 16:04:15 +0800521 dmas = <&pdma 8>, <&pdma 9>;
522 #dma-cells = <2>;
523 dma-names = "tx", "rx";
524 };
525
526 grf: syscon@20008000 {
Kever Yange43e7392017-11-28 16:04:15 +0800527 compatible = "rockchip,rk3128-grf", "syscon";
528 reg = <0x20008000 0x1000>;
529 };
530
531 pinctrl: pinctrl@20008000 {
532 compatible = "rockchip,rk3128-pinctrl";
533 reg = <0x20008000 0xA8>,
534 <0x200080A8 0x4C>,
535 <0x20008118 0x20>,
536 <0x20008100 0x04>;
537 reg-names = "base", "mux", "pull", "drv";
538 rockchip,grf = <&grf>;
539 #address-cells = <1>;
540 #size-cells = <1>;
541 ranges;
542
Johan Jonker1f288232022-09-09 22:19:24 +0200543 gpio0: gpio@2007c000 {
Kever Yange43e7392017-11-28 16:04:15 +0800544 compatible = "rockchip,gpio-bank";
545 reg = <0x2007c000 0x100>;
546 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
547 clocks = <&cru PCLK_GPIO0>;
548 gpio-controller;
549 #gpio-cells = <2>;
550 interrupt-controller;
551 #interrupt-cells = <2>;
552 };
553
Johan Jonker1f288232022-09-09 22:19:24 +0200554 gpio1: gpio@20080000 {
Kever Yange43e7392017-11-28 16:04:15 +0800555 compatible = "rockchip,gpio-bank";
556 reg = <0x20080000 0x100>;
557 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
558 clocks = <&cru PCLK_GPIO1>;
559 gpio-controller;
560 #gpio-cells = <2>;
561 interrupt-controller;
562 #interrupt-cells = <2>;
563 };
564
Johan Jonker1f288232022-09-09 22:19:24 +0200565 gpio2: gpio@20084000 {
Kever Yange43e7392017-11-28 16:04:15 +0800566 compatible = "rockchip,gpio-bank";
567 reg = <0x20084000 0x100>;
568 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
569 clocks = <&cru PCLK_GPIO2>;
570 gpio-controller;
571 #gpio-cells = <2>;
572 interrupt-controller;
573 #interrupt-cells = <2>;
574 };
575
Johan Jonker1f288232022-09-09 22:19:24 +0200576 gpio3: gpio@20088000 {
Kever Yange43e7392017-11-28 16:04:15 +0800577 compatible = "rockchip,gpio-bank";
578 reg = <0x20088000 0x100>;
579 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
580 clocks = <&cru PCLK_GPIO3>;
581 gpio-controller;
582 #gpio-cells = <2>;
583 interrupt-controller;
584 #interrupt-cells = <2>;
585 };
586
587 pcfg_pull_up: pcfg-pull-up {
588 bias-pull-up;
589 };
590
591 pcfg_pull_down: pcfg-pull-down {
592 bias-pull-down;
593 };
594
595 pcfg_pull_none: pcfg-pull-none {
596 bias-disable;
597 };
598
599 emmc {
600 /*
601 * We run eMMC at max speed; bump up drive strength.
602 * We also have external pulls, so disable the internal ones.
603 */
604
605 emmc_clk: emmc-clk {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200606 rockchip,pins = <2 RK_PA7 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800607 };
608
609 emmc_cmd: emmc-cmd {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200610 rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800611 };
612
613 emmc_pwren: emmc-pwren {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200614 rockchip,pins = <2 RK_PA5 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800615 };
616
617 emmc_bus8: emmc-bus8 {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200618 rockchip,pins = <1 RK_PD0 2 &pcfg_pull_none>,
619 <1 RK_PD1 2 &pcfg_pull_none>,
620 <1 RK_PD2 2 &pcfg_pull_none>,
621 <1 RK_PD3 2 &pcfg_pull_none>,
622 <1 RK_PD4 2 &pcfg_pull_none>,
623 <1 RK_PD5 2 &pcfg_pull_none>,
624 <1 RK_PD6 2 &pcfg_pull_none>,
625 <1 RK_PD7 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800626 };
627 };
628
629 nandc{
630 nandc_ale:nandc-ale {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200631 rockchip,pins = <0 RK_PC2 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800632 };
633
634 nandc_cle:nandc-cle {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200635 rockchip,pins = <0 RK_PC2 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800636 };
637
638 nandc_wrn:nandc-wrn {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200639 rockchip,pins = <0 RK_PC2 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800640 };
641
642 nandc_rdn:nandc-rdn {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200643 rockchip,pins = <0 RK_PC2 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800644 };
645
646 nandc_rdy:nandc-rdy {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200647 rockchip,pins = <0 RK_PC2 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800648 };
649
650 nandc_cs0:nandc-cs0 {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200651 rockchip,pins = <0 RK_PC2 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800652 };
653
654 nandc_data: nandc-data {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200655 rockchip,pins = <0 RK_PC2 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800656 };
657 };
658
659 uart0 {
660 uart0_xfer: uart0-xfer {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200661 rockchip,pins = <0 RK_PC0 1 &pcfg_pull_none>,
662 <0 RK_PC1 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800663 };
664
665 uart0_cts: uart0-cts {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200666 rockchip,pins = <0 RK_PC2 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800667 };
668
669 uart0_rts: uart0-rts {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200670 rockchip,pins = <0 RK_PC3 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800671 };
672 };
673
674 uart1 {
675 uart1_xfer: uart1-xfer {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200676 rockchip,pins = <2 RK_PC6 1 &pcfg_pull_none>,
677 <2 RK_PC7 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800678 };
679 };
680
681 uart2 {
682 uart2_xfer: uart2-xfer {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200683 rockchip,pins = <1 RK_PC2 2 &pcfg_pull_none>,
684 <1 RK_PC3 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800685 };
686 };
687
688 sdmmc {
689 sdmmc_clk: sdmmc-clk {
690 rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none>;
691 };
692
693 sdmmc_cmd: sdmmc-cmd {
694 rockchip,pins = <1 RK_PC1 1 &pcfg_pull_up>;
695 };
696
697 sdmmc_wp: sdmmc-wp {
698 rockchip,pins = <1 RK_PA7 1 &pcfg_pull_up>;
699 };
700
701 sdmmc_pwren: sdmmc-pwren {
702 rockchip,pins = <1 RK_PB6 1 &pcfg_pull_up>;
703 };
704
705 sdmmc_bus4: sdmmc-bus4 {
706 rockchip,pins = <1 RK_PC2 1 &pcfg_pull_up>,
707 <1 RK_PC3 1 &pcfg_pull_up>,
708 <1 RK_PC4 1 &pcfg_pull_up>,
709 <1 RK_PC5 1 &pcfg_pull_up>;
710 };
711 };
712
713 pwm0 {
714 pwm0_pin: pwm0-pin {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200715 rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800716 };
717 };
718
719 pwm1 {
720 pwm1_pin: pwm1-pin {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200721 rockchip,pins = <0 RK_PA1 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800722 };
723 };
724
725 pwm2 {
726 pwm2_pin: pwm2-pin {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200727 rockchip,pins = <0 RK_PA1 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800728 };
729 };
730
731 pwm3 {
732 pwm3_pin: pwm3-pin {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200733 rockchip,pins = <0 RK_PD3 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800734 };
735 };
736
737 i2c0 {
738 i2c0_xfer: i2c0-xfer {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200739 rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>,
740 <0 RK_PA1 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800741 };
742 };
743
744 i2c1 {
745 i2c1_xfer: i2c1-xfer {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200746 rockchip,pins = <0 RK_PA2 1 &pcfg_pull_none>,
747 <0 RK_PA3 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800748 };
749 };
750
751 i2c2 {
752 i2c2_xfer: i2c2-xfer {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200753 rockchip,pins = <2 RK_PC4 3 &pcfg_pull_none>,
754 <2 RK_PC5 3 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800755 };
756 };
757
758 i2c3 {
759 i2c3_xfer: i2c3-xfer {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200760 rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>,
761 <0 RK_PA7 1 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800762 };
763 };
764
765 spi0 {
766 spi0_txd_mux0:spi0-txd-mux0 {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200767 rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800768 };
769
770 spi0_rxd_mux0:spi0-rxd-mux0 {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200771 rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800772 };
773
774 spi0_clk_mux0:spi0-clk-mux0 {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200775 rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800776 };
777
778 spi0_cs0_mux0:spi0-cs0-mux0 {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200779 rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800780 };
781
782 spi0_cs1_mux0:spi0-cs1-mux0 {
Johan Jonkerb89d6a02022-09-09 22:18:55 +0200783 rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
Kever Yange43e7392017-11-28 16:04:15 +0800784 };
785 };
786
787 };
788};