blob: 4c64fbefb483420c755cfa293064d2a9f8db9fd6 [file] [log] [blame]
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
Andreas Färber9e3ad682017-05-15 17:51:18 +08002/*
3 * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
Andreas Färber9e3ad682017-05-15 17:51:18 +08004 */
5
6#include <dt-bindings/clock/rk3368-cru.h>
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/pinctrl/rockchip.h>
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +010011#include <dt-bindings/soc/rockchip,boot-mode.h>
Andreas Färber9e3ad682017-05-15 17:51:18 +080012#include <dt-bindings/thermal/thermal.h>
13
14/ {
15 compatible = "rockchip,rk3368";
16 interrupt-parent = <&gic>;
17 #address-cells = <2>;
18 #size-cells = <2>;
19
20 aliases {
21 ethernet0 = &gmac;
22 i2c0 = &i2c0;
23 i2c1 = &i2c1;
24 i2c2 = &i2c2;
25 i2c3 = &i2c3;
26 i2c4 = &i2c4;
27 i2c5 = &i2c5;
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 = <0x2>;
40 #size-cells = <0x0>;
41
42 cpu-map {
43 cluster0 {
44 core0 {
45 cpu = <&cpu_b0>;
46 };
47 core1 {
48 cpu = <&cpu_b1>;
49 };
50 core2 {
51 cpu = <&cpu_b2>;
52 };
53 core3 {
54 cpu = <&cpu_b3>;
55 };
56 };
57
58 cluster1 {
59 core0 {
60 cpu = <&cpu_l0>;
61 };
62 core1 {
63 cpu = <&cpu_l1>;
64 };
65 core2 {
66 cpu = <&cpu_l2>;
67 };
68 core3 {
69 cpu = <&cpu_l3>;
70 };
71 };
72 };
73
Andreas Färber9e3ad682017-05-15 17:51:18 +080074 cpu_l0: cpu@0 {
75 device_type = "cpu";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +010076 compatible = "arm,cortex-a53";
Andreas Färber9e3ad682017-05-15 17:51:18 +080077 reg = <0x0 0x0>;
Andreas Färber9e3ad682017-05-15 17:51:18 +080078 enable-method = "psci";
Andreas Färber9e3ad682017-05-15 17:51:18 +080079 #cooling-cells = <2>; /* min followed by max */
80 };
81
82 cpu_l1: cpu@1 {
83 device_type = "cpu";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +010084 compatible = "arm,cortex-a53";
Andreas Färber9e3ad682017-05-15 17:51:18 +080085 reg = <0x0 0x1>;
Andreas Färber9e3ad682017-05-15 17:51:18 +080086 enable-method = "psci";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +010087 #cooling-cells = <2>; /* min followed by max */
Andreas Färber9e3ad682017-05-15 17:51:18 +080088 };
89
90 cpu_l2: cpu@2 {
91 device_type = "cpu";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +010092 compatible = "arm,cortex-a53";
Andreas Färber9e3ad682017-05-15 17:51:18 +080093 reg = <0x0 0x2>;
Andreas Färber9e3ad682017-05-15 17:51:18 +080094 enable-method = "psci";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +010095 #cooling-cells = <2>; /* min followed by max */
Andreas Färber9e3ad682017-05-15 17:51:18 +080096 };
97
98 cpu_l3: cpu@3 {
99 device_type = "cpu";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100100 compatible = "arm,cortex-a53";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800101 reg = <0x0 0x3>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800102 enable-method = "psci";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100103 #cooling-cells = <2>; /* min followed by max */
Andreas Färber9e3ad682017-05-15 17:51:18 +0800104 };
105
106 cpu_b0: cpu@100 {
107 device_type = "cpu";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100108 compatible = "arm,cortex-a53";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800109 reg = <0x0 0x100>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800110 enable-method = "psci";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800111 #cooling-cells = <2>; /* min followed by max */
112 };
113
114 cpu_b1: cpu@101 {
115 device_type = "cpu";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100116 compatible = "arm,cortex-a53";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800117 reg = <0x0 0x101>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800118 enable-method = "psci";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100119 #cooling-cells = <2>; /* min followed by max */
Andreas Färber9e3ad682017-05-15 17:51:18 +0800120 };
121
122 cpu_b2: cpu@102 {
123 device_type = "cpu";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100124 compatible = "arm,cortex-a53";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800125 reg = <0x0 0x102>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800126 enable-method = "psci";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100127 #cooling-cells = <2>; /* min followed by max */
Andreas Färber9e3ad682017-05-15 17:51:18 +0800128 };
129
130 cpu_b3: cpu@103 {
131 device_type = "cpu";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100132 compatible = "arm,cortex-a53";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800133 reg = <0x0 0x103>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800134 enable-method = "psci";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100135 #cooling-cells = <2>; /* min followed by max */
136 };
137 };
138
Andreas Färber9e3ad682017-05-15 17:51:18 +0800139 arm-pmu {
140 compatible = "arm,armv8-pmuv3";
141 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
142 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
143 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
144 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
145 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
146 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
147 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
148 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
149 interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>,
150 <&cpu_l3>, <&cpu_b0>, <&cpu_b1>,
151 <&cpu_b2>, <&cpu_b3>;
152 };
153
154 psci {
155 compatible = "arm,psci-0.2";
156 method = "smc";
157 };
158
159 timer {
160 compatible = "arm,armv8-timer";
161 interrupts = <GIC_PPI 13
162 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
163 <GIC_PPI 14
164 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
165 <GIC_PPI 11
166 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
167 <GIC_PPI 10
168 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
169 };
170
171 xin24m: oscillator {
172 compatible = "fixed-clock";
173 clock-frequency = <24000000>;
174 clock-output-names = "xin24m";
175 #clock-cells = <0>;
176 };
177
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100178 sdmmc: mmc@ff0c0000 {
Andreas Färber9e3ad682017-05-15 17:51:18 +0800179 compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
180 reg = <0x0 0xff0c0000 0x0 0x4000>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100181 max-frequency = <150000000>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800182 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
183 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
184 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
185 fifo-depth = <0x100>;
186 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100187 resets = <&cru SRST_MMC0>;
188 reset-names = "reset";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800189 status = "disabled";
190 };
191
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100192 sdio0: mmc@ff0d0000 {
Andreas Färber9e3ad682017-05-15 17:51:18 +0800193 compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
194 reg = <0x0 0xff0d0000 0x0 0x4000>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100195 max-frequency = <150000000>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800196 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
197 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100198 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800199 fifo-depth = <0x100>;
200 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100201 resets = <&cru SRST_SDIO0>;
202 reset-names = "reset";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800203 status = "disabled";
204 };
205
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100206 emmc: mmc@ff0f0000 {
Andreas Färber9e3ad682017-05-15 17:51:18 +0800207 compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
208 reg = <0x0 0xff0f0000 0x0 0x4000>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100209 max-frequency = <150000000>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800210 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
211 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
212 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
213 fifo-depth = <0x100>;
214 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100215 resets = <&cru SRST_EMMC>;
216 reset-names = "reset";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800217 status = "disabled";
218 };
219
220 saradc: saradc@ff100000 {
221 compatible = "rockchip,saradc";
222 reg = <0x0 0xff100000 0x0 0x100>;
223 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
224 #io-channel-cells = <1>;
225 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
226 clock-names = "saradc", "apb_pclk";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100227 resets = <&cru SRST_SARADC>;
228 reset-names = "saradc-apb";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800229 status = "disabled";
230 };
231
232 spi0: spi@ff110000 {
233 compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
234 reg = <0x0 0xff110000 0x0 0x1000>;
235 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
236 clock-names = "spiclk", "apb_pclk";
237 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
238 pinctrl-names = "default";
239 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
240 #address-cells = <1>;
241 #size-cells = <0>;
242 status = "disabled";
243 };
244
245 spi1: spi@ff120000 {
246 compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
247 reg = <0x0 0xff120000 0x0 0x1000>;
248 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
249 clock-names = "spiclk", "apb_pclk";
250 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
251 pinctrl-names = "default";
252 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
253 #address-cells = <1>;
254 #size-cells = <0>;
255 status = "disabled";
256 };
257
258 spi2: spi@ff130000 {
259 compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
260 reg = <0x0 0xff130000 0x0 0x1000>;
261 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
262 clock-names = "spiclk", "apb_pclk";
263 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
264 pinctrl-names = "default";
265 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
266 #address-cells = <1>;
267 #size-cells = <0>;
268 status = "disabled";
269 };
270
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100271 i2c2: i2c@ff140000 {
Andreas Färber9e3ad682017-05-15 17:51:18 +0800272 compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
273 reg = <0x0 0xff140000 0x0 0x1000>;
274 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
275 #address-cells = <1>;
276 #size-cells = <0>;
277 clock-names = "i2c";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100278 clocks = <&cru PCLK_I2C2>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800279 pinctrl-names = "default";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100280 pinctrl-0 = <&i2c2_xfer>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800281 status = "disabled";
282 };
283
284 i2c3: i2c@ff150000 {
285 compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
286 reg = <0x0 0xff150000 0x0 0x1000>;
287 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
288 #address-cells = <1>;
289 #size-cells = <0>;
290 clock-names = "i2c";
291 clocks = <&cru PCLK_I2C3>;
292 pinctrl-names = "default";
293 pinctrl-0 = <&i2c3_xfer>;
294 status = "disabled";
295 };
296
297 i2c4: i2c@ff160000 {
298 compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
299 reg = <0x0 0xff160000 0x0 0x1000>;
300 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
301 #address-cells = <1>;
302 #size-cells = <0>;
303 clock-names = "i2c";
304 clocks = <&cru PCLK_I2C4>;
305 pinctrl-names = "default";
306 pinctrl-0 = <&i2c4_xfer>;
307 status = "disabled";
308 };
309
310 i2c5: i2c@ff170000 {
311 compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
312 reg = <0x0 0xff170000 0x0 0x1000>;
313 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
314 #address-cells = <1>;
315 #size-cells = <0>;
316 clock-names = "i2c";
317 clocks = <&cru PCLK_I2C5>;
318 pinctrl-names = "default";
319 pinctrl-0 = <&i2c5_xfer>;
320 status = "disabled";
321 };
322
323 uart0: serial@ff180000 {
324 compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
325 reg = <0x0 0xff180000 0x0 0x100>;
326 clock-frequency = <24000000>;
327 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
328 clock-names = "baudclk", "apb_pclk";
329 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
330 reg-shift = <2>;
331 reg-io-width = <4>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800332 status = "disabled";
333 };
334
335 uart1: serial@ff190000 {
336 compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
337 reg = <0x0 0xff190000 0x0 0x100>;
338 clock-frequency = <24000000>;
339 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
340 clock-names = "baudclk", "apb_pclk";
341 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
342 reg-shift = <2>;
343 reg-io-width = <4>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800344 status = "disabled";
345 };
346
347 uart3: serial@ff1b0000 {
348 compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
349 reg = <0x0 0xff1b0000 0x0 0x100>;
350 clock-frequency = <24000000>;
351 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
352 clock-names = "baudclk", "apb_pclk";
353 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
354 reg-shift = <2>;
355 reg-io-width = <4>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800356 status = "disabled";
357 };
358
359 uart4: serial@ff1c0000 {
360 compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
361 reg = <0x0 0xff1c0000 0x0 0x100>;
362 clock-frequency = <24000000>;
363 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
364 clock-names = "baudclk", "apb_pclk";
365 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
366 reg-shift = <2>;
367 reg-io-width = <4>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800368 status = "disabled";
369 };
370
Peter Robinson072a8cc2021-07-22 16:20:44 +0100371 dmac_peri: dma-controller@ff250000 {
372 compatible = "arm,pl330", "arm,primecell";
373 reg = <0x0 0xff250000 0x0 0x4000>;
374 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
375 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
376 #dma-cells = <1>;
377 arm,pl330-broken-no-flushp;
378 arm,pl330-periph-burst;
379 clocks = <&cru ACLK_DMAC_PERI>;
380 clock-names = "apb_pclk";
381 };
382
Andreas Färber9e3ad682017-05-15 17:51:18 +0800383 thermal-zones {
Peter Robinson072a8cc2021-07-22 16:20:44 +0100384 cpu_thermal: cpu-thermal {
Andreas Färber9e3ad682017-05-15 17:51:18 +0800385 polling-delay-passive = <100>; /* milliseconds */
386 polling-delay = <5000>; /* milliseconds */
387
388 thermal-sensors = <&tsadc 0>;
389
390 trips {
391 cpu_alert0: cpu_alert0 {
392 temperature = <75000>; /* millicelsius */
393 hysteresis = <2000>; /* millicelsius */
394 type = "passive";
395 };
396 cpu_alert1: cpu_alert1 {
397 temperature = <80000>; /* millicelsius */
398 hysteresis = <2000>; /* millicelsius */
399 type = "passive";
400 };
401 cpu_crit: cpu_crit {
402 temperature = <95000>; /* millicelsius */
403 hysteresis = <2000>; /* millicelsius */
404 type = "critical";
405 };
406 };
407
408 cooling-maps {
409 map0 {
410 trip = <&cpu_alert0>;
411 cooling-device =
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100412 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
413 <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
414 <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
415 <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800416 };
417 map1 {
418 trip = <&cpu_alert1>;
419 cooling-device =
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100420 <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
421 <&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
422 <&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
423 <&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800424 };
425 };
426 };
427
Peter Robinson072a8cc2021-07-22 16:20:44 +0100428 gpu_thermal: gpu-thermal {
Andreas Färber9e3ad682017-05-15 17:51:18 +0800429 polling-delay-passive = <100>; /* milliseconds */
430 polling-delay = <5000>; /* milliseconds */
431
432 thermal-sensors = <&tsadc 1>;
433
434 trips {
435 gpu_alert0: gpu_alert0 {
436 temperature = <80000>; /* millicelsius */
437 hysteresis = <2000>; /* millicelsius */
438 type = "passive";
439 };
440 gpu_crit: gpu_crit {
441 temperature = <115000>; /* millicelsius */
442 hysteresis = <2000>; /* millicelsius */
443 type = "critical";
444 };
445 };
446
447 cooling-maps {
448 map0 {
449 trip = <&gpu_alert0>;
450 cooling-device =
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100451 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
452 <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
453 <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
454 <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800455 };
456 };
457 };
458 };
459
460 tsadc: tsadc@ff280000 {
461 compatible = "rockchip,rk3368-tsadc";
462 reg = <0x0 0xff280000 0x0 0x100>;
463 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
464 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
465 clock-names = "tsadc", "apb_pclk";
466 resets = <&cru SRST_TSADC>;
467 reset-names = "tsadc-apb";
468 pinctrl-names = "init", "default", "sleep";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100469 pinctrl-0 = <&otp_pin>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800470 pinctrl-1 = <&otp_out>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100471 pinctrl-2 = <&otp_pin>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800472 #thermal-sensor-cells = <1>;
473 rockchip,hw-tshut-temp = <95000>;
474 status = "disabled";
475 };
476
477 gmac: ethernet@ff290000 {
478 compatible = "rockchip,rk3368-gmac";
479 reg = <0x0 0xff290000 0x0 0x10000>;
480 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
481 interrupt-names = "macirq";
482 rockchip,grf = <&grf>;
483 clocks = <&cru SCLK_MAC>,
484 <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
485 <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
486 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
487 clock-names = "stmmaceth",
488 "mac_clk_rx", "mac_clk_tx",
489 "clk_mac_ref", "clk_mac_refout",
490 "aclk_mac", "pclk_mac";
491 status = "disabled";
492 };
493
494 usb_host0_ehci: usb@ff500000 {
495 compatible = "generic-ehci";
496 reg = <0x0 0xff500000 0x0 0x100>;
497 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
498 clocks = <&cru HCLK_HOST0>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800499 status = "disabled";
500 };
501
502 usb_otg: usb@ff580000 {
503 compatible = "rockchip,rk3368-usb", "rockchip,rk3066-usb",
504 "snps,dwc2";
505 reg = <0x0 0xff580000 0x0 0x40000>;
506 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
507 clocks = <&cru HCLK_OTG0>;
508 clock-names = "otg";
509 dr_mode = "otg";
510 g-np-tx-fifo-size = <16>;
511 g-rx-fifo-size = <275>;
512 g-tx-fifo-size = <256 128 128 64 64 32>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800513 status = "disabled";
514 };
515
Peter Robinson072a8cc2021-07-22 16:20:44 +0100516 dmac_bus: dma-controller@ff600000 {
517 compatible = "arm,pl330", "arm,primecell";
518 reg = <0x0 0xff600000 0x0 0x4000>;
519 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
520 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
521 #dma-cells = <1>;
522 arm,pl330-broken-no-flushp;
523 arm,pl330-periph-burst;
524 clocks = <&cru ACLK_DMAC_BUS>;
525 clock-names = "apb_pclk";
526 };
527
Andreas Färber9e3ad682017-05-15 17:51:18 +0800528 i2c0: i2c@ff650000 {
529 compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
530 reg = <0x0 0xff650000 0x0 0x1000>;
531 clocks = <&cru PCLK_I2C0>;
532 clock-names = "i2c";
533 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
534 pinctrl-names = "default";
535 pinctrl-0 = <&i2c0_xfer>;
536 #address-cells = <1>;
537 #size-cells = <0>;
538 status = "disabled";
539 };
540
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100541 i2c1: i2c@ff660000 {
Andreas Färber9e3ad682017-05-15 17:51:18 +0800542 compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
543 reg = <0x0 0xff660000 0x0 0x1000>;
544 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
545 #address-cells = <1>;
546 #size-cells = <0>;
547 clock-names = "i2c";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100548 clocks = <&cru PCLK_I2C1>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800549 pinctrl-names = "default";
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100550 pinctrl-0 = <&i2c1_xfer>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800551 status = "disabled";
552 };
553
554 pwm0: pwm@ff680000 {
555 compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
556 reg = <0x0 0xff680000 0x0 0x10>;
557 #pwm-cells = <3>;
558 pinctrl-names = "default";
559 pinctrl-0 = <&pwm0_pin>;
560 clocks = <&cru PCLK_PWM1>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800561 status = "disabled";
562 };
563
564 pwm1: pwm@ff680010 {
565 compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
566 reg = <0x0 0xff680010 0x0 0x10>;
567 #pwm-cells = <3>;
568 pinctrl-names = "default";
569 pinctrl-0 = <&pwm1_pin>;
570 clocks = <&cru PCLK_PWM1>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800571 status = "disabled";
572 };
573
574 pwm2: pwm@ff680020 {
575 compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
576 reg = <0x0 0xff680020 0x0 0x10>;
577 #pwm-cells = <3>;
578 clocks = <&cru PCLK_PWM1>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800579 status = "disabled";
580 };
581
582 pwm3: pwm@ff680030 {
583 compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
584 reg = <0x0 0xff680030 0x0 0x10>;
585 #pwm-cells = <3>;
586 pinctrl-names = "default";
587 pinctrl-0 = <&pwm3_pin>;
588 clocks = <&cru PCLK_PWM1>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800589 status = "disabled";
590 };
591
592 uart2: serial@ff690000 {
593 compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
594 reg = <0x0 0xff690000 0x0 0x100>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800595 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
596 clock-names = "baudclk", "apb_pclk";
597 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
598 pinctrl-names = "default";
599 pinctrl-0 = <&uart2_xfer>;
600 reg-shift = <2>;
601 reg-io-width = <4>;
602 status = "disabled";
603 };
604
605 mbox: mbox@ff6b0000 {
606 compatible = "rockchip,rk3368-mailbox";
607 reg = <0x0 0xff6b0000 0x0 0x1000>;
608 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
609 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
610 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
611 <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
612 clocks = <&cru PCLK_MAILBOX>;
613 clock-names = "pclk_mailbox";
614 #mbox-cells = <1>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100615 status = "disabled";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800616 };
617
618 pmugrf: syscon@ff738000 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100619 compatible = "rockchip,rk3368-pmugrf", "syscon", "simple-mfd";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800620 reg = <0x0 0xff738000 0x0 0x1000>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800621
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100622 pmu_io_domains: io-domains {
623 compatible = "rockchip,rk3368-pmu-io-voltage-domain";
624 status = "disabled";
625 };
626
627 reboot-mode {
628 compatible = "syscon-reboot-mode";
629 offset = <0x200>;
630 mode-normal = <BOOT_NORMAL>;
631 mode-recovery = <BOOT_RECOVERY>;
632 mode-bootloader = <BOOT_FASTBOOT>;
633 mode-loader = <BOOT_BL_DOWNLOAD>;
634 };
Philipp Tomsich990c1a62017-07-28 11:37:33 +0200635 };
636
Andreas Färber9e3ad682017-05-15 17:51:18 +0800637 cru: clock-controller@ff760000 {
638 compatible = "rockchip,rk3368-cru";
639 reg = <0x0 0xff760000 0x0 0x1000>;
640 rockchip,grf = <&grf>;
641 #clock-cells = <1>;
642 #reset-cells = <1>;
643 };
644
645 grf: syscon@ff770000 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100646 compatible = "rockchip,rk3368-grf", "syscon", "simple-mfd";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800647 reg = <0x0 0xff770000 0x0 0x1000>;
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100648
649 io_domains: io-domains {
650 compatible = "rockchip,rk3368-io-voltage-domain";
651 status = "disabled";
652 };
Andreas Färber9e3ad682017-05-15 17:51:18 +0800653 };
654
655 wdt: watchdog@ff800000 {
656 compatible = "rockchip,rk3368-wdt", "snps,dw-wdt";
657 reg = <0x0 0xff800000 0x0 0x100>;
658 clocks = <&cru PCLK_WDT>;
659 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
660 status = "disabled";
661 };
662
Philipp Tomsich0a4873f2017-07-28 17:46:39 +0200663 timer0: timer@ff810000 {
Andreas Färber9e3ad682017-05-15 17:51:18 +0800664 compatible = "rockchip,rk3368-timer", "rockchip,rk3288-timer";
665 reg = <0x0 0xff810000 0x0 0x20>;
666 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
Peter Robinson072a8cc2021-07-22 16:20:44 +0100667 clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
668 clock-names = "pclk", "timer";
Andreas Färber9e3ad682017-05-15 17:51:18 +0800669 };
670
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100671 spdif: spdif@ff880000 {
672 compatible = "rockchip,rk3368-spdif";
673 reg = <0x0 0xff880000 0x0 0x1000>;
674 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
675 clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
676 clock-names = "mclk", "hclk";
677 dmas = <&dmac_bus 3>;
678 dma-names = "tx";
679 pinctrl-names = "default";
680 pinctrl-0 = <&spdif_tx>;
681 status = "disabled";
682 };
683
684 i2s_2ch: i2s-2ch@ff890000 {
685 compatible = "rockchip,rk3368-i2s", "rockchip,rk3066-i2s";
686 reg = <0x0 0xff890000 0x0 0x1000>;
687 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
688 clock-names = "i2s_clk", "i2s_hclk";
689 clocks = <&cru SCLK_I2S_2CH>, <&cru HCLK_I2S_2CH>;
690 dmas = <&dmac_bus 6>, <&dmac_bus 7>;
691 dma-names = "tx", "rx";
692 status = "disabled";
693 };
694
695 i2s_8ch: i2s-8ch@ff898000 {
696 compatible = "rockchip,rk3368-i2s", "rockchip,rk3066-i2s";
697 reg = <0x0 0xff898000 0x0 0x1000>;
698 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
699 clock-names = "i2s_clk", "i2s_hclk";
700 clocks = <&cru SCLK_I2S_8CH>, <&cru HCLK_I2S_8CH>;
701 dmas = <&dmac_bus 0>, <&dmac_bus 1>;
702 dma-names = "tx", "rx";
703 pinctrl-names = "default";
704 pinctrl-0 = <&i2s_8ch_bus>;
705 status = "disabled";
706 };
707
708 iep_mmu: iommu@ff900800 {
709 compatible = "rockchip,iommu";
710 reg = <0x0 0xff900800 0x0 0x100>;
711 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
712 interrupt-names = "iep_mmu";
713 clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
714 clock-names = "aclk", "iface";
715 #iommu-cells = <0>;
716 status = "disabled";
717 };
718
719 isp_mmu: iommu@ff914000 {
720 compatible = "rockchip,iommu";
721 reg = <0x0 0xff914000 0x0 0x100>,
722 <0x0 0xff915000 0x0 0x100>;
723 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
724 interrupt-names = "isp_mmu";
725 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
726 clock-names = "aclk", "iface";
727 #iommu-cells = <0>;
728 rockchip,disable-mmu-reset;
729 status = "disabled";
730 };
731
732 vop_mmu: iommu@ff930300 {
733 compatible = "rockchip,iommu";
734 reg = <0x0 0xff930300 0x0 0x100>;
735 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
736 interrupt-names = "vop_mmu";
737 clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
738 clock-names = "aclk", "iface";
739 #iommu-cells = <0>;
740 status = "disabled";
741 };
742
743 hevc_mmu: iommu@ff9a0440 {
744 compatible = "rockchip,iommu";
745 reg = <0x0 0xff9a0440 0x0 0x40>,
746 <0x0 0xff9a0480 0x0 0x40>;
747 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
748 interrupt-names = "hevc_mmu";
749 clocks = <&cru ACLK_VIDEO>, <&cru HCLK_VIDEO>;
750 clock-names = "aclk", "iface";
751 #iommu-cells = <0>;
752 status = "disabled";
753 };
754
755 vpu_mmu: iommu@ff9a0800 {
756 compatible = "rockchip,iommu";
757 reg = <0x0 0xff9a0800 0x0 0x100>;
758 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
759 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
760 interrupt-names = "vepu_mmu", "vdpu_mmu";
761 clocks = <&cru ACLK_VIDEO>, <&cru HCLK_VIDEO>;
762 clock-names = "aclk", "iface";
763 #iommu-cells = <0>;
764 status = "disabled";
765 };
766
767 efuse256: efuse@ffb00000 {
768 compatible = "rockchip,rk3368-efuse";
769 reg = <0x0 0xffb00000 0x0 0x20>;
770 #address-cells = <1>;
771 #size-cells = <1>;
772 clocks = <&cru PCLK_EFUSE256>;
773 clock-names = "pclk_efuse";
774
775 cpu_leakage: cpu-leakage@17 {
776 reg = <0x17 0x1>;
777 };
778 temp_adjust: temp-adjust@1f {
779 reg = <0x1f 0x1>;
780 };
781 };
782
Andreas Färber9e3ad682017-05-15 17:51:18 +0800783 gic: interrupt-controller@ffb71000 {
784 compatible = "arm,gic-400";
785 interrupt-controller;
786 #interrupt-cells = <3>;
787 #address-cells = <0>;
788
789 reg = <0x0 0xffb71000 0x0 0x1000>,
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100790 <0x0 0xffb72000 0x0 0x2000>,
Andreas Färber9e3ad682017-05-15 17:51:18 +0800791 <0x0 0xffb74000 0x0 0x2000>,
792 <0x0 0xffb76000 0x0 0x2000>;
793 interrupts = <GIC_PPI 9
794 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
795 };
796
797 pinctrl: pinctrl {
798 compatible = "rockchip,rk3368-pinctrl";
799 rockchip,grf = <&grf>;
800 rockchip,pmu = <&pmugrf>;
801 #address-cells = <0x2>;
802 #size-cells = <0x2>;
803 ranges;
804
805 gpio0: gpio0@ff750000 {
806 compatible = "rockchip,gpio-bank";
807 reg = <0x0 0xff750000 0x0 0x100>;
808 clocks = <&cru PCLK_GPIO0>;
809 interrupts = <GIC_SPI 0x51 IRQ_TYPE_LEVEL_HIGH>;
810
811 gpio-controller;
812 #gpio-cells = <0x2>;
813
814 interrupt-controller;
815 #interrupt-cells = <0x2>;
816 };
817
818 gpio1: gpio1@ff780000 {
819 compatible = "rockchip,gpio-bank";
820 reg = <0x0 0xff780000 0x0 0x100>;
821 clocks = <&cru PCLK_GPIO1>;
822 interrupts = <GIC_SPI 0x52 IRQ_TYPE_LEVEL_HIGH>;
823
824 gpio-controller;
825 #gpio-cells = <0x2>;
826
827 interrupt-controller;
828 #interrupt-cells = <0x2>;
829 };
830
831 gpio2: gpio2@ff790000 {
832 compatible = "rockchip,gpio-bank";
833 reg = <0x0 0xff790000 0x0 0x100>;
834 clocks = <&cru PCLK_GPIO2>;
835 interrupts = <GIC_SPI 0x53 IRQ_TYPE_LEVEL_HIGH>;
836
837 gpio-controller;
838 #gpio-cells = <0x2>;
839
840 interrupt-controller;
841 #interrupt-cells = <0x2>;
842 };
843
844 gpio3: gpio3@ff7a0000 {
845 compatible = "rockchip,gpio-bank";
846 reg = <0x0 0xff7a0000 0x0 0x100>;
847 clocks = <&cru PCLK_GPIO3>;
848 interrupts = <GIC_SPI 0x54 IRQ_TYPE_LEVEL_HIGH>;
849
850 gpio-controller;
851 #gpio-cells = <0x2>;
852
853 interrupt-controller;
854 #interrupt-cells = <0x2>;
855 };
856
857 pcfg_pull_up: pcfg-pull-up {
858 bias-pull-up;
859 };
860
861 pcfg_pull_down: pcfg-pull-down {
862 bias-pull-down;
863 };
864
865 pcfg_pull_none: pcfg-pull-none {
866 bias-disable;
867 };
868
869 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
870 bias-disable;
871 drive-strength = <12>;
872 };
873
874 emmc {
875 emmc_clk: emmc-clk {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100876 rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800877 };
878
879 emmc_cmd: emmc-cmd {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100880 rockchip,pins = <1 RK_PD2 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800881 };
882
883 emmc_pwr: emmc-pwr {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100884 rockchip,pins = <1 RK_PD3 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800885 };
886
887 emmc_bus1: emmc-bus1 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100888 rockchip,pins = <1 RK_PC2 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800889 };
890
891 emmc_bus4: emmc-bus4 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100892 rockchip,pins = <1 RK_PC2 2 &pcfg_pull_up>,
893 <1 RK_PC3 2 &pcfg_pull_up>,
894 <1 RK_PC4 2 &pcfg_pull_up>,
895 <1 RK_PC5 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800896 };
897
898 emmc_bus8: emmc-bus8 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100899 rockchip,pins = <1 RK_PC2 2 &pcfg_pull_up>,
900 <1 RK_PC3 2 &pcfg_pull_up>,
901 <1 RK_PC4 2 &pcfg_pull_up>,
902 <1 RK_PC5 2 &pcfg_pull_up>,
903 <1 RK_PC6 2 &pcfg_pull_up>,
904 <1 RK_PC7 2 &pcfg_pull_up>,
905 <1 RK_PD0 2 &pcfg_pull_up>,
906 <1 RK_PD1 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800907 };
908 };
909
910 gmac {
911 rgmii_pins: rgmii-pins {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100912 rockchip,pins = <3 RK_PC6 1 &pcfg_pull_none>,
913 <3 RK_PD0 1 &pcfg_pull_none>,
914 <3 RK_PC3 1 &pcfg_pull_none>,
915 <3 RK_PB0 1 &pcfg_pull_none_12ma>,
916 <3 RK_PB1 1 &pcfg_pull_none_12ma>,
917 <3 RK_PB2 1 &pcfg_pull_none_12ma>,
918 <3 RK_PB6 1 &pcfg_pull_none_12ma>,
919 <3 RK_PD4 1 &pcfg_pull_none_12ma>,
920 <3 RK_PB5 1 &pcfg_pull_none_12ma>,
921 <3 RK_PB7 1 &pcfg_pull_none>,
922 <3 RK_PC0 1 &pcfg_pull_none>,
923 <3 RK_PC1 1 &pcfg_pull_none>,
924 <3 RK_PC2 1 &pcfg_pull_none>,
925 <3 RK_PD1 1 &pcfg_pull_none>,
926 <3 RK_PC4 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800927 };
928
929 rmii_pins: rmii-pins {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100930 rockchip,pins = <3 RK_PC6 1 &pcfg_pull_none>,
931 <3 RK_PD0 1 &pcfg_pull_none>,
932 <3 RK_PC3 1 &pcfg_pull_none>,
933 <3 RK_PB0 1 &pcfg_pull_none_12ma>,
934 <3 RK_PB1 1 &pcfg_pull_none_12ma>,
935 <3 RK_PB5 1 &pcfg_pull_none_12ma>,
936 <3 RK_PB7 1 &pcfg_pull_none>,
937 <3 RK_PC0 1 &pcfg_pull_none>,
938 <3 RK_PC4 1 &pcfg_pull_none>,
939 <3 RK_PC5 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800940 };
941 };
942
943 i2c0 {
944 i2c0_xfer: i2c0-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100945 rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>,
946 <0 RK_PA7 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800947 };
948 };
949
950 i2c1 {
951 i2c1_xfer: i2c1-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100952 rockchip,pins = <2 RK_PC5 1 &pcfg_pull_none>,
953 <2 RK_PC6 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800954 };
955 };
956
957 i2c2 {
958 i2c2_xfer: i2c2-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100959 rockchip,pins = <0 RK_PB1 2 &pcfg_pull_none>,
960 <3 RK_PD7 2 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800961 };
962 };
963
964 i2c3 {
965 i2c3_xfer: i2c3-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100966 rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none>,
967 <1 RK_PC1 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800968 };
969 };
970
971 i2c4 {
972 i2c4_xfer: i2c4-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100973 rockchip,pins = <3 RK_PD0 2 &pcfg_pull_none>,
974 <3 RK_PD1 2 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800975 };
976 };
977
978 i2c5 {
979 i2c5_xfer: i2c5-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +0100980 rockchip,pins = <3 RK_PD2 2 &pcfg_pull_none>,
981 <3 RK_PD3 2 &pcfg_pull_none>;
982 };
983 };
984
985 i2s {
986 i2s_8ch_bus: i2s-8ch-bus {
987 rockchip,pins = <2 RK_PB4 1 &pcfg_pull_none>,
988 <2 RK_PB5 1 &pcfg_pull_none>,
989 <2 RK_PB6 1 &pcfg_pull_none>,
990 <2 RK_PB7 1 &pcfg_pull_none>,
991 <2 RK_PC0 1 &pcfg_pull_none>,
992 <2 RK_PC1 1 &pcfg_pull_none>,
993 <2 RK_PC2 1 &pcfg_pull_none>,
994 <2 RK_PC3 1 &pcfg_pull_none>,
995 <2 RK_PC4 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +0800996 };
997 };
998
999 pwm0 {
1000 pwm0_pin: pwm0-pin {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001001 rockchip,pins = <3 RK_PB0 2 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001002 };
1003 };
1004
1005 pwm1 {
1006 pwm1_pin: pwm1-pin {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001007 rockchip,pins = <0 RK_PB0 2 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001008 };
1009 };
1010
1011 pwm3 {
1012 pwm3_pin: pwm3-pin {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001013 rockchip,pins = <3 RK_PD5 3 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001014 };
1015 };
1016
1017 sdio0 {
1018 sdio0_bus1: sdio0-bus1 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001019 rockchip,pins = <2 RK_PD4 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001020 };
1021
1022 sdio0_bus4: sdio0-bus4 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001023 rockchip,pins = <2 RK_PD4 1 &pcfg_pull_up>,
1024 <2 RK_PD5 1 &pcfg_pull_up>,
1025 <2 RK_PD6 1 &pcfg_pull_up>,
1026 <2 RK_PD7 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001027 };
1028
1029 sdio0_cmd: sdio0-cmd {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001030 rockchip,pins = <3 RK_PA0 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001031 };
1032
1033 sdio0_clk: sdio0-clk {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001034 rockchip,pins = <3 RK_PA1 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001035 };
1036
1037 sdio0_cd: sdio0-cd {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001038 rockchip,pins = <3 RK_PA2 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001039 };
1040
1041 sdio0_wp: sdio0-wp {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001042 rockchip,pins = <3 RK_PA3 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001043 };
1044
1045 sdio0_pwr: sdio0-pwr {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001046 rockchip,pins = <3 RK_PA4 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001047 };
1048
1049 sdio0_bkpwr: sdio0-bkpwr {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001050 rockchip,pins = <3 RK_PA5 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001051 };
1052
1053 sdio0_int: sdio0-int {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001054 rockchip,pins = <3 RK_PA6 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001055 };
1056 };
1057
1058 sdmmc {
1059 sdmmc_clk: sdmmc-clk {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001060 rockchip,pins = <2 RK_PB1 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001061 };
1062
1063 sdmmc_cmd: sdmmc-cmd {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001064 rockchip,pins = <2 RK_PB2 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001065 };
1066
1067 sdmmc_cd: sdmmc-cd {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001068 rockchip,pins = <2 RK_PB3 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001069 };
1070
1071 sdmmc_bus1: sdmmc-bus1 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001072 rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001073 };
1074
1075 sdmmc_bus4: sdmmc-bus4 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001076 rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up>,
1077 <2 RK_PA6 1 &pcfg_pull_up>,
1078 <2 RK_PA7 1 &pcfg_pull_up>,
1079 <2 RK_PB0 1 &pcfg_pull_up>;
1080 };
1081 };
1082
1083 spdif {
1084 spdif_tx: spdif-tx {
1085 rockchip,pins = <2 RK_PC7 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001086 };
1087 };
1088
1089 spi0 {
1090 spi0_clk: spi0-clk {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001091 rockchip,pins = <1 RK_PD5 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001092 };
1093 spi0_cs0: spi0-cs0 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001094 rockchip,pins = <1 RK_PD0 3 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001095 };
1096 spi0_cs1: spi0-cs1 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001097 rockchip,pins = <1 RK_PD1 3 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001098 };
1099 spi0_tx: spi0-tx {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001100 rockchip,pins = <1 RK_PC7 3 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001101 };
1102 spi0_rx: spi0-rx {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001103 rockchip,pins = <1 RK_PC6 3 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001104 };
1105 };
1106
1107 spi1 {
1108 spi1_clk: spi1-clk {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001109 rockchip,pins = <1 RK_PB6 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001110 };
1111 spi1_cs0: spi1-cs0 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001112 rockchip,pins = <1 RK_PB7 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001113 };
1114 spi1_cs1: spi1-cs1 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001115 rockchip,pins = <3 RK_PD4 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001116 };
1117 spi1_rx: spi1-rx {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001118 rockchip,pins = <1 RK_PC0 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001119 };
1120 spi1_tx: spi1-tx {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001121 rockchip,pins = <1 RK_PC1 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001122 };
1123 };
1124
1125 spi2 {
1126 spi2_clk: spi2-clk {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001127 rockchip,pins = <0 RK_PB4 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001128 };
1129 spi2_cs0: spi2-cs0 {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001130 rockchip,pins = <0 RK_PB5 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001131 };
1132 spi2_rx: spi2-rx {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001133 rockchip,pins = <0 RK_PB2 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001134 };
1135 spi2_tx: spi2-tx {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001136 rockchip,pins = <0 RK_PB3 2 &pcfg_pull_up>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001137 };
1138 };
1139
1140 tsadc {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001141 otp_pin: otp-pin {
1142 rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001143 };
1144
1145 otp_out: otp-out {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001146 rockchip,pins = <0 RK_PA3 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001147 };
1148 };
1149
1150 uart0 {
1151 uart0_xfer: uart0-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001152 rockchip,pins = <2 RK_PD0 1 &pcfg_pull_up>,
1153 <2 RK_PD1 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001154 };
1155
1156 uart0_cts: uart0-cts {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001157 rockchip,pins = <2 RK_PD2 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001158 };
1159
1160 uart0_rts: uart0-rts {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001161 rockchip,pins = <2 RK_PD3 1 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001162 };
1163 };
1164
1165 uart1 {
1166 uart1_xfer: uart1-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001167 rockchip,pins = <0 RK_PC4 3 &pcfg_pull_up>,
1168 <0 RK_PC5 3 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001169 };
1170
1171 uart1_cts: uart1-cts {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001172 rockchip,pins = <0 RK_PC6 3 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001173 };
1174
1175 uart1_rts: uart1-rts {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001176 rockchip,pins = <0 RK_PC7 3 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001177 };
1178 };
1179
1180 uart2 {
1181 uart2_xfer: uart2-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001182 rockchip,pins = <2 RK_PA6 2 &pcfg_pull_up>,
1183 <2 RK_PA5 2 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001184 };
1185 /* no rts / cts for uart2 */
1186 };
1187
1188 uart3 {
1189 uart3_xfer: uart3-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001190 rockchip,pins = <3 RK_PD5 2 &pcfg_pull_up>,
1191 <3 RK_PD6 3 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001192 };
1193
1194 uart3_cts: uart3-cts {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001195 rockchip,pins = <3 RK_PC0 2 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001196 };
1197
1198 uart3_rts: uart3-rts {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001199 rockchip,pins = <3 RK_PC1 2 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001200 };
1201 };
1202
1203 uart4 {
1204 uart4_xfer: uart4-xfer {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001205 rockchip,pins = <0 RK_PD3 3 &pcfg_pull_up>,
1206 <0 RK_PD2 3 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001207 };
1208
1209 uart4_cts: uart4-cts {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001210 rockchip,pins = <0 RK_PD0 3 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001211 };
1212
1213 uart4_rts: uart4-rts {
Heiko Stuebner15b1c4d2021-02-09 14:47:08 +01001214 rockchip,pins = <0 RK_PD1 3 &pcfg_pull_none>;
Andreas Färber9e3ad682017-05-15 17:51:18 +08001215 };
1216 };
1217 };
1218};