blob: 12566a033f4eb2faf13fbd22a52a85d34efb19e7 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Simon Glass344c8372015-08-30 16:55:20 -06002
3#include <dt-bindings/gpio/gpio.h>
4#include <dt-bindings/interrupt-controller/irq.h>
5#include <dt-bindings/interrupt-controller/arm-gic.h>
6#include <dt-bindings/pinctrl/rockchip.h>
7#include <dt-bindings/clock/rk3288-cru.h>
Johan Jonker44431112022-04-15 23:21:37 +02008#include <dt-bindings/power/rk3288-power.h>
Simon Glass344c8372015-08-30 16:55:20 -06009#include <dt-bindings/thermal/thermal.h>
Jacob Chencfd97942016-03-14 11:20:17 +080010#include <dt-bindings/video/rk3288.h>
Simon Glass344c8372015-08-30 16:55:20 -060011#include "skeleton.dtsi"
12
13/ {
14 compatible = "rockchip,rk3288";
15
16 interrupt-parent = <&gic>;
17 aliases {
18 i2c0 = &i2c0;
19 i2c1 = &i2c1;
20 i2c2 = &i2c2;
21 i2c3 = &i2c3;
22 i2c4 = &i2c4;
23 i2c5 = &i2c5;
Simon Glass344c8372015-08-30 16:55:20 -060024 mshc0 = &emmc;
25 mshc1 = &sdmmc;
26 mshc2 = &sdio0;
27 mshc3 = &sdio1;
28 serial0 = &uart0;
29 serial1 = &uart1;
30 serial2 = &uart2;
31 serial3 = &uart3;
32 serial4 = &uart4;
33 spi0 = &spi0;
34 spi1 = &spi1;
35 spi2 = &spi2;
36 };
37
38 cpus {
39 #address-cells = <1>;
40 #size-cells = <0>;
41 enable-method = "rockchip,rk3066-smp";
42 rockchip,pmu = <&pmu>;
43
44 cpu0: cpu@500 {
45 device_type = "cpu";
46 compatible = "arm,cortex-a12";
47 reg = <0x500>;
48 operating-points = <
49 /* KHz uV */
50 1800000 1400000
51 1704000 1350000
52 1608000 1300000
53 1512000 1250000
54 1416000 1200000
55 1200000 1100000
56 1008000 1050000
57 816000 1000000
58 696000 950000
59 600000 900000
60 408000 900000
61 216000 900000
62 126000 900000
63 >;
64 #cooling-cells = <2>; /* min followed by max */
65 clock-latency = <40000>;
66 clocks = <&cru ARMCLK>;
67 resets = <&cru SRST_CORE0>;
68 };
69 cpu@501 {
70 device_type = "cpu";
71 compatible = "arm,cortex-a12";
72 reg = <0x501>;
73 resets = <&cru SRST_CORE1>;
74 };
75 cpu@502 {
76 device_type = "cpu";
77 compatible = "arm,cortex-a12";
78 reg = <0x502>;
79 resets = <&cru SRST_CORE2>;
80 };
81 cpu@503 {
82 device_type = "cpu";
83 compatible = "arm,cortex-a12";
84 reg = <0x503>;
85 resets = <&cru SRST_CORE3>;
86 };
87 };
88
89 amba {
90 compatible = "arm,amba-bus";
91 #address-cells = <1>;
92 #size-cells = <1>;
93 ranges;
94
95 dmac_peri: dma-controller@ff250000 {
96 compatible = "arm,pl330", "arm,primecell";
97 broken-no-flushp;
98 reg = <0xff250000 0x4000>;
99 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
100 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
101 #dma-cells = <1>;
102 clocks = <&cru ACLK_DMAC2>;
103 clock-names = "apb_pclk";
104 };
105
106 dmac_bus_ns: dma-controller@ff600000 {
107 compatible = "arm,pl330", "arm,primecell";
108 broken-no-flushp;
109 reg = <0xff600000 0x4000>;
110 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
111 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
112 #dma-cells = <1>;
113 clocks = <&cru ACLK_DMAC1>;
114 clock-names = "apb_pclk";
115 status = "disabled";
116 };
117
118 dmac_bus_s: dma-controller@ffb20000 {
119 compatible = "arm,pl330", "arm,primecell";
120 broken-no-flushp;
121 reg = <0xffb20000 0x4000>;
122 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
123 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
124 #dma-cells = <1>;
125 clocks = <&cru ACLK_DMAC1>;
126 clock-names = "apb_pclk";
127 };
128 };
129
130 xin24m: oscillator {
131 compatible = "fixed-clock";
132 clock-frequency = <24000000>;
133 clock-output-names = "xin24m";
134 #clock-cells = <0>;
135 };
136
137 timer {
138 arm,use-physical-timer;
139 compatible = "arm,armv7-timer";
140 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
141 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
142 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
143 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
144 clock-frequency = <24000000>;
145 always-on;
146 };
147
148 display-subsystem {
149 compatible = "rockchip,display-subsystem";
150 ports = <&vopl_out>, <&vopb_out>;
151 };
152
153 sdmmc: dwmmc@ff0c0000 {
154 compatible = "rockchip,rk3288-dw-mshc";
Kever Yang16e358a2017-06-14 16:31:44 +0800155 max-frequency = <150000000>;
Simon Glass344c8372015-08-30 16:55:20 -0600156 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
157 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
158 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
159 fifo-depth = <0x100>;
160 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
161 reg = <0xff0c0000 0x4000>;
162 status = "disabled";
163 };
164
165 sdio0: dwmmc@ff0d0000 {
166 compatible = "rockchip,rk3288-dw-mshc";
Kever Yang16e358a2017-06-14 16:31:44 +0800167 max-frequency = <150000000>;
Simon Glass344c8372015-08-30 16:55:20 -0600168 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
169 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
170 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
171 fifo-depth = <0x100>;
172 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
173 reg = <0xff0d0000 0x4000>;
174 status = "disabled";
175 };
176
177 sdio1: dwmmc@ff0e0000 {
178 compatible = "rockchip,rk3288-dw-mshc";
Kever Yang16e358a2017-06-14 16:31:44 +0800179 max-frequency = <150000000>;
Simon Glass344c8372015-08-30 16:55:20 -0600180 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
181 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
182 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
183 fifo-depth = <0x100>;
184 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
185 reg = <0xff0e0000 0x4000>;
186 status = "disabled";
187 };
188
189 emmc: dwmmc@ff0f0000 {
190 compatible = "rockchip,rk3288-dw-mshc";
Kever Yang16e358a2017-06-14 16:31:44 +0800191 max-frequency = <150000000>;
Simon Glass344c8372015-08-30 16:55:20 -0600192 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
193 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
194 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
195 fifo-depth = <0x100>;
196 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
197 reg = <0xff0f0000 0x4000>;
198 status = "disabled";
199 };
200
201 saradc: saradc@ff100000 {
202 compatible = "rockchip,saradc";
203 reg = <0xff100000 0x100>;
204 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
205 #io-channel-cells = <1>;
206 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
207 clock-names = "saradc", "apb_pclk";
208 status = "disabled";
209 };
210
211 spi0: spi@ff110000 {
212 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
213 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
214 clock-names = "spiclk", "apb_pclk";
215 dmas = <&dmac_peri 11>, <&dmac_peri 12>;
216 dma-names = "tx", "rx";
217 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
218 pinctrl-names = "default";
219 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
220 reg = <0xff110000 0x1000>;
221 #address-cells = <1>;
222 #size-cells = <0>;
223 status = "disabled";
224 };
225
226 spi1: spi@ff120000 {
227 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
228 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
229 clock-names = "spiclk", "apb_pclk";
230 dmas = <&dmac_peri 13>, <&dmac_peri 14>;
231 dma-names = "tx", "rx";
232 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
233 pinctrl-names = "default";
234 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
235 reg = <0xff120000 0x1000>;
236 #address-cells = <1>;
237 #size-cells = <0>;
238 status = "disabled";
239 };
240
241 spi2: spi@ff130000 {
242 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
243 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
244 clock-names = "spiclk", "apb_pclk";
245 dmas = <&dmac_peri 15>, <&dmac_peri 16>;
246 dma-names = "tx", "rx";
247 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
248 pinctrl-names = "default";
249 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
250 reg = <0xff130000 0x1000>;
251 #address-cells = <1>;
252 #size-cells = <0>;
253 status = "disabled";
254 };
255
256 i2c1: i2c@ff140000 {
257 compatible = "rockchip,rk3288-i2c";
258 reg = <0xff140000 0x1000>;
259 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
260 #address-cells = <1>;
261 #size-cells = <0>;
262 clock-names = "i2c";
263 clocks = <&cru PCLK_I2C1>;
264 pinctrl-names = "default";
265 pinctrl-0 = <&i2c1_xfer>;
266 status = "disabled";
267 };
268
269 i2c3: i2c@ff150000 {
270 compatible = "rockchip,rk3288-i2c";
271 reg = <0xff150000 0x1000>;
272 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
273 #address-cells = <1>;
274 #size-cells = <0>;
275 clock-names = "i2c";
276 clocks = <&cru PCLK_I2C3>;
277 pinctrl-names = "default";
278 pinctrl-0 = <&i2c3_xfer>;
279 status = "disabled";
280 };
281
282 i2c4: i2c@ff160000 {
283 compatible = "rockchip,rk3288-i2c";
284 reg = <0xff160000 0x1000>;
285 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
286 #address-cells = <1>;
287 #size-cells = <0>;
288 clock-names = "i2c";
289 clocks = <&cru PCLK_I2C4>;
290 pinctrl-names = "default";
291 pinctrl-0 = <&i2c4_xfer>;
292 status = "disabled";
293 };
294
295 i2c5: i2c@ff170000 {
296 compatible = "rockchip,rk3288-i2c";
297 reg = <0xff170000 0x1000>;
298 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
299 #address-cells = <1>;
300 #size-cells = <0>;
301 clock-names = "i2c";
302 clocks = <&cru PCLK_I2C5>;
303 pinctrl-names = "default";
304 pinctrl-0 = <&i2c5_xfer>;
305 status = "disabled";
306 };
307 uart0: serial@ff180000 {
308 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
309 reg = <0xff180000 0x100>;
310 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
311 reg-shift = <2>;
312 reg-io-width = <4>;
313 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
314 clock-names = "baudclk", "apb_pclk";
315 pinctrl-names = "default";
316 pinctrl-0 = <&uart0_xfer>;
317 status = "disabled";
318 };
319
320 uart1: serial@ff190000 {
321 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
322 reg = <0xff190000 0x100>;
323 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
324 reg-shift = <2>;
325 reg-io-width = <4>;
326 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
327 clock-names = "baudclk", "apb_pclk";
328 pinctrl-names = "default";
329 pinctrl-0 = <&uart1_xfer>;
330 status = "disabled";
331 };
332
333 uart2: serial@ff690000 {
334 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
335 reg = <0xff690000 0x100>;
336 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
337 reg-shift = <2>;
338 reg-io-width = <4>;
339 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
340 clock-names = "baudclk", "apb_pclk";
341 pinctrl-names = "default";
342 pinctrl-0 = <&uart2_xfer>;
343 status = "disabled";
344 };
345 uart3: serial@ff1b0000 {
346 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
347 reg = <0xff1b0000 0x100>;
348 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
349 reg-shift = <2>;
350 reg-io-width = <4>;
351 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
352 clock-names = "baudclk", "apb_pclk";
353 pinctrl-names = "default";
354 pinctrl-0 = <&uart3_xfer>;
355 status = "disabled";
356 };
357
358 uart4: serial@ff1c0000 {
359 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
360 reg = <0xff1c0000 0x100>;
361 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
362 reg-shift = <2>;
363 reg-io-width = <4>;
364 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
365 clock-names = "baudclk", "apb_pclk";
366 pinctrl-names = "default";
367 pinctrl-0 = <&uart4_xfer>;
368 status = "disabled";
369 };
370 thermal: thermal-zones {
371 #include "rk3288-thermal.dtsi"
372 };
373
374 tsadc: tsadc@ff280000 {
375 compatible = "rockchip,rk3288-tsadc";
376 reg = <0xff280000 0x100>;
377 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
378 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
379 clock-names = "tsadc", "apb_pclk";
380 resets = <&cru SRST_TSADC>;
381 reset-names = "tsadc-apb";
382 pinctrl-names = "otp_out";
383 pinctrl-0 = <&otp_out>;
384 #thermal-sensor-cells = <1>;
385 hw-shut-temp = <125000>;
386 status = "disabled";
387 };
388
389 gmac: ethernet@ff290000 {
390 compatible = "rockchip,rk3288-gmac";
391 reg = <0xff290000 0x10000>;
392 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
393 interrupt-names = "macirq";
394 rockchip,grf = <&grf>;
395 clocks = <&cru SCLK_MAC>,
396 <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
397 <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
398 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
399 clock-names = "stmmaceth",
400 "mac_clk_rx", "mac_clk_tx",
401 "clk_mac_ref", "clk_mac_refout",
402 "aclk_mac", "pclk_mac";
403 };
404
405 usb_host0_ehci: usb@ff500000 {
406 compatible = "generic-ehci";
407 reg = <0xff500000 0x100>;
408 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
409 clocks = <&cru HCLK_USBHOST0>;
410 clock-names = "usbhost";
411 phys = <&usbphy1>;
412 phy-names = "usb";
413 status = "disabled";
414 };
415
Jagan Teki4b0446d2020-07-21 20:54:37 +0530416 /* NOTE: doesn't work on RK3288, but fixed on RK3288W */
417 usb_host0_ohci: usb@ff520000 {
418 compatible = "generic-ohci";
419 reg = <0x0 0xff520000 0x0 0x100>;
420 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
421 clocks = <&cru HCLK_USBHOST0>;
422 phys = <&usbphy1>;
423 phy-names = "usb";
424 status = "disabled";
425 };
Simon Glass344c8372015-08-30 16:55:20 -0600426
427 usb_host1: usb@ff540000 {
428 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
429 "snps,dwc2";
430 reg = <0xff540000 0x40000>;
431 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
432 clocks = <&cru HCLK_USBHOST1>;
433 clock-names = "otg";
434 phys = <&usbphy2>;
435 phy-names = "usb2-phy";
436 status = "disabled";
437 };
438
439 usb_otg: usb@ff580000 {
440 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
441 "snps,dwc2";
442 reg = <0xff580000 0x40000>;
443 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
444 clocks = <&cru HCLK_OTG0>;
445 clock-names = "otg";
Xu Ziyuan266c8fa2016-07-15 00:26:59 +0800446 dr_mode = "otg";
Simon Glass344c8372015-08-30 16:55:20 -0600447 phys = <&usbphy0>;
448 phy-names = "usb2-phy";
449 status = "disabled";
450 };
451
452 usb_hsic: usb@ff5c0000 {
453 compatible = "generic-ehci";
454 reg = <0xff5c0000 0x100>;
455 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
456 clocks = <&cru HCLK_HSIC>;
457 clock-names = "usbhost";
458 status = "disabled";
459 };
460
Simon Glass344c8372015-08-30 16:55:20 -0600461 i2c0: i2c@ff650000 {
462 compatible = "rockchip,rk3288-i2c";
463 reg = <0xff650000 0x1000>;
464 interrupts = <GIC_SPI 60 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 status = "disabled";
472 };
473
474 i2c2: i2c@ff660000 {
475 compatible = "rockchip,rk3288-i2c";
476 reg = <0xff660000 0x1000>;
477 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
478 #address-cells = <1>;
479 #size-cells = <0>;
480 clock-names = "i2c";
481 clocks = <&cru PCLK_I2C2>;
482 pinctrl-names = "default";
483 pinctrl-0 = <&i2c2_xfer>;
484 status = "disabled";
485 };
486
487 pwm0: pwm@ff680000 {
488 compatible = "rockchip,rk3288-pwm";
489 reg = <0xff680000 0x10>;
490 #pwm-cells = <3>;
491 pinctrl-names = "default";
492 pinctrl-0 = <&pwm0_pin>;
493 clocks = <&cru PCLK_PWM>;
494 clock-names = "pwm";
495 rockchip,grf = <&grf>;
496 status = "disabled";
497 };
498
499 pwm1: pwm@ff680010 {
500 compatible = "rockchip,rk3288-pwm";
501 reg = <0xff680010 0x10>;
502 #pwm-cells = <3>;
503 pinctrl-names = "default";
504 pinctrl-0 = <&pwm1_pin>;
505 clocks = <&cru PCLK_PWM>;
506 clock-names = "pwm";
507 rockchip,grf = <&grf>;
508 status = "disabled";
509 };
510
511 pwm2: pwm@ff680020 {
512 compatible = "rockchip,rk3288-pwm";
513 reg = <0xff680020 0x10>;
514 #pwm-cells = <3>;
515 pinctrl-names = "default";
516 pinctrl-0 = <&pwm2_pin>;
517 clocks = <&cru PCLK_PWM>;
518 clock-names = "pwm";
519 rockchip,grf = <&grf>;
520 status = "disabled";
521 };
522
523 pwm3: pwm@ff680030 {
524 compatible = "rockchip,rk3288-pwm";
525 reg = <0xff680030 0x10>;
526 #pwm-cells = <2>;
527 pinctrl-names = "default";
528 pinctrl-0 = <&pwm3_pin>;
529 clocks = <&cru PCLK_PWM>;
530 clock-names = "pwm";
531 rockchip,grf = <&grf>;
532 status = "disabled";
533 };
534
Johan Jonker52a0c682022-04-15 23:21:39 +0200535 bus_intmem: bus_intmem@ff700000 {
Simon Glass344c8372015-08-30 16:55:20 -0600536 compatible = "mmio-sram";
537 reg = <0xff700000 0x18000>;
538 #address-cells = <1>;
539 #size-cells = <1>;
540 ranges = <0 0xff700000 0x18000>;
541 smp-sram@0 {
542 compatible = "rockchip,rk3066-smp-sram";
543 reg = <0x00 0x10>;
544 };
Simon Glass344c8372015-08-30 16:55:20 -0600545 };
546
547 sram@ff720000 {
548 compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
549 reg = <0xff720000 0x1000>;
550 };
551
552 pmu: power-management@ff730000 {
553 compatible = "rockchip,rk3288-pmu", "syscon";
554 reg = <0xff730000 0x100>;
555 };
556
557 sgrf: syscon@ff740000 {
558 compatible = "rockchip,rk3288-sgrf", "syscon";
559 reg = <0xff740000 0x1000>;
560 };
561
562 cru: clock-controller@ff760000 {
563 compatible = "rockchip,rk3288-cru";
564 reg = <0xff760000 0x1000>;
565 rockchip,grf = <&grf>;
566 #clock-cells = <1>;
567 #reset-cells = <1>;
David Wuc513e9e2018-01-13 14:06:16 +0800568 assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
Simon Glass344c8372015-08-30 16:55:20 -0600569 <&cru PLL_NPLL>, <&cru ACLK_CPU>,
570 <&cru HCLK_CPU>, <&cru PCLK_CPU>,
571 <&cru ACLK_PERI>, <&cru HCLK_PERI>,
572 <&cru PCLK_PERI>;
David Wuc513e9e2018-01-13 14:06:16 +0800573 assigned-clock-rates = <594000000>, <400000000>,
Simon Glass344c8372015-08-30 16:55:20 -0600574 <500000000>, <300000000>,
575 <150000000>, <75000000>,
576 <300000000>, <150000000>,
577 <75000000>;
Simon Glass344c8372015-08-30 16:55:20 -0600578 };
579
580 grf: syscon@ff770000 {
581 compatible = "rockchip,rk3288-grf", "syscon";
582 reg = <0xff770000 0x1000>;
583 };
584
585 wdt: watchdog@ff800000 {
586 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
587 reg = <0xff800000 0x100>;
588 clocks = <&cru PCLK_WDT>;
589 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
590 status = "disabled";
591 };
592
Simon Glass6406f452016-01-21 19:45:21 -0700593 spdif: sound@ff88b0000 {
594 compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
595 reg = <0xff8b0000 0x10000>;
596 #sound-dai-cells = <0>;
597 clock-names = "hclk", "mclk";
598 clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
599 dmas = <&dmac_bus_s 3>;
600 dma-names = "tx";
601 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
602 pinctrl-names = "default";
603 pinctrl-0 = <&spdif_tx>;
604 rockchip,grf = <&grf>;
605 status = "disabled";
606 };
607
Simon Glass344c8372015-08-30 16:55:20 -0600608 i2s: i2s@ff890000 {
609 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
610 reg = <0xff890000 0x10000>;
611 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
612 #address-cells = <1>;
613 #size-cells = <0>;
Simon Glass2d0c01b2018-12-27 20:15:23 -0700614 #sound-dai-cells = <1>;
Simon Glass344c8372015-08-30 16:55:20 -0600615 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
616 dma-names = "tx", "rx";
617 clock-names = "i2s_hclk", "i2s_clk";
618 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
619 pinctrl-names = "default";
620 pinctrl-0 = <&i2s0_bus>;
621 status = "disabled";
622 };
623
624 vopb: vop@ff930000 {
625 compatible = "rockchip,rk3288-vop";
626 reg = <0xff930000 0x19c>;
627 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
628 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
629 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
630 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
631 reset-names = "axi", "ahb", "dclk";
632 iommus = <&vopb_mmu>;
633 power-domains = <&power RK3288_PD_VIO>;
634 status = "disabled";
635 vopb_out: port {
636 #address-cells = <1>;
637 #size-cells = <0>;
638 vopb_out_edp: endpoint@0 {
639 reg = <0>;
640 remote-endpoint = <&edp_in_vopb>;
641 };
642 vopb_out_hdmi: endpoint@1 {
643 reg = <1>;
644 remote-endpoint = <&hdmi_in_vopb>;
645 };
Jacob Chencfd97942016-03-14 11:20:17 +0800646 vopb_out_lvds: endpoint@2 {
647 reg = <2>;
648 remote-endpoint = <&lvds_in_vopb>;
649 };
Eric Gao2085de52017-05-02 18:32:45 +0800650 vopb_out_mipi: endpoint@3 {
651 reg = <3>;
652 remote-endpoint = <&mipi_in_vopb>;
653 };
654
Simon Glass344c8372015-08-30 16:55:20 -0600655 };
656 };
657
658 vopb_mmu: iommu@ff930300 {
659 compatible = "rockchip,iommu";
660 reg = <0xff930300 0x100>;
661 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
662 interrupt-names = "vopb_mmu";
663 power-domains = <&power RK3288_PD_VIO>;
664 #iommu-cells = <0>;
665 status = "disabled";
666 };
667
668 vopl: vop@ff940000 {
669 compatible = "rockchip,rk3288-vop";
670 reg = <0xff940000 0x19c>;
671 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
672 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
673 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
674 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
675 reset-names = "axi", "ahb", "dclk";
676 iommus = <&vopl_mmu>;
677 power-domains = <&power RK3288_PD_VIO>;
678 status = "disabled";
679 vopl_out: port {
680 #address-cells = <1>;
681 #size-cells = <0>;
682 vopl_out_edp: endpoint@0 {
683 reg = <0>;
684 remote-endpoint = <&edp_in_vopl>;
685 };
686 vopl_out_hdmi: endpoint@1 {
687 reg = <1>;
688 remote-endpoint = <&hdmi_in_vopl>;
689 };
Jacob Chencfd97942016-03-14 11:20:17 +0800690 vopl_out_lvds: endpoint@2 {
691 reg = <2>;
692 remote-endpoint = <&lvds_in_vopl>;
693 };
Eric Gao2085de52017-05-02 18:32:45 +0800694 vopl_out_mipi: endpoint@3 {
695 reg = <3>;
696 remote-endpoint = <&mipi_in_vopl>;
697 };
698
Simon Glass344c8372015-08-30 16:55:20 -0600699 };
700 };
701
702 vopl_mmu: iommu@ff940300 {
703 compatible = "rockchip,iommu";
704 reg = <0xff940300 0x100>;
705 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
706 interrupt-names = "vopl_mmu";
707 power-domains = <&power RK3288_PD_VIO>;
708 #iommu-cells = <0>;
709 status = "disabled";
710 };
711
Johan Jonkere0bf0102022-05-02 12:19:34 +0200712 mipi_dsi: mipi@ff960000 {
713 compatible = "rockchip,rk3288_mipi_dsi";
714 reg = <0xff960000 0x4000>;
715 clocks = <&cru PCLK_MIPI_DSI0>;
716 clock-names = "pclk_mipi";
717 /*pinctrl-names = "default";
718 pinctrl-0 = <&lcdc0_ctl>;*/
719 rockchip,grf = <&grf>;
720 #address-cells = <1>;
721 #size-cells = <0>;
722 status = "disabled";
723 ports {
724 reg = <1>;
725 mipi_in: port {
726 #address-cells = <1>;
727 #size-cells = <0>;
728 mipi_in_vopb: endpoint@0 {
729 reg = <0>;
730 remote-endpoint = <&vopb_out_mipi>;
731 };
732 mipi_in_vopl: endpoint@1 {
733 reg = <1>;
734 remote-endpoint = <&vopl_out_mipi>;
735 };
736 };
737 };
738 };
739
740 lvds: lvds@ff96c000 {
741 compatible = "rockchip,rk3288-lvds";
742 reg = <0xff96c000 0x4000>;
743 clocks = <&cru PCLK_LVDS_PHY>;
744 clock-names = "pclk_lvds";
745 pinctrl-names = "default";
746 pinctrl-0 = <&lcdc0_ctl>;
747 rockchip,grf = <&grf>;
748 status = "disabled";
749 ports {
750 #address-cells = <1>;
751 #size-cells = <0>;
752 lvds_in: port@0 {
753 reg = <0>;
754 #address-cells = <1>;
755 #size-cells = <0>;
756 lvds_in_vopb: endpoint@0 {
757 reg = <0>;
758 remote-endpoint = <&vopb_out_lvds>;
759 };
760 lvds_in_vopl: endpoint@1 {
761 reg = <1>;
762 remote-endpoint = <&vopl_out_lvds>;
763 };
764 };
765 };
766 };
767
768 edp: dp@ff970000 {
Simon Glass344c8372015-08-30 16:55:20 -0600769 compatible = "rockchip,rk3288-edp";
770 reg = <0xff970000 0x4000>;
771 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
772 clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>;
773 rockchip,grf = <&grf>;
774 clock-names = "clk_edp", "clk_edp_24m", "pclk_edp";
775 resets = <&cru 111>;
776 reset-names = "edp";
777 power-domains = <&power RK3288_PD_VIO>;
778 status = "disabled";
779 ports {
780 edp_in: port {
781 #address-cells = <1>;
782 #size-cells = <0>;
783 edp_in_vopb: endpoint@0 {
784 reg = <0>;
785 remote-endpoint = <&vopb_out_edp>;
786 };
787 edp_in_vopl: endpoint@1 {
788 reg = <1>;
789 remote-endpoint = <&vopl_out_edp>;
790 };
791 };
792 };
793 };
794
795 hdmi: hdmi@ff980000 {
796 compatible = "rockchip,rk3288-dw-hdmi";
797 reg = <0xff980000 0x20000>;
798 reg-io-width = <4>;
799 ddc-i2c-bus = <&i2c5>;
800 rockchip,grf = <&grf>;
801 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
802 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
803 clock-names = "iahb", "isfr";
804 status = "disabled";
805 ports {
806 hdmi_in: port {
807 #address-cells = <1>;
808 #size-cells = <0>;
809 hdmi_in_vopb: endpoint@0 {
810 reg = <0>;
811 remote-endpoint = <&vopb_out_hdmi>;
812 };
813 hdmi_in_vopl: endpoint@1 {
814 reg = <1>;
815 remote-endpoint = <&vopl_out_hdmi>;
816 };
817 };
818 };
819 };
820
821 hdmi_audio: hdmi_audio {
822 compatible = "rockchip,rk3288-hdmi-audio";
823 i2s-controller = <&i2s>;
824 status = "disable";
825 };
826
827 vpu: video-codec@ff9a0000 {
828 compatible = "rockchip,rk3288-vpu";
829 reg = <0xff9a0000 0x800>;
830 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
831 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
832 interrupt-names = "vepu", "vdpu";
833 clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
834 clock-names = "aclk_vcodec", "hclk_vcodec";
835 power-domains = <&power RK3288_PD_VIDEO>;
836 iommus = <&vpu_mmu>;
837 };
838
839 vpu_mmu: iommu@ff9a0800 {
840 compatible = "rockchip,iommu";
841 reg = <0xff9a0800 0x100>;
842 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
843 interrupt-names = "vpu_mmu";
844 power-domains = <&power RK3288_PD_VIDEO>;
845 #iommu-cells = <0>;
846 };
847
848 gpu: gpu@ffa30000 {
849 compatible = "arm,malit764",
850 "arm,malit76x",
851 "arm,malit7xx",
852 "arm,mali-midgard";
853 reg = <0xffa30000 0x10000>;
854 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
855 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
856 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
857 interrupt-names = "JOB", "MMU", "GPU";
858 clocks = <&cru ACLK_GPU>;
859 clock-names = "aclk_gpu";
860 operating-points = <
861 /* KHz uV */
862 100000 950000
863 200000 950000
864 300000 1000000
865 400000 1100000
866 /* 500000 1200000 - See crosbug.com/p/33857 */
867 600000 1250000
868 >;
869 power-domains = <&power RK3288_PD_GPU>;
870 status = "disabled";
871 };
872
Simon Glass344c8372015-08-30 16:55:20 -0600873 efuse: efuse@ffb40000 {
874 compatible = "rockchip,rk3288-efuse";
875 reg = <0xffb40000 0x10000>;
876 status = "disabled";
877 };
878
879 gic: interrupt-controller@ffc01000 {
880 compatible = "arm,gic-400";
881 interrupt-controller;
882 #interrupt-cells = <3>;
883 #address-cells = <0>;
884
885 reg = <0xffc01000 0x1000>,
886 <0xffc02000 0x1000>,
887 <0xffc04000 0x2000>,
888 <0xffc06000 0x2000>;
889 interrupts = <GIC_PPI 9 0xf04>;
890 };
891
892 cpuidle: cpuidle {
893 compatible = "rockchip,rk3288-cpuidle";
894 };
895
896 usbphy: phy {
897 compatible = "rockchip,rk3288-usb-phy";
898 rockchip,grf = <&grf>;
899 #address-cells = <1>;
900 #size-cells = <0>;
901 status = "disabled";
902
903 usbphy0: usb-phy0 {
904 #phy-cells = <0>;
905 reg = <0x320>;
906 clocks = <&cru SCLK_OTGPHY0>;
907 clock-names = "phyclk";
908 };
909
910 usbphy1: usb-phy1 {
911 #phy-cells = <0>;
912 reg = <0x334>;
913 clocks = <&cru SCLK_OTGPHY1>;
914 clock-names = "phyclk";
915 };
916
917 usbphy2: usb-phy2 {
918 #phy-cells = <0>;
919 reg = <0x348>;
920 clocks = <&cru SCLK_OTGPHY2>;
921 clock-names = "phyclk";
922 };
923 };
924
925 pinctrl: pinctrl {
926 compatible = "rockchip,rk3288-pinctrl";
927 rockchip,grf = <&grf>;
928 rockchip,pmu = <&pmu>;
929 #address-cells = <1>;
930 #size-cells = <1>;
931 ranges;
932
933 gpio0: gpio0@ff750000 {
934 compatible = "rockchip,gpio-bank";
935 reg = <0xff750000 0x100>;
936 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
937 clocks = <&cru PCLK_GPIO0>;
938
939 gpio-controller;
940 #gpio-cells = <2>;
941
942 interrupt-controller;
943 #interrupt-cells = <2>;
944 };
945
946 gpio1: gpio1@ff780000 {
947 compatible = "rockchip,gpio-bank";
948 reg = <0xff780000 0x100>;
949 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
950 clocks = <&cru PCLK_GPIO1>;
951
952 gpio-controller;
953 #gpio-cells = <2>;
954
955 interrupt-controller;
956 #interrupt-cells = <2>;
957 };
958
959 gpio2: gpio2@ff790000 {
960 compatible = "rockchip,gpio-bank";
961 reg = <0xff790000 0x100>;
962 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
963 clocks = <&cru PCLK_GPIO2>;
964
965 gpio-controller;
966 #gpio-cells = <2>;
967
968 interrupt-controller;
969 #interrupt-cells = <2>;
970 };
971
972 gpio3: gpio3@ff7a0000 {
973 compatible = "rockchip,gpio-bank";
974 reg = <0xff7a0000 0x100>;
975 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
976 clocks = <&cru PCLK_GPIO3>;
977
978 gpio-controller;
979 #gpio-cells = <2>;
980
981 interrupt-controller;
982 #interrupt-cells = <2>;
983 };
984
985 gpio4: gpio4@ff7b0000 {
986 compatible = "rockchip,gpio-bank";
987 reg = <0xff7b0000 0x100>;
988 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
989 clocks = <&cru PCLK_GPIO4>;
990
991 gpio-controller;
992 #gpio-cells = <2>;
993
994 interrupt-controller;
995 #interrupt-cells = <2>;
996 };
997
998 gpio5: gpio5@ff7c0000 {
999 compatible = "rockchip,gpio-bank";
1000 reg = <0xff7c0000 0x100>;
1001 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1002 clocks = <&cru PCLK_GPIO5>;
1003
1004 gpio-controller;
1005 #gpio-cells = <2>;
1006
1007 interrupt-controller;
1008 #interrupt-cells = <2>;
1009 };
1010
1011 gpio6: gpio6@ff7d0000 {
1012 compatible = "rockchip,gpio-bank";
1013 reg = <0xff7d0000 0x100>;
1014 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1015 clocks = <&cru PCLK_GPIO6>;
1016
1017 gpio-controller;
1018 #gpio-cells = <2>;
1019
1020 interrupt-controller;
1021 #interrupt-cells = <2>;
1022 };
1023
1024 gpio7: gpio7@ff7e0000 {
1025 compatible = "rockchip,gpio-bank";
1026 reg = <0xff7e0000 0x100>;
1027 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1028 clocks = <&cru PCLK_GPIO7>;
1029
1030 gpio-controller;
1031 #gpio-cells = <2>;
1032
1033 interrupt-controller;
1034 #interrupt-cells = <2>;
1035 };
1036
1037 gpio8: gpio8@ff7f0000 {
1038 compatible = "rockchip,gpio-bank";
1039 reg = <0xff7f0000 0x100>;
1040 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1041 clocks = <&cru PCLK_GPIO8>;
1042
1043 gpio-controller;
1044 #gpio-cells = <2>;
1045
1046 interrupt-controller;
1047 #interrupt-cells = <2>;
1048 };
1049
Suniel Maheshe70d8262020-07-21 20:54:36 +05301050 hdmi {
1051 hdmi_cec_c0: hdmi-cec-c0 {
1052 rockchip,pins = <7 RK_PC0 2 &pcfg_pull_none>;
1053 };
1054 };
1055
Simon Glass344c8372015-08-30 16:55:20 -06001056 pcfg_pull_up: pcfg-pull-up {
1057 bias-pull-up;
1058 };
1059
1060 pcfg_pull_down: pcfg-pull-down {
1061 bias-pull-down;
1062 };
1063
1064 pcfg_pull_none: pcfg-pull-none {
1065 bias-disable;
1066 };
1067
1068 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1069 bias-disable;
1070 drive-strength = <12>;
1071 };
1072
1073 sleep {
1074 global_pwroff: global-pwroff {
Johan Jonker17044742022-05-02 10:58:27 +02001075 rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001076 };
1077
1078 ddrio_pwroff: ddrio-pwroff {
Johan Jonker17044742022-05-02 10:58:27 +02001079 rockchip,pins = <0 RK_PA1 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001080 };
1081
1082 ddr0_retention: ddr0-retention {
Johan Jonker17044742022-05-02 10:58:27 +02001083 rockchip,pins = <0 RK_PA2 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001084 };
1085
1086 ddr1_retention: ddr1-retention {
Johan Jonker17044742022-05-02 10:58:27 +02001087 rockchip,pins = <0 RK_PA3 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001088 };
1089 };
1090
1091 i2c0 {
1092 i2c0_xfer: i2c0-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001093 rockchip,pins = <0 RK_PB7 1 &pcfg_pull_none>,
1094 <0 RK_PC0 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001095 };
1096 };
1097
1098 i2c1 {
1099 i2c1_xfer: i2c1-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001100 rockchip,pins = <8 RK_PA4 1 &pcfg_pull_none>,
1101 <8 RK_PA5 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001102 };
1103 };
1104
1105 i2c2 {
1106 i2c2_xfer: i2c2-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001107 rockchip,pins = <6 RK_PB1 1 &pcfg_pull_none>,
1108 <6 RK_PB2 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001109 };
1110 };
1111
1112 i2c3 {
1113 i2c3_xfer: i2c3-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001114 rockchip,pins = <2 RK_PC0 1 &pcfg_pull_none>,
1115 <2 RK_PC1 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001116 };
1117 };
1118
1119 i2c4 {
1120 i2c4_xfer: i2c4-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001121 rockchip,pins = <7 RK_PC1 1 &pcfg_pull_none>,
1122 <7 RK_PC2 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001123 };
1124 };
1125
1126 i2c5 {
1127 i2c5_xfer: i2c5-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001128 rockchip,pins = <7 RK_PC3 1 &pcfg_pull_none>,
1129 <7 RK_PC4 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001130 };
1131 };
1132
1133 i2s0 {
1134 i2s0_bus: i2s0-bus {
Johan Jonker17044742022-05-02 10:58:27 +02001135 rockchip,pins = <6 RK_PA0 1 &pcfg_pull_none>,
1136 <6 RK_PA1 1 &pcfg_pull_none>,
1137 <6 RK_PA2 1 &pcfg_pull_none>,
1138 <6 RK_PA3 1 &pcfg_pull_none>,
1139 <6 RK_PA4 1 &pcfg_pull_none>,
1140 <6 RK_PB0 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001141 };
1142 };
1143
Jacob Chencfd97942016-03-14 11:20:17 +08001144 lcdc0 {
1145 lcdc0_ctl: lcdc0-ctl {
Johan Jonker17044742022-05-02 10:58:27 +02001146 rockchip,pins = <1 RK_PD0 1 &pcfg_pull_none>,
1147 <1 RK_PD1 1 &pcfg_pull_none>,
1148 <1 RK_PD2 1 &pcfg_pull_none>,
1149 <1 RK_PD3 1 &pcfg_pull_none>;
Jacob Chencfd97942016-03-14 11:20:17 +08001150 };
1151 };
1152
Simon Glass344c8372015-08-30 16:55:20 -06001153 sdmmc {
1154 sdmmc_clk: sdmmc-clk {
Johan Jonker17044742022-05-02 10:58:27 +02001155 rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001156 };
1157
1158 sdmmc_cmd: sdmmc-cmd {
Johan Jonker17044742022-05-02 10:58:27 +02001159 rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001160 };
1161
1162 sdmmc_cd: sdmcc-cd {
Johan Jonker17044742022-05-02 10:58:27 +02001163 rockchip,pins = <6 RK_PC6 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001164 };
1165
1166 sdmmc_bus1: sdmmc-bus1 {
Johan Jonker17044742022-05-02 10:58:27 +02001167 rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001168 };
1169
1170 sdmmc_bus4: sdmmc-bus4 {
Johan Jonker17044742022-05-02 10:58:27 +02001171 rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up>,
1172 <6 RK_PC1 1 &pcfg_pull_up>,
1173 <6 RK_PC2 1 &pcfg_pull_up>,
1174 <6 RK_PC3 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001175 };
1176 };
1177
1178 sdio0 {
1179 sdio0_bus1: sdio0-bus1 {
Johan Jonker17044742022-05-02 10:58:27 +02001180 rockchip,pins = <4 RK_PC4 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001181 };
1182
1183 sdio0_bus4: sdio0-bus4 {
Johan Jonker17044742022-05-02 10:58:27 +02001184 rockchip,pins = <4 RK_PC4 1 &pcfg_pull_up>,
1185 <4 RK_PC5 1 &pcfg_pull_up>,
1186 <4 RK_PC6 1 &pcfg_pull_up>,
1187 <4 RK_PC7 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001188 };
1189
1190 sdio0_cmd: sdio0-cmd {
Johan Jonker17044742022-05-02 10:58:27 +02001191 rockchip,pins = <4 RK_PD0 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001192 };
1193
1194 sdio0_clk: sdio0-clk {
Johan Jonker17044742022-05-02 10:58:27 +02001195 rockchip,pins = <4 RK_PD1 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001196 };
1197
1198 sdio0_cd: sdio0-cd {
Johan Jonker17044742022-05-02 10:58:27 +02001199 rockchip,pins = <4 RK_PD2 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001200 };
1201
1202 sdio0_wp: sdio0-wp {
Johan Jonker17044742022-05-02 10:58:27 +02001203 rockchip,pins = <4 RK_PD3 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001204 };
1205
1206 sdio0_pwr: sdio0-pwr {
Johan Jonker17044742022-05-02 10:58:27 +02001207 rockchip,pins = <4 RK_PD4 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001208 };
1209
1210 sdio0_bkpwr: sdio0-bkpwr {
Johan Jonker17044742022-05-02 10:58:27 +02001211 rockchip,pins = <4 RK_PD5 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001212 };
1213
1214 sdio0_int: sdio0-int {
Johan Jonker17044742022-05-02 10:58:27 +02001215 rockchip,pins = <4 RK_PD6 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001216 };
1217 };
1218
1219 sdio1 {
1220 sdio1_bus1: sdio1-bus1 {
Johan Jonker17044742022-05-02 10:58:27 +02001221 rockchip,pins = <3 RK_PD0 4 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001222 };
1223
1224 sdio1_bus4: sdio1-bus4 {
Johan Jonker17044742022-05-02 10:58:27 +02001225 rockchip,pins = <3 RK_PD0 4 &pcfg_pull_up>,
1226 <3 RK_PD1 4 &pcfg_pull_up>,
1227 <3 RK_PD2 4 &pcfg_pull_up>,
1228 <3 RK_PD3 4 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001229 };
1230
1231 sdio1_cd: sdio1-cd {
Johan Jonker17044742022-05-02 10:58:27 +02001232 rockchip,pins = <3 RK_PD4 4 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001233 };
1234
1235 sdio1_wp: sdio1-wp {
Johan Jonker17044742022-05-02 10:58:27 +02001236 rockchip,pins = <3 RK_PD5 4 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001237 };
1238
1239 sdio1_bkpwr: sdio1-bkpwr {
Johan Jonker17044742022-05-02 10:58:27 +02001240 rockchip,pins = <3 RK_PD6 4 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001241 };
1242
1243 sdio1_int: sdio1-int {
Johan Jonker17044742022-05-02 10:58:27 +02001244 rockchip,pins = <3 RK_PD7 4 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001245 };
1246
1247 sdio1_cmd: sdio1-cmd {
Johan Jonker17044742022-05-02 10:58:27 +02001248 rockchip,pins = <4 RK_PA6 4 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001249 };
1250
1251 sdio1_clk: sdio1-clk {
Johan Jonker17044742022-05-02 10:58:27 +02001252 rockchip,pins = <4 RK_PA7 4 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001253 };
1254
1255 sdio1_pwr: sdio1-pwr {
Johan Jonker17044742022-05-02 10:58:27 +02001256 rockchip,pins = <4 RK_PB1 4 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001257 };
1258 };
1259
1260 emmc {
1261 emmc_clk: emmc-clk {
Johan Jonker17044742022-05-02 10:58:27 +02001262 rockchip,pins = <3 RK_PC2 2 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001263 };
1264
1265 emmc_cmd: emmc-cmd {
Johan Jonker17044742022-05-02 10:58:27 +02001266 rockchip,pins = <3 RK_PC0 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001267 };
1268
1269 emmc_pwr: emmc-pwr {
Johan Jonker17044742022-05-02 10:58:27 +02001270 rockchip,pins = <3 RK_PB1 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001271 };
1272
1273 emmc_bus1: emmc-bus1 {
Johan Jonker17044742022-05-02 10:58:27 +02001274 rockchip,pins = <3 RK_PA0 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001275 };
1276
1277 emmc_bus4: emmc-bus4 {
Johan Jonker17044742022-05-02 10:58:27 +02001278 rockchip,pins = <3 RK_PA0 2 &pcfg_pull_up>,
1279 <3 RK_PA1 2 &pcfg_pull_up>,
1280 <3 RK_PA2 2 &pcfg_pull_up>,
1281 <3 RK_PA3 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001282 };
1283
1284 emmc_bus8: emmc-bus8 {
Johan Jonker17044742022-05-02 10:58:27 +02001285 rockchip,pins = <3 RK_PA0 2 &pcfg_pull_up>,
1286 <3 RK_PA1 2 &pcfg_pull_up>,
1287 <3 RK_PA2 2 &pcfg_pull_up>,
1288 <3 RK_PA3 2 &pcfg_pull_up>,
1289 <3 RK_PA4 2 &pcfg_pull_up>,
1290 <3 RK_PA5 2 &pcfg_pull_up>,
1291 <3 RK_PA6 2 &pcfg_pull_up>,
1292 <3 RK_PA7 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001293 };
1294 };
1295
1296 spi0 {
1297 spi0_clk: spi0-clk {
Johan Jonker17044742022-05-02 10:58:27 +02001298 rockchip,pins = <5 RK_PB4 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001299 };
1300 spi0_cs0: spi0-cs0 {
Johan Jonker17044742022-05-02 10:58:27 +02001301 rockchip,pins = <5 RK_PB5 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001302 };
1303 spi0_tx: spi0-tx {
Johan Jonker17044742022-05-02 10:58:27 +02001304 rockchip,pins = <5 RK_PB6 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001305 };
1306 spi0_rx: spi0-rx {
Johan Jonker17044742022-05-02 10:58:27 +02001307 rockchip,pins = <5 RK_PB7 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001308 };
1309 spi0_cs1: spi0-cs1 {
Johan Jonker17044742022-05-02 10:58:27 +02001310 rockchip,pins = <5 RK_PC0 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001311 };
1312 };
1313 spi1 {
1314 spi1_clk: spi1-clk {
Johan Jonker17044742022-05-02 10:58:27 +02001315 rockchip,pins = <7 RK_PB4 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001316 };
1317 spi1_cs0: spi1-cs0 {
Johan Jonker17044742022-05-02 10:58:27 +02001318 rockchip,pins = <7 RK_PB5 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001319 };
1320 spi1_rx: spi1-rx {
Johan Jonker17044742022-05-02 10:58:27 +02001321 rockchip,pins = <7 RK_PB6 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001322 };
1323 spi1_tx: spi1-tx {
Johan Jonker17044742022-05-02 10:58:27 +02001324 rockchip,pins = <7 RK_PB7 2 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001325 };
1326 };
1327
1328 spi2 {
1329 spi2_cs1: spi2-cs1 {
Johan Jonker17044742022-05-02 10:58:27 +02001330 rockchip,pins = <8 RK_PA3 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001331 };
1332 spi2_clk: spi2-clk {
Johan Jonker17044742022-05-02 10:58:27 +02001333 rockchip,pins = <8 RK_PA6 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001334 };
1335 spi2_cs0: spi2-cs0 {
Johan Jonker17044742022-05-02 10:58:27 +02001336 rockchip,pins = <8 RK_PA7 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001337 };
1338 spi2_rx: spi2-rx {
Johan Jonker17044742022-05-02 10:58:27 +02001339 rockchip,pins = <8 RK_PB0 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001340 };
1341 spi2_tx: spi2-tx {
Johan Jonker17044742022-05-02 10:58:27 +02001342 rockchip,pins = <8 RK_PB1 1 &pcfg_pull_up>;
Simon Glass344c8372015-08-30 16:55:20 -06001343 };
1344 };
1345
1346 uart0 {
1347 uart0_xfer: uart0-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001348 rockchip,pins = <4 RK_PC0 1 &pcfg_pull_up>,
1349 <4 RK_PC1 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001350 };
1351
1352 uart0_cts: uart0-cts {
Johan Jonker17044742022-05-02 10:58:27 +02001353 rockchip,pins = <4 RK_PC2 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001354 };
1355
1356 uart0_rts: uart0-rts {
Johan Jonker17044742022-05-02 10:58:27 +02001357 rockchip,pins = <4 RK_PC3 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001358 };
1359 };
1360
1361 uart1 {
1362 uart1_xfer: uart1-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001363 rockchip,pins = <5 RK_PB0 1 &pcfg_pull_up>,
1364 <5 RK_PB1 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001365 };
1366
1367 uart1_cts: uart1-cts {
Johan Jonker17044742022-05-02 10:58:27 +02001368 rockchip,pins = <5 RK_PB2 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001369 };
1370
1371 uart1_rts: uart1-rts {
Johan Jonker17044742022-05-02 10:58:27 +02001372 rockchip,pins = <5 RK_PB3 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001373 };
1374 };
1375
1376 uart2 {
1377 uart2_xfer: uart2-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001378 rockchip,pins = <7 RK_PC6 1 &pcfg_pull_up>,
1379 <7 RK_PC7 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001380 };
1381 /* no rts / cts for uart2 */
1382 };
1383
1384 uart3 {
1385 uart3_xfer: uart3-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001386 rockchip,pins = <7 RK_PA7 1 &pcfg_pull_up>,
1387 <7 RK_PB0 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001388 };
1389
1390 uart3_cts: uart3-cts {
Johan Jonker17044742022-05-02 10:58:27 +02001391 rockchip,pins = <7 RK_PB1 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001392 };
1393
1394 uart3_rts: uart3-rts {
Johan Jonker17044742022-05-02 10:58:27 +02001395 rockchip,pins = <7 RK_PB2 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001396 };
1397 };
1398
1399 uart4 {
1400 uart4_xfer: uart4-xfer {
Johan Jonker17044742022-05-02 10:58:27 +02001401 rockchip,pins = <5 RK_PB4 3 &pcfg_pull_up>,
1402 <5 RK_PB5 3 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001403 };
1404
1405 uart4_cts: uart4-cts {
Johan Jonker17044742022-05-02 10:58:27 +02001406 rockchip,pins = <5 RK_PB6 3 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001407 };
1408
1409 uart4_rts: uart4-rts {
Johan Jonker17044742022-05-02 10:58:27 +02001410 rockchip,pins = <5 RK_PB7 3 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001411 };
1412 };
1413
1414 tsadc {
1415 otp_out: otp-out {
Johan Jonker17044742022-05-02 10:58:27 +02001416 rockchip,pins = <0 RK_PB2 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001417 };
1418 };
1419
1420 pwm0 {
1421 pwm0_pin: pwm0-pin {
Johan Jonker17044742022-05-02 10:58:27 +02001422 rockchip,pins = <7 RK_PA0 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001423 };
1424 };
1425
1426 pwm1 {
1427 pwm1_pin: pwm1-pin {
Johan Jonker17044742022-05-02 10:58:27 +02001428 rockchip,pins = <7 RK_PA1 1 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001429 };
1430 };
1431
1432 pwm2 {
1433 pwm2_pin: pwm2-pin {
Johan Jonker17044742022-05-02 10:58:27 +02001434 rockchip,pins = <7 RK_PC6 3 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001435 };
1436 };
1437
1438 pwm3 {
1439 pwm3_pin: pwm3-pin {
Johan Jonker17044742022-05-02 10:58:27 +02001440 rockchip,pins = <7 RK_PC7 3 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001441 };
1442 };
1443
1444 gmac {
1445 rgmii_pins: rgmii-pins {
Johan Jonker17044742022-05-02 10:58:27 +02001446 rockchip,pins = <3 RK_PD6 3 &pcfg_pull_none>,
1447 <3 RK_PD7 3 &pcfg_pull_none>,
1448 <3 RK_PD2 3 &pcfg_pull_none>,
1449 <3 RK_PD3 3 &pcfg_pull_none>,
1450 <3 RK_PD4 3 &pcfg_pull_none_12ma>,
1451 <3 RK_PD5 3 &pcfg_pull_none_12ma>,
1452 <3 RK_PD0 3 &pcfg_pull_none_12ma>,
1453 <3 RK_PD1 3 &pcfg_pull_none_12ma>,
1454 <4 RK_PA0 3 &pcfg_pull_none>,
1455 <4 RK_PA5 3 &pcfg_pull_none>,
1456 <4 RK_PA6 3 &pcfg_pull_none>,
1457 <4 RK_PB1 3 &pcfg_pull_none_12ma>,
1458 <4 RK_PA4 3 &pcfg_pull_none_12ma>,
1459 <4 RK_PA1 3 &pcfg_pull_none>,
1460 <4 RK_PA3 3 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001461 };
1462
1463 rmii_pins: rmii-pins {
Johan Jonker17044742022-05-02 10:58:27 +02001464 rockchip,pins = <3 RK_PD6 3 &pcfg_pull_none>,
1465 <3 RK_PD7 3 &pcfg_pull_none>,
1466 <3 RK_PD4 3 &pcfg_pull_none>,
1467 <3 RK_PD5 3 &pcfg_pull_none>,
1468 <4 RK_PA0 3 &pcfg_pull_none>,
1469 <4 RK_PA5 3 &pcfg_pull_none>,
1470 <4 RK_PA4 3 &pcfg_pull_none>,
1471 <4 RK_PA1 3 &pcfg_pull_none>,
1472 <4 RK_PA2 3 &pcfg_pull_none>,
1473 <4 RK_PA3 3 &pcfg_pull_none>;
Simon Glass344c8372015-08-30 16:55:20 -06001474 };
1475 };
Simon Glass6406f452016-01-21 19:45:21 -07001476
1477 spdif {
1478 spdif_tx: spdif-tx {
Johan Jonker17044742022-05-02 10:58:27 +02001479 rockchip,pins = <6 RK_PB3 1 &pcfg_pull_none>;
Simon Glass6406f452016-01-21 19:45:21 -07001480 };
1481 };
Simon Glass344c8372015-08-30 16:55:20 -06001482 };
1483
1484 power: power-controller {
1485 compatible = "rockchip,rk3288-power-controller";
1486 #power-domain-cells = <1>;
1487 rockchip,pmu = <&pmu>;
1488 #address-cells = <1>;
1489 #size-cells = <0>;
1490
1491 pd_gpu {
1492 reg = <RK3288_PD_GPU>;
1493 clocks = <&cru ACLK_GPU>;
1494 };
1495
1496 pd_hevc {
1497 reg = <RK3288_PD_HEVC>;
1498 clocks = <&cru ACLK_HEVC>,
1499 <&cru SCLK_HEVC_CABAC>,
1500 <&cru SCLK_HEVC_CORE>,
1501 <&cru HCLK_HEVC>;
1502 };
1503
1504 pd_vio {
1505 reg = <RK3288_PD_VIO>;
1506 clocks = <&cru ACLK_IEP>,
1507 <&cru ACLK_ISP>,
1508 <&cru ACLK_RGA>,
1509 <&cru ACLK_VIP>,
1510 <&cru ACLK_VOP0>,
1511 <&cru ACLK_VOP1>,
1512 <&cru DCLK_VOP0>,
1513 <&cru DCLK_VOP1>,
1514 <&cru HCLK_IEP>,
1515 <&cru HCLK_ISP>,
1516 <&cru HCLK_RGA>,
1517 <&cru HCLK_VIP>,
1518 <&cru HCLK_VOP0>,
1519 <&cru HCLK_VOP1>,
1520 <&cru PCLK_EDP_CTRL>,
1521 <&cru PCLK_HDMI_CTRL>,
1522 <&cru PCLK_LVDS_PHY>,
1523 <&cru PCLK_MIPI_CSI>,
1524 <&cru PCLK_MIPI_DSI0>,
1525 <&cru PCLK_MIPI_DSI1>,
1526 <&cru SCLK_EDP_24M>,
1527 <&cru SCLK_EDP>,
1528 <&cru SCLK_HDMI_CEC>,
1529 <&cru SCLK_HDMI_HDCP>,
1530 <&cru SCLK_ISP_JPE>,
1531 <&cru SCLK_ISP>,
1532 <&cru SCLK_RGA>;
1533 };
1534
1535 pd_video {
1536 reg = <RK3288_PD_VIDEO>;
1537 clocks = <&cru ACLK_VCODEC>,
1538 <&cru HCLK_VCODEC>;
1539 };
1540 };
1541};