2 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
9 * a) This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
43 #include <dt-bindings/clock/rk3328-cru.h>
44 #include <dt-bindings/gpio/gpio.h>
45 #include <dt-bindings/interrupt-controller/arm-gic.h>
46 #include <dt-bindings/interrupt-controller/irq.h>
47 #include <dt-bindings/pinctrl/rockchip.h>
48 #include <dt-bindings/power/rk3328-power.h>
49 #include <dt-bindings/soc/rockchip,boot-mode.h>
52 compatible = "rockchip,rk3328";
54 interrupt-parent = <&gic>;
67 ethernet1 = &gmac2phy;
76 compatible = "arm,cortex-a53", "arm,armv8";
78 clocks = <&cru ARMCLK>;
79 enable-method = "psci";
80 next-level-cache = <&l2>;
85 compatible = "arm,cortex-a53", "arm,armv8";
87 clocks = <&cru ARMCLK>;
88 enable-method = "psci";
89 next-level-cache = <&l2>;
94 compatible = "arm,cortex-a53", "arm,armv8";
96 clocks = <&cru ARMCLK>;
97 enable-method = "psci";
98 next-level-cache = <&l2>;
103 compatible = "arm,cortex-a53", "arm,armv8";
105 clocks = <&cru ARMCLK>;
106 enable-method = "psci";
107 next-level-cache = <&l2>;
111 compatible = "cache";
116 compatible = "simple-bus";
117 #address-cells = <2>;
121 dmac: dmac@ff1f0000 {
122 compatible = "arm,pl330", "arm,primecell";
123 reg = <0x0 0xff1f0000 0x0 0x4000>;
124 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
125 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
126 clocks = <&cru ACLK_DMAC>;
127 clock-names = "apb_pclk";
133 compatible = "arm,cortex-a53-pmu";
134 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
135 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
136 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
137 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
138 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
142 compatible = "arm,psci-1.0", "arm,psci-0.2";
147 compatible = "arm,armv8-timer";
148 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
149 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
150 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
151 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
155 compatible = "fixed-clock";
157 clock-frequency = <24000000>;
158 clock-output-names = "xin24m";
161 grf: syscon@ff100000 {
162 compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
163 reg = <0x0 0xff100000 0x0 0x1000>;
164 #address-cells = <1>;
167 power: power-controller {
168 compatible = "rockchip,rk3328-power-controller";
169 #power-domain-cells = <1>;
170 #address-cells = <1>;
173 pd_hevc@RK3328_PD_HEVC {
174 reg = <RK3328_PD_HEVC>;
176 pd_video@RK3328_PD_VIDEO {
177 reg = <RK3328_PD_VIDEO>;
179 pd_vpu@RK3328_PD_VPU {
180 reg = <RK3328_PD_VPU>;
185 compatible = "syscon-reboot-mode";
187 mode-normal = <BOOT_NORMAL>;
188 mode-recovery = <BOOT_RECOVERY>;
189 mode-bootloader = <BOOT_FASTBOOT>;
190 mode-loader = <BOOT_BL_DOWNLOAD>;
195 uart0: serial@ff110000 {
196 compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
197 reg = <0x0 0xff110000 0x0 0x100>;
198 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
199 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
200 clock-names = "baudclk", "apb_pclk";
201 dmas = <&dmac 2>, <&dmac 3>;
203 pinctrl-names = "default";
204 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
210 uart1: serial@ff120000 {
211 compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
212 reg = <0x0 0xff120000 0x0 0x100>;
213 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
214 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
215 clock-names = "sclk_uart", "pclk_uart";
216 dmas = <&dmac 4>, <&dmac 5>;
218 pinctrl-names = "default";
219 pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>;
225 uart2: serial@ff130000 {
226 compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
227 reg = <0x0 0xff130000 0x0 0x100>;
228 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
229 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
230 clock-names = "baudclk", "apb_pclk";
231 dmas = <&dmac 6>, <&dmac 7>;
233 pinctrl-names = "default";
234 pinctrl-0 = <&uart2m1_xfer>;
241 compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c";
242 reg = <0x0 0xff150000 0x0 0x1000>;
243 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
244 #address-cells = <1>;
246 clocks = <&cru SCLK_I2C0>, <&cru PCLK_I2C0>;
247 clock-names = "i2c", "pclk";
248 pinctrl-names = "default";
249 pinctrl-0 = <&i2c0_xfer>;
254 compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c";
255 reg = <0x0 0xff160000 0x0 0x1000>;
256 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
257 #address-cells = <1>;
259 clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
260 clock-names = "i2c", "pclk";
261 pinctrl-names = "default";
262 pinctrl-0 = <&i2c1_xfer>;
267 compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c";
268 reg = <0x0 0xff170000 0x0 0x1000>;
269 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
270 #address-cells = <1>;
272 clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
273 clock-names = "i2c", "pclk";
274 pinctrl-names = "default";
275 pinctrl-0 = <&i2c2_xfer>;
280 compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c";
281 reg = <0x0 0xff180000 0x0 0x1000>;
282 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
283 #address-cells = <1>;
285 clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
286 clock-names = "i2c", "pclk";
287 pinctrl-names = "default";
288 pinctrl-0 = <&i2c3_xfer>;
293 compatible = "rockchip,rk3328-spi", "rockchip,rk3066-spi";
294 reg = <0x0 0xff190000 0x0 0x1000>;
295 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
296 #address-cells = <1>;
298 clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
299 clock-names = "spiclk", "apb_pclk";
300 dmas = <&dmac 8>, <&dmac 9>;
301 dma-names = "tx", "rx";
302 pinctrl-names = "default";
303 pinctrl-0 = <&spi0m2_clk &spi0m2_tx &spi0m2_rx &spi0m2_cs0>;
307 wdt: watchdog@ff1a0000 {
308 compatible = "snps,dw-wdt";
309 reg = <0x0 0xff1a0000 0x0 0x100>;
310 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
313 saradc: adc@ff280000 {
314 compatible = "rockchip,rk3328-saradc", "rockchip,rk3399-saradc";
315 reg = <0x0 0xff280000 0x0 0x100>;
316 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
317 #io-channel-cells = <1>;
318 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
319 clock-names = "saradc", "apb_pclk";
320 resets = <&cru SRST_SARADC_P>;
321 reset-names = "saradc-apb";
325 cru: clock-controller@ff440000 {
326 compatible = "rockchip,rk3328-cru", "rockchip,cru", "syscon";
327 reg = <0x0 0xff440000 0x0 0x1000>;
328 rockchip,grf = <&grf>;
333 * CPLL should run at 1200, but that is to high for
334 * the initial dividers of most of its children.
335 * We need set cpll child clk div first,
336 * and then set the cpll frequency.
338 <&cru DCLK_LCDC>, <&cru SCLK_PDM>,
339 <&cru SCLK_RTC32K>, <&cru SCLK_UART0>,
340 <&cru SCLK_UART1>, <&cru SCLK_UART2>,
341 <&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
342 <&cru ACLK_VIO_PRE>, <&cru ACLK_RGA_PRE>,
343 <&cru ACLK_VOP_PRE>, <&cru ACLK_RKVDEC_PRE>,
344 <&cru ACLK_RKVENC>, <&cru ACLK_VPU_PRE>,
345 <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>,
346 <&cru SCLK_VENC_CORE>, <&cru SCLK_VENC_DSP>,
347 <&cru SCLK_SDIO>, <&cru SCLK_TSP>,
348 <&cru SCLK_WIFI>, <&cru ARMCLK>,
349 <&cru PLL_GPLL>, <&cru PLL_CPLL>,
350 <&cru ACLK_BUS_PRE>, <&cru HCLK_BUS_PRE>,
351 <&cru PCLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
352 <&cru HCLK_PERI>, <&cru PCLK_PERI>,
354 assigned-clock-parents =
355 <&cru HDMIPHY>, <&cru PLL_APLL>,
356 <&cru PLL_GPLL>, <&xin24m>,
357 <&xin24m>, <&xin24m>;
358 assigned-clock-rates =
361 <24000000>, <24000000>,
362 <15000000>, <15000000>,
363 <100000000>, <100000000>,
364 <100000000>, <100000000>,
365 <50000000>, <100000000>,
366 <100000000>, <100000000>,
367 <50000000>, <50000000>,
368 <50000000>, <50000000>,
369 <24000000>, <600000000>,
370 <491520000>, <1200000000>,
371 <150000000>, <75000000>,
372 <75000000>, <150000000>,
373 <75000000>, <75000000>,
377 sdmmc: dwmmc@ff500000 {
378 compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
379 reg = <0x0 0xff500000 0x0 0x4000>;
380 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
381 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
382 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
383 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
384 fifo-depth = <0x100>;
388 sdio: dwmmc@ff510000 {
389 compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
390 reg = <0x0 0xff510000 0x0 0x4000>;
391 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
392 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
393 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
394 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
395 fifo-depth = <0x100>;
399 emmc: dwmmc@ff520000 {
400 compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
401 reg = <0x0 0xff520000 0x0 0x4000>;
402 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
403 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
404 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
405 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
406 fifo-depth = <0x100>;
410 gmac2io: ethernet@ff540000 {
411 compatible = "rockchip,rk3328-gmac";
412 reg = <0x0 0xff540000 0x0 0x10000>;
413 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
414 interrupt-names = "macirq";
415 clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_RX>,
416 <&cru SCLK_MAC2IO_TX>, <&cru SCLK_MAC2IO_REF>,
417 <&cru SCLK_MAC2IO_REFOUT>, <&cru ACLK_MAC2IO>,
419 clock-names = "stmmaceth", "mac_clk_rx",
420 "mac_clk_tx", "clk_mac_ref",
421 "clk_mac_refout", "aclk_mac",
423 resets = <&cru SRST_GMAC2IO_A>;
424 reset-names = "stmmaceth";
425 rockchip,grf = <&grf>;
429 gmac2phy: ethernet@ff550000 {
430 compatible = "rockchip,rk3328-gmac";
431 reg = <0x0 0xff550000 0x0 0x10000>;
432 rockchip,grf = <&grf>;
433 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
434 interrupt-names = "macirq";
435 clocks = <&cru SCLK_MAC2PHY_SRC>, <&cru SCLK_MAC2PHY_RXTX>,
436 <&cru SCLK_MAC2PHY_RXTX>, <&cru SCLK_MAC2PHY_REF>,
437 <&cru ACLK_MAC2PHY>, <&cru PCLK_MAC2PHY>,
438 <&cru SCLK_MAC2PHY_OUT>;
439 clock-names = "stmmaceth", "mac_clk_rx",
440 "mac_clk_tx", "clk_mac_ref",
441 "aclk_mac", "pclk_mac",
443 resets = <&cru SRST_GMAC2PHY_A>, <&cru SRST_MACPHY>;
444 reset-names = "stmmaceth", "mac-phy";
450 compatible = "snps,dwmac-mdio";
451 #address-cells = <1>;
455 compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
457 clocks = <&cru SCLK_MAC2PHY_OUT>;
458 resets = <&cru SRST_MACPHY>;
459 pinctrl-names = "default";
460 pinctrl-0 = <&fephyled_rxm1 &fephyled_linkm1>;
466 gic: interrupt-controller@ff811000 {
467 compatible = "arm,gic-400";
468 #interrupt-cells = <3>;
469 #address-cells = <0>;
470 interrupt-controller;
471 reg = <0x0 0xff811000 0 0x1000>,
472 <0x0 0xff812000 0 0x2000>,
473 <0x0 0xff814000 0 0x2000>,
474 <0x0 0xff816000 0 0x2000>;
475 interrupts = <GIC_PPI 9
476 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
480 compatible = "rockchip,rk3328-pinctrl";
481 rockchip,grf = <&grf>;
482 #address-cells = <2>;
486 gpio0: gpio0@ff210000 {
487 compatible = "rockchip,gpio-bank";
488 reg = <0x0 0xff210000 0x0 0x100>;
489 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
490 clocks = <&cru PCLK_GPIO0>;
495 interrupt-controller;
496 #interrupt-cells = <2>;
499 gpio1: gpio1@ff220000 {
500 compatible = "rockchip,gpio-bank";
501 reg = <0x0 0xff220000 0x0 0x100>;
502 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
503 clocks = <&cru PCLK_GPIO1>;
508 interrupt-controller;
509 #interrupt-cells = <2>;
512 gpio2: gpio2@ff230000 {
513 compatible = "rockchip,gpio-bank";
514 reg = <0x0 0xff230000 0x0 0x100>;
515 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
516 clocks = <&cru PCLK_GPIO2>;
521 interrupt-controller;
522 #interrupt-cells = <2>;
525 gpio3: gpio3@ff240000 {
526 compatible = "rockchip,gpio-bank";
527 reg = <0x0 0xff240000 0x0 0x100>;
528 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
529 clocks = <&cru PCLK_GPIO3>;
534 interrupt-controller;
535 #interrupt-cells = <2>;
538 pcfg_pull_up: pcfg-pull-up {
542 pcfg_pull_down: pcfg-pull-down {
546 pcfg_pull_none: pcfg-pull-none {
550 pcfg_pull_none_2ma: pcfg-pull-none-2ma {
552 drive-strength = <2>;
555 pcfg_pull_up_2ma: pcfg-pull-up-2ma {
557 drive-strength = <2>;
560 pcfg_pull_up_4ma: pcfg-pull-up-4ma {
562 drive-strength = <4>;
565 pcfg_pull_none_4ma: pcfg-pull-none-4ma {
567 drive-strength = <4>;
570 pcfg_pull_down_4ma: pcfg-pull-down-4ma {
572 drive-strength = <4>;
575 pcfg_pull_none_8ma: pcfg-pull-none-8ma {
577 drive-strength = <8>;
580 pcfg_pull_up_8ma: pcfg-pull-up-8ma {
582 drive-strength = <8>;
585 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
587 drive-strength = <12>;
590 pcfg_pull_up_12ma: pcfg-pull-up-12ma {
592 drive-strength = <12>;
595 pcfg_output_high: pcfg-output-high {
599 pcfg_output_low: pcfg-output-low {
603 pcfg_input_high: pcfg-input-high {
608 pcfg_input: pcfg-input {
613 i2c0_xfer: i2c0-xfer {
614 rockchip,pins = <2 RK_PD0 1 &pcfg_pull_none>,
615 <2 RK_PD1 1 &pcfg_pull_none>;
620 i2c1_xfer: i2c1-xfer {
621 rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>,
622 <2 RK_PA5 2 &pcfg_pull_none>;
627 i2c2_xfer: i2c2-xfer {
628 rockchip,pins = <2 RK_PB5 1 &pcfg_pull_none>,
629 <2 RK_PB6 1 &pcfg_pull_none>;
634 i2c3_xfer: i2c3-xfer {
635 rockchip,pins = <0 RK_PA5 2 &pcfg_pull_none>,
636 <0 RK_PA6 2 &pcfg_pull_none>;
638 i2c3_gpio: i2c3-gpio {
640 <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>,
641 <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
646 hdmii2c_xfer: hdmii2c-xfer {
647 rockchip,pins = <0 RK_PA5 1 &pcfg_pull_none>,
648 <0 RK_PA6 1 &pcfg_pull_none>;
654 rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
658 rockchip,pins = <2 RK_PB5 1 &pcfg_pull_none>;
663 uart0_xfer: uart0-xfer {
664 rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>,
665 <1 RK_PB0 1 &pcfg_pull_none>;
668 uart0_cts: uart0-cts {
669 rockchip,pins = <1 RK_PB3 1 &pcfg_pull_none>;
672 uart0_rts: uart0-rts {
673 rockchip,pins = <1 RK_PB2 1 &pcfg_pull_none>;
676 uart0_rts_gpio: uart0-rts-gpio {
677 rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
682 uart1_xfer: uart1-xfer {
683 rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>,
684 <3 RK_PA6 4 &pcfg_pull_none>;
687 uart1_cts: uart1-cts {
688 rockchip,pins = <3 RK_PA7 4 &pcfg_pull_none>;
691 uart1_rts: uart1-rts {
692 rockchip,pins = <3 RK_PA5 4 &pcfg_pull_none>;
695 uart1_rts_gpio: uart1-rts-gpio {
696 rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
701 uart2m0_xfer: uart2m0-xfer {
702 rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>,
703 <1 RK_PA1 2 &pcfg_pull_none>;
708 uart2m1_xfer: uart2m1-xfer {
709 rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>,
710 <2 RK_PA1 1 &pcfg_pull_none>;
715 spi0m0_clk: spi0m0-clk {
716 rockchip,pins = <2 RK_PB0 1 &pcfg_pull_up>;
719 spi0m0_cs0: spi0m0-cs0 {
720 rockchip,pins = <2 RK_PB3 1 &pcfg_pull_up>;
723 spi0m0_tx: spi0m0-tx {
724 rockchip,pins = <2 RK_PB1 1 &pcfg_pull_up>;
727 spi0m0_rx: spi0m0-rx {
728 rockchip,pins = <2 RK_PB2 1 &pcfg_pull_up>;
731 spi0m0_cs1: spi0m0-cs1 {
732 rockchip,pins = <2 RK_PB4 1 &pcfg_pull_up>;
737 spi0m1_clk: spi0m1-clk {
738 rockchip,pins = <3 RK_PC7 2 &pcfg_pull_up>;
741 spi0m1_cs0: spi0m1-cs0 {
742 rockchip,pins = <3 RK_PD2 2 &pcfg_pull_up>;
745 spi0m1_tx: spi0m1-tx {
746 rockchip,pins = <3 RK_PD1 2 &pcfg_pull_up>;
749 spi0m1_rx: spi0m1-rx {
750 rockchip,pins = <3 RK_PD0 2 &pcfg_pull_up>;
753 spi0m1_cs1: spi0m1-cs1 {
754 rockchip,pins = <3 RK_PD3 2 &pcfg_pull_up>;
759 spi0m2_clk: spi0m2-clk {
760 rockchip,pins = <3 RK_PA0 4 &pcfg_pull_up>;
763 spi0m2_cs0: spi0m2-cs0 {
764 rockchip,pins = <3 RK_PB0 3 &pcfg_pull_up>;
767 spi0m2_tx: spi0m2-tx {
768 rockchip,pins = <3 RK_PA1 4 &pcfg_pull_up>;
771 spi0m2_rx: spi0m2-rx {
772 rockchip,pins = <3 RK_PA2 4 &pcfg_pull_up>;
777 i2s1_mclk: i2s1-mclk {
778 rockchip,pins = <2 RK_PB7 1 &pcfg_pull_none>;
781 i2s1_sclk: i2s1-sclk {
782 rockchip,pins = <2 RK_PC2 1 &pcfg_pull_none>;
785 i2s1_lrckrx: i2s1-lrckrx {
786 rockchip,pins = <2 RK_PC0 1 &pcfg_pull_none>;
789 i2s1_lrcktx: i2s1-lrcktx {
790 rockchip,pins = <2 RK_PC1 1 &pcfg_pull_none>;
794 rockchip,pins = <2 RK_PC3 1 &pcfg_pull_none>;
798 rockchip,pins = <2 RK_PC7 1 &pcfg_pull_none>;
801 i2s1_sdio1: i2s1-sdio1 {
802 rockchip,pins = <2 RK_PC4 1 &pcfg_pull_none>;
805 i2s1_sdio2: i2s1-sdio2 {
806 rockchip,pins = <2 RK_PC5 1 &pcfg_pull_none>;
809 i2s1_sdio3: i2s1-sdio3 {
810 rockchip,pins = <2 RK_PC6 1 &pcfg_pull_none>;
813 i2s1_sleep: i2s1-sleep {
815 <2 RK_PB7 RK_FUNC_GPIO &pcfg_input_high>,
816 <2 RK_PC0 RK_FUNC_GPIO &pcfg_input_high>,
817 <2 RK_PC1 RK_FUNC_GPIO &pcfg_input_high>,
818 <2 RK_PC2 RK_FUNC_GPIO &pcfg_input_high>,
819 <2 RK_PC3 RK_FUNC_GPIO &pcfg_input_high>,
820 <2 RK_PC4 RK_FUNC_GPIO &pcfg_input_high>,
821 <2 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>,
822 <2 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>,
823 <2 RK_PC7 RK_FUNC_GPIO &pcfg_input_high>;
828 i2s2m0_mclk: i2s2m0-mclk {
829 rockchip,pins = <1 RK_PC5 1 &pcfg_pull_none>;
832 i2s2m0_sclk: i2s2m0-sclk {
833 rockchip,pins = <1 RK_PC6 1 &pcfg_pull_none>;
836 i2s2m0_lrckrx: i2s2m0-lrckrx {
837 rockchip,pins = <1 RK_PD2 1 &pcfg_pull_none>;
840 i2s2m0_lrcktx: i2s2m0-lrcktx {
841 rockchip,pins = <1 RK_PC7 1 &pcfg_pull_none>;
844 i2s2m0_sdi: i2s2m0-sdi {
845 rockchip,pins = <1 RK_PD0 1 &pcfg_pull_none>;
848 i2s2m0_sdo: i2s2m0-sdo {
849 rockchip,pins = <1 RK_PD1 1 &pcfg_pull_none>;
852 i2s2m0_sleep: i2s2m0-sleep {
854 <1 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>,
855 <1 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>,
856 <1 RK_PD2 RK_FUNC_GPIO &pcfg_input_high>,
857 <1 RK_PC7 RK_FUNC_GPIO &pcfg_input_high>,
858 <1 RK_PD0 RK_FUNC_GPIO &pcfg_input_high>,
859 <1 RK_PD1 RK_FUNC_GPIO &pcfg_input_high>;
864 i2s2m1_mclk: i2s2m1-mclk {
865 rockchip,pins = <1 RK_PC5 1 &pcfg_pull_none>;
868 i2s2m1_sclk: i2s2m1-sclk {
869 rockchip,pins = <3 RK_PA0 6 &pcfg_pull_none>;
872 i2s2m1_lrckrx: i2sm1-lrckrx {
873 rockchip,pins = <3 RK_PB0 6 &pcfg_pull_none>;
876 i2s2m1_lrcktx: i2s2m1-lrcktx {
877 rockchip,pins = <3 RK_PB0 4 &pcfg_pull_none>;
880 i2s2m1_sdi: i2s2m1-sdi {
881 rockchip,pins = <3 RK_PA2 6 &pcfg_pull_none>;
884 i2s2m1_sdo: i2s2m1-sdo {
885 rockchip,pins = <3 RK_PA1 6 &pcfg_pull_none>;
888 i2s2m1_sleep: i2s2m1-sleep {
890 <1 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>,
891 <3 RK_PA0 RK_FUNC_GPIO &pcfg_input_high>,
892 <3 RK_PB0 RK_FUNC_GPIO &pcfg_input_high>,
893 <3 RK_PA2 RK_FUNC_GPIO &pcfg_input_high>,
894 <3 RK_PA1 RK_FUNC_GPIO &pcfg_input_high>;
899 spdifm0_tx: spdifm0-tx {
900 rockchip,pins = <0 RK_PD3 1 &pcfg_pull_none>;
905 spdifm1_tx: spdifm1-tx {
906 rockchip,pins = <2 RK_PC1 2 &pcfg_pull_none>;
911 spdifm2_tx: spdifm2-tx {
912 rockchip,pins = <0 RK_PA2 2 &pcfg_pull_none>;
917 sdmmc0m0_pwren: sdmmc0m0-pwren {
918 rockchip,pins = <2 RK_PA7 1 &pcfg_pull_up_4ma>;
921 sdmmc0m0_gpio: sdmmc0m0-gpio {
922 rockchip,pins = <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
927 sdmmc0m1_pwren: sdmmc0m1-pwren {
928 rockchip,pins = <0 RK_PD6 3 &pcfg_pull_up_4ma>;
931 sdmmc0m1_gpio: sdmmc0m1-gpio {
932 rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
937 sdmmc0_clk: sdmmc0-clk {
938 rockchip,pins = <1 RK_PA6 1 &pcfg_pull_none_4ma>;
941 sdmmc0_cmd: sdmmc0-cmd {
942 rockchip,pins = <1 RK_PA4 1 &pcfg_pull_up_4ma>;
945 sdmmc0_dectn: sdmmc0-dectn {
946 rockchip,pins = <1 RK_PA5 1 &pcfg_pull_up_4ma>;
949 sdmmc0_wrprt: sdmmc0-wrprt {
950 rockchip,pins = <1 RK_PA7 1 &pcfg_pull_up_4ma>;
953 sdmmc0_bus1: sdmmc0-bus1 {
954 rockchip,pins = <1 RK_PA0 1 &pcfg_pull_up_4ma>;
957 sdmmc0_bus4: sdmmc0-bus4 {
958 rockchip,pins = <1 RK_PA0 1 &pcfg_pull_up_4ma>,
959 <1 RK_PA1 1 &pcfg_pull_up_4ma>,
960 <1 RK_PA2 1 &pcfg_pull_up_4ma>,
961 <1 RK_PA3 1 &pcfg_pull_up_4ma>;
964 sdmmc0_gpio: sdmmc0-gpio {
966 <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
967 <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
968 <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
969 <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
970 <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
971 <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
972 <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
973 <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
978 sdmmc0ext_clk: sdmmc0ext-clk {
979 rockchip,pins = <3 RK_PA2 3 &pcfg_pull_none_4ma>;
982 sdmmc0ext_cmd: sdmmc0ext-cmd {
983 rockchip,pins = <3 RK_PA0 3 &pcfg_pull_up_4ma>;
986 sdmmc0ext_wrprt: sdmmc0ext-wrprt {
987 rockchip,pins = <3 RK_PA3 3 &pcfg_pull_up_4ma>;
990 sdmmc0ext_dectn: sdmmc0ext-dectn {
991 rockchip,pins = <3 RK_PA1 3 &pcfg_pull_up_4ma>;
994 sdmmc0ext_bus1: sdmmc0ext-bus1 {
995 rockchip,pins = <3 RK_PA4 3 &pcfg_pull_up_4ma>;
998 sdmmc0ext_bus4: sdmmc0ext-bus4 {
1000 <3 RK_PA4 3 &pcfg_pull_up_4ma>,
1001 <3 RK_PA5 3 &pcfg_pull_up_4ma>,
1002 <3 RK_PA6 3 &pcfg_pull_up_4ma>,
1003 <3 RK_PA7 3 &pcfg_pull_up_4ma>;
1006 sdmmc0ext_gpio: sdmmc0ext-gpio {
1008 <3 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1009 <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1010 <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1011 <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1012 <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1013 <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1014 <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1015 <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
1020 sdmmc1_clk: sdmmc1-clk {
1021 rockchip,pins = <1 RK_PB4 1 &pcfg_pull_none_8ma>;
1024 sdmmc1_cmd: sdmmc1-cmd {
1025 rockchip,pins = <1 RK_PB5 1 &pcfg_pull_up_8ma>;
1028 sdmmc1_pwren: sdmmc1-pwren {
1029 rockchip,pins = <1 RK_PC2 1 &pcfg_pull_up_8ma>;
1032 sdmmc1_wrprt: sdmmc1-wrprt {
1033 rockchip,pins = <1 RK_PC4 1 &pcfg_pull_up_8ma>;
1036 sdmmc1_dectn: sdmmc1-dectn {
1037 rockchip,pins = <1 RK_PC3 1 &pcfg_pull_up_8ma>;
1040 sdmmc1_bus1: sdmmc1-bus1 {
1041 rockchip,pins = <1 RK_PB6 1 &pcfg_pull_up_8ma>;
1044 sdmmc1_bus4: sdmmc1-bus4 {
1045 rockchip,pins = <1 RK_PB6 1 &pcfg_pull_up_8ma>,
1046 <1 RK_PB7 1 &pcfg_pull_up_8ma>,
1047 <1 RK_PC0 1 &pcfg_pull_up_8ma>,
1048 <1 RK_PC1 1 &pcfg_pull_up_8ma>;
1051 sdmmc1_gpio: sdmmc1-gpio {
1053 <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1054 <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1055 <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1056 <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1057 <1 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1058 <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1059 <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1060 <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1061 <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
1066 emmc_clk: emmc-clk {
1067 rockchip,pins = <3 RK_PC5 2 &pcfg_pull_none_12ma>;
1070 emmc_cmd: emmc-cmd {
1071 rockchip,pins = <3 RK_PC3 2 &pcfg_pull_up_12ma>;
1074 emmc_pwren: emmc-pwren {
1075 rockchip,pins = <3 RK_PC6 2 &pcfg_pull_none>;
1078 emmc_rstnout: emmc-rstnout {
1079 rockchip,pins = <3 RK_PC4 2 &pcfg_pull_none>;
1082 emmc_bus1: emmc-bus1 {
1083 rockchip,pins = <0 RK_PA7 2 &pcfg_pull_up_12ma>;
1086 emmc_bus4: emmc-bus4 {
1088 <0 RK_PA7 2 &pcfg_pull_up_12ma>,
1089 <2 RK_PD4 2 &pcfg_pull_up_12ma>,
1090 <2 RK_PD5 2 &pcfg_pull_up_12ma>,
1091 <2 RK_PD6 2 &pcfg_pull_up_12ma>;
1094 emmc_bus8: emmc-bus8 {
1096 <0 RK_PA7 2 &pcfg_pull_up_12ma>,
1097 <2 RK_PD4 2 &pcfg_pull_up_12ma>,
1098 <2 RK_PD5 2 &pcfg_pull_up_12ma>,
1099 <2 RK_PD6 2 &pcfg_pull_up_12ma>,
1100 <2 RK_PD7 2 &pcfg_pull_up_12ma>,
1101 <3 RK_PC0 2 &pcfg_pull_up_12ma>,
1102 <3 RK_PC1 2 &pcfg_pull_up_12ma>,
1103 <3 RK_PC2 2 &pcfg_pull_up_12ma>;
1108 pwm0_pin: pwm0-pin {
1109 rockchip,pins = <2 RK_PA4 1 &pcfg_pull_none>;
1114 pwm1_pin: pwm1-pin {
1115 rockchip,pins = <2 RK_PA5 1 &pcfg_pull_none>;
1120 pwm2_pin: pwm2-pin {
1121 rockchip,pins = <2 RK_PA6 1 &pcfg_pull_none>;
1126 pwmir_pin: pwmir-pin {
1127 rockchip,pins = <2 RK_PA2 1 &pcfg_pull_none>;
1132 rgmiim1_pins: rgmiim1-pins {
1135 <1 RK_PB4 2 &pcfg_pull_none_12ma>,
1137 <1 RK_PB5 2 &pcfg_pull_none_2ma>,
1139 <1 RK_PC3 2 &pcfg_pull_none_2ma>,
1141 <1 RK_PD1 2 &pcfg_pull_none_12ma>,
1143 <1 RK_PC5 2 &pcfg_pull_none_2ma>,
1145 <1 RK_PC6 2 &pcfg_pull_none_2ma>,
1147 <1 RK_PC7 2 &pcfg_pull_none_2ma>,
1149 <1 RK_PB2 2 &pcfg_pull_none_2ma>,
1151 <1 RK_PB3 2 &pcfg_pull_none_2ma>,
1153 <1 RK_PB0 2 &pcfg_pull_none_12ma>,
1155 <1 RK_PB1 2 &pcfg_pull_none_12ma>,
1157 <1 RK_PB6 2 &pcfg_pull_none_2ma>,
1159 <1 RK_PB7 2 &pcfg_pull_none_2ma>,
1161 <1 RK_PC0 2 &pcfg_pull_none_12ma>,
1163 <1 RK_PC1 2 &pcfg_pull_none_12ma>,
1166 <0 RK_PB0 1 &pcfg_pull_none>,
1168 <0 RK_PB4 1 &pcfg_pull_none>,
1170 <0 RK_PD0 1 &pcfg_pull_none>,
1172 <0 RK_PC0 1 &pcfg_pull_none>,
1174 <0 RK_PC1 1 &pcfg_pull_none>,
1176 <0 RK_PC7 1 &pcfg_pull_none>,
1178 <0 RK_PC6 1 &pcfg_pull_none>;
1181 rmiim1_pins: rmiim1-pins {
1184 <1 RK_PC3 2 &pcfg_pull_none_2ma>,
1186 <1 RK_PD1 2 &pcfg_pull_none_12ma>,
1188 <1 RK_PC5 2 &pcfg_pull_none_2ma>,
1190 <1 RK_PD0 2 &pcfg_pull_none_2ma>,
1192 <1 RK_PC6 2 &pcfg_pull_none_2ma>,
1194 <1 RK_PC7 2 &pcfg_pull_none_2ma>,
1196 <1 RK_PB2 2 &pcfg_pull_none_2ma>,
1198 <1 RK_PB3 2 &pcfg_pull_none_2ma>,
1200 <1 RK_PB0 2 &pcfg_pull_none_12ma>,
1202 <1 RK_PB1 2 &pcfg_pull_none_12ma>,
1205 <0 RK_PB3 1 &pcfg_pull_none>,
1207 <0 RK_PB4 1 &pcfg_pull_none>,
1209 <0 RK_PD0 1 &pcfg_pull_none>,
1211 <0 RK_PC3 1 &pcfg_pull_none>,
1213 <0 RK_PC0 1 &pcfg_pull_none>,
1215 <0 RK_PC1 1 &pcfg_pull_none>;
1220 fephyled_speed100: fephyled-speed100 {
1221 rockchip,pins = <0 RK_PD7 1 &pcfg_pull_none>;
1224 fephyled_speed10: fephyled-speed10 {
1225 rockchip,pins = <0 RK_PD6 1 &pcfg_pull_none>;
1228 fephyled_duplex: fephyled-duplex {
1229 rockchip,pins = <0 RK_PD6 2 &pcfg_pull_none>;
1232 fephyled_rxm0: fephyled-rxm0 {
1233 rockchip,pins = <0 RK_PD5 1 &pcfg_pull_none>;
1236 fephyled_txm0: fephyled-txm0 {
1237 rockchip,pins = <0 RK_PD5 2 &pcfg_pull_none>;
1240 fephyled_linkm0: fephyled-linkm0 {
1241 rockchip,pins = <0 RK_PD4 1 &pcfg_pull_none>;
1244 fephyled_rxm1: fephyled-rxm1 {
1245 rockchip,pins = <2 RK_PD1 2 &pcfg_pull_none>;
1248 fephyled_txm1: fephyled-txm1 {
1249 rockchip,pins = <2 RK_PD1 3 &pcfg_pull_none>;
1252 fephyled_linkm1: fephyled-linkm1 {
1253 rockchip,pins = <2 RK_PD0 2 &pcfg_pull_none>;
1258 tsadc_int: tsadc-int {
1259 rockchip,pins = <2 RK_PB5 2 &pcfg_pull_none>;
1261 tsadc_gpio: tsadc-gpio {
1262 rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
1267 hdmi_cec: hdmi-cec {
1268 rockchip,pins = <0 RK_PA3 1 &pcfg_pull_none>;
1271 hdmi_hpd: hdmi-hpd {
1272 rockchip,pins = <0 RK_PA4 1 &pcfg_pull_down>;
1277 dvp_d2d9_m0:dvp-d2d9-m0 {
1280 <3 RK_PA4 2 &pcfg_pull_none>,
1282 <3 RK_PA5 2 &pcfg_pull_none>,
1284 <3 RK_PA6 2 &pcfg_pull_none>,
1286 <3 RK_PA7 2 &pcfg_pull_none>,
1288 <3 RK_PB0 2 &pcfg_pull_none>,
1290 <3 RK_PB1 2 &pcfg_pull_none>,
1292 <3 RK_PB2 2 &pcfg_pull_none>,
1294 <3 RK_PB3 2 &pcfg_pull_none>,
1296 <3 RK_PA1 2 &pcfg_pull_none>,
1298 <3 RK_PA0 2 &pcfg_pull_none>,
1300 <3 RK_PA3 2 &pcfg_pull_none>,
1302 <3 RK_PA2 2 &pcfg_pull_none>;
1307 dvp_d2d9_m1:dvp-d2d9-m1 {
1310 <3 RK_PA4 2 &pcfg_pull_none>,
1312 <3 RK_PA5 2 &pcfg_pull_none>,
1314 <3 RK_PA6 2 &pcfg_pull_none>,
1316 <3 RK_PA7 2 &pcfg_pull_none>,
1318 <3 RK_PB0 2 &pcfg_pull_none>,
1320 <2 RK_PC0 4 &pcfg_pull_none>,
1322 <2 RK_PC1 4 &pcfg_pull_none>,
1324 <2 RK_PC2 4 &pcfg_pull_none>,
1326 <3 RK_PA1 2 &pcfg_pull_none>,
1328 <3 RK_PA0 2 &pcfg_pull_none>,
1330 <2 RK_PB7 4 &pcfg_pull_none>,
1332 <3 RK_PA2 2 &pcfg_pull_none>;