Merge tag 'v5.12-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorArnd Bergmann <arnd@arndb.de>
Tue, 9 Feb 2021 22:30:19 +0000 (23:30 +0100)
committerArnd Bergmann <arnd@arndb.de>
Tue, 9 Feb 2021 22:30:19 +0000 (23:30 +0100)
New boards: Radxa Rock Pi E, NanoPi M4B
More fixed indices for mmc nodes; removal of obsolete amba bus nodes;
nand-flash-controller nodes for px30 and rk3308; rk3399 pcie ranges fix;
board-level fixes for Helios64, NanoPi and Rock960; more sound support
for rock64 and rockpro64 and cleanups to make dt-bindings happier.

* tag 'v5.12-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (24 commits)
  arm64: dts: rockchip: more user friendly name of sound nodes
  arm64: dts: rockchip: rename pinctrl nodename to gmac2io for nanopi-r2s board
  arm64: dts: rockchip: assign a fixed index to mmc devices on rk3368 boards
  arm64: dts: rockchip: assign a fixed index to mmc devices on rk3308 boards
  arm64: dts: rockchip: assign a fixed index to mmc devices on px30 boards
  arm64: dts: rockchip: cleanup cpu_thermal node of rk3399-rock960.dts
  arm64: dts: rockchip: Remove bogus "amba" bus nodes
  arm64: dts: rockchip: Light "sys" LED on NanoPi R2S
  arm64: dts: rockchip: fix ranges property format for rk3399 pcie node
  arm64: dts: rockchip: Rely on SoC external pull up on pmic-int-l on Helios64
  arm64: dts: rockchip: Add NanoPi M4B board
  arm64: dts: rockchip: Move ep-gpios property to nanopc-t4 from nanopi4
  arm64: dts: rockchip: Add NFC node for PX30 SoC
  arm64: dts: rockchip: Add NFC node for RK3308 SoC
  arm64: dts: rockchip: rk3328: Add Radxa ROCK Pi E
  dt-bindings: arm: rockchip: Add Radxa ROCK Pi E
  arm64: dts: rockchip: rk3328: Add clock_in_out property to gmac2phy node
  arm64: dts: rockchip: rename thermal subnodes for rk3399
  arm64: dts: rockchip: rename thermal subnodes for rk3368
  arm64: dts: rockchip: add SPDIF node for rk3399-rockpro64
  ...

Link: https://lore.kernel.org/r/12699743.uLZWGnKmhe@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
16 files changed:
Documentation/devicetree/bindings/arm/rockchip.yaml
arch/arm64/boot/dts/rockchip/Makefile
arch/arm64/boot/dts/rockchip/px30.dtsi
arch/arm64/boot/dts/rockchip/rk3308.dtsi
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
arch/arm64/boot/dts/rockchip/rk3328.dtsi
arch/arm64/boot/dts/rockchip/rk3368.dtsi
arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts
arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4b.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
arch/arm64/boot/dts/rockchip/rk3399-rock960.dts
arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi
arch/arm64/boot/dts/rockchip/rk3399.dtsi

index ef4544a..8a2dd9f 100644 (file)
@@ -467,6 +467,11 @@ properties:
           - const: radxa,rockpi4
           - const: rockchip,rk3399
 
+      - description: Radxa ROCK Pi E
+        items:
+          - const: radxa,rockpi-e
+          - const: rockchip,rk3328
+
       - description: Radxa ROCK Pi N8
         items:
           - const: radxa,rockpi-n8
index 1ab55a1..62d3abc 100644 (file)
@@ -11,6 +11,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock-pi-e.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb
@@ -33,6 +34,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-kobol-helios64.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-leez-p710.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4b.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb
index 2695ea8..2c8ea4a 100644 (file)
@@ -25,6 +25,9 @@
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                i2c3 = &i2c3;
+               mmc0 = &sdmmc;
+               mmc1 = &sdio;
+               mmc2 = &emmc;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
                clock-names = "pclk", "timer";
        };
 
-       amba: bus {
-               compatible = "simple-bus";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               dmac: dmac@ff240000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x0 0xff240000 0x0 0x4000>;
-                       interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
-                       arm,pl330-periph-burst;
-                       clocks = <&cru ACLK_DMAC>;
-                       clock-names = "apb_pclk";
-                       #dma-cells = <1>;
-               };
+       dmac: dmac@ff240000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff240000 0x0 0x4000>;
+               interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
        };
 
        tsadc: tsadc@ff280000 {
                status = "disabled";
        };
 
+       nfc: nand-controller@ff3b0000 {
+               compatible = "rockchip,px30-nfc";
+               reg = <0x0 0xff3b0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>;
+               clock-names = "ahb", "nfc";
+               assigned-clocks = <&cru SCLK_NANDC>;
+               assigned-clock-rates = <150000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_cs0
+                            &flash_rdn &flash_rdy &flash_wrn &flash_dqs>;
+               power-domains = <&power PX30_PD_MMC_NAND>;
+               status = "disabled";
+       };
+
        gpu: gpu@ff400000 {
                compatible = "rockchip,px30-mali", "arm,mali-bifrost";
                reg = <0x0 0xff400000 0x0 0x4000>;
        };
 
        qos_gmac: qos@ff518000 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff518000 0x0 0x20>;
        };
 
        qos_gpu: qos@ff520000 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff520000 0x0 0x20>;
        };
 
        qos_sdmmc: qos@ff52c000 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff52c000 0x0 0x20>;
        };
 
        qos_emmc: qos@ff538000 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff538000 0x0 0x20>;
        };
 
        qos_nand: qos@ff538080 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff538080 0x0 0x20>;
        };
 
        qos_sdio: qos@ff538100 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff538100 0x0 0x20>;
        };
 
        qos_sfc: qos@ff538180 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff538180 0x0 0x20>;
        };
 
        qos_usb_host: qos@ff540000 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff540000 0x0 0x20>;
        };
 
        qos_usb_otg: qos@ff540080 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff540080 0x0 0x20>;
        };
 
        qos_isp_128: qos@ff548000 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff548000 0x0 0x20>;
        };
 
        qos_isp_rd: qos@ff548080 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff548080 0x0 0x20>;
        };
 
        qos_isp_wr: qos@ff548100 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff548100 0x0 0x20>;
        };
 
        qos_isp_m1: qos@ff548180 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff548180 0x0 0x20>;
        };
 
        qos_vip: qos@ff548200 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff548200 0x0 0x20>;
        };
 
        qos_rga_rd: qos@ff550000 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff550000 0x0 0x20>;
        };
 
        qos_rga_wr: qos@ff550080 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff550080 0x0 0x20>;
        };
 
        qos_vop_m0: qos@ff550100 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff550100 0x0 0x20>;
        };
 
        qos_vop_m1: qos@ff550180 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff550180 0x0 0x20>;
        };
 
        qos_vpu: qos@ff558000 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff558000 0x0 0x20>;
        };
 
        qos_vpu_r128: qos@ff558080 {
-               compatible = "syscon";
+               compatible = "rockchip,px30-qos", "syscon";
                reg = <0x0 0xff558080 0x0 0x20>;
        };
 
index 2560b98..3a035a1 100644 (file)
@@ -24,6 +24,9 @@
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                i2c3 = &i2c3;
+               mmc0 = &sdmmc;
+               mmc1 = &emmc;
+               mmc2 = &sdio;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
                status = "disabled";
        };
 
-       amba: bus {
-               compatible = "simple-bus";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
+       dmac0: dma-controller@ff2c0000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff2c0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC0>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
+       };
 
-               dmac0: dma-controller@ff2c0000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x0 0xff2c0000 0x0 0x4000>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
-                       arm,pl330-periph-burst;
-                       clocks = <&cru ACLK_DMAC0>;
-                       clock-names = "apb_pclk";
-                       #dma-cells = <1>;
-               };
-
-               dmac1: dma-controller@ff2d0000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x0 0xff2d0000 0x0 0x4000>;
-                       interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
-                       arm,pl330-periph-burst;
-                       clocks = <&cru ACLK_DMAC1>;
-                       clock-names = "apb_pclk";
-                       #dma-cells = <1>;
-               };
+       dmac1: dma-controller@ff2d0000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff2d0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC1>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
        };
 
        i2s_2ch_0: i2s@ff350000 {
                status = "disabled";
        };
 
+       nfc: nand-controller@ff4b0000 {
+               compatible = "rockchip,rk3308-nfc",
+                            "rockchip,rv1108-nfc";
+               reg = <0x0 0xff4b0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>;
+               clock-names = "ahb", "nfc";
+               assigned-clocks = <&cru SCLK_NANDC>;
+               assigned-clock-rates = <150000000>;
+               pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_csn0
+                            &flash_rdn &flash_rdy &flash_wrn>;
+               pinctrl-names = "default";
+               status = "disabled";
+       };
+
        cru: clock-controller@ff500000 {
                compatible = "rockchip,rk3308-cru";
                reg = <0x0 0xff500000 0x0 0x1000>;
index 2ee07d1..549121b 100644 (file)
@@ -50,6 +50,7 @@
                sys_led: led-1 {
                        gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
                        label = "nanopi-r2s:red:sys";
+                       default-state = "on";
                };
 
                wan_led: led-2 {
                };
        };
 
-       ethernet-phy {
+       gmac2io {
                eth_phy_reset_pin: eth-phy-reset-pin {
                        rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
                };
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts
new file mode 100644 (file)
index 0000000..2d71ca7
--- /dev/null
@@ -0,0 +1,382 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * (C) Copyright 2020 Chen-Yu Tsai <wens@csie.org>
+ *
+ * Based on ./rk3328-rock64.dts, which is
+ *
+ * Copyright (c) 2017 PINE64
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+
+#include "rk3328.dtsi"
+
+/ {
+       model = "Radxa ROCK Pi E";
+       compatible = "radxa,rockpi-e", "rockchip,rk3328";
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1750000>;
+
+               /* This button is unpopulated out of the factory. */
+               button-recovery {
+                       label = "Recovery";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <10000>;
+               };
+       };
+
+       gmac_clkin: external-gmac-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "gmac_clkin";
+               #clock-cells = <0>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&led_pin>;
+               pinctrl-names = "default";
+
+               led-0 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       vcc_sd: sdmmc-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc0m1_pin>;
+               regulator-name = "vcc_sd";
+               regulator-boot-on;
+               vin-supply = <&vcc_io>;
+       };
+
+       vcc_host_5v: vcc-host-5v-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb30_host_drv>;
+               enable-active-high;
+               regulator-name = "vcc_host_5v";
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vcc_sys: vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc_wifi: vcc-wifi-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_en>;
+               regulator-name = "vcc_wifi";
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc_io>;
+       };
+};
+
+&analog_sound {
+       status = "okay";
+};
+
+&codec {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&emmc {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
+       vmmc-supply = <&vcc_io>;
+       vqmmc-supply = <&vcc18_emmc>;
+       status = "okay";
+};
+
+&gmac2io {
+       assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
+       assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
+       clock_in_out = "input";
+       phy-handle = <&rtl8211e>;
+       phy-mode = "rgmii";
+       phy-supply = <&vcc_io>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmiim1_pins>;
+       snps,aal;
+       snps,rxpbl = <0x4>;
+       snps,txpbl = <0x4>;
+       tx_delay = <0x26>;
+       rx_delay = <0x11>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rtl8211e: ethernet-phy@1 {
+                       reg = <1>;
+                       pinctrl-0 = <&eth_phy_int_pin>, <&eth_phy_reset_pin>;
+                       pinctrl-names = "default";
+                       interrupt-parent = <&gpio1>;
+                       interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <50000>;
+                       reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gmac2phy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&fephyled_linkm1>, <&fephyled_rxm1>;
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       rk805: pmic@18 {
+               compatible = "rockchip,rk805";
+               reg = <0x18>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               clock-output-names = "xin32k", "rk805-clkout2";
+               gpio-controller;
+               #gpio-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc5-supply = <&vcc_io>;
+               vcc6-supply = <&vcc_sys>;
+
+               regulators {
+                       vdd_log: DCDC_REG1 {
+                               regulator-name = "vdd_log";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <712500>;
+                               regulator-max-microvolt = <1450000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vdd_arm: DCDC_REG2 {
+                               regulator-name = "vdd_arm";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <712500>;
+                               regulator-max-microvolt = <1450000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_io: DCDC_REG4 {
+                               regulator-name = "vcc_io";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_18: LDO_REG1 {
+                               regulator-name = "vcc_18";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc18_emmc: LDO_REG2 {
+                               regulator-name = "vcc18_emmc";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_10: LDO_REG3 {
+                               regulator-name = "vdd_10";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2s1 {
+       status = "okay";
+};
+
+&io_domains {
+       pmuio-supply = <&vcc_io>;
+       vccio1-supply = <&vcc_io>;
+       vccio2-supply = <&vcc18_emmc>;
+       vccio3-supply = <&vcc_io>;
+       vccio4-supply = <&vcc_io>;
+       vccio5-supply = <&vcc_io>;
+       vccio6-supply = <&vcc_io>;
+       status = "okay";
+};
+
+&pinctrl {
+       ephy {
+               eth_phy_int_pin: eth-phy-int-pin {
+                       rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               eth_phy_reset_pin: eth-phy-reset-pin {
+                       rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       leds {
+               led_pin: led-pin {
+                       rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb3 {
+               usb30_host_drv: usb30-host-drv {
+                       rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_en: wifi-en {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
+       vmmc-supply = <&vcc_sd>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_18>;
+       status = "okay";
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&u2phy {
+       status = "okay";
+};
+
+&u2phy_host {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
index 86cfb5c..c984662 100644 (file)
                };
        };
 
-       sound {
-               compatible = "audio-graph-card";
-               label = "rockchip,rk3328";
-               dais = <&i2s1_p0
-                       &spdif_p0>;
+       spdif_sound: spdif-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "SPDIF";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&spdif>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&spdif_dit>;
+               };
        };
 
-       spdif-dit {
+       spdif_dit: spdif-dit {
                compatible = "linux,spdif-dit";
                #sound-dai-cells = <0>;
-
-               port {
-                       dit_p0_0: endpoint {
-                               remote-endpoint = <&spdif_p0_0>;
-                       };
-               };
        };
 };
 
+&analog_sound {
+       status = "okay";
+};
+
 &codec {
        mute-gpios = <&grf_gpio 0 GPIO_ACTIVE_LOW>;
        status = "okay";
-
-       port@0 {
-               codec_p0_0: endpoint {
-                       remote-endpoint = <&i2s1_p0_0>;
-               };
-       };
 };
 
 &cpu0 {
        status = "okay";
 };
 
+&hdmi_sound {
+       status = "okay";
+};
+
 &hdmiphy {
        status = "okay";
 };
        };
 };
 
-&i2s1 {
+&i2s0 {
        status = "okay";
+};
 
-       i2s1_p0: port {
-               i2s1_p0_0: endpoint {
-                       dai-format = "i2s";
-                       mclk-fs = <256>;
-                       remote-endpoint = <&codec_p0_0>;
-               };
-       };
+&i2s1 {
+       status = "okay";
 };
 
 &io_domains {
 &spdif {
        pinctrl-0 = <&spdifm0_tx>;
        status = "okay";
-
-       spdif_p0: port {
-               spdif_p0_0: endpoint {
-                       remote-endpoint = <&dit_p0_0>;
-               };
-       };
 };
 
 &spi0 {
index db0d5c8..063ed0a 100644 (file)
@@ -27,6 +27,9 @@
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                i2c3 = &i2c3;
+               mmc0 = &sdmmc;
+               mmc1 = &sdio;
+               mmc2 = &emmc;
                ethernet0 = &gmac2io;
                ethernet1 = &gmac2phy;
        };
                };
        };
 
-       amba: bus {
-               compatible = "simple-bus";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               dmac: dmac@ff1f0000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x0 0xff1f0000 0x0 0x4000>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
-                       arm,pl330-periph-burst;
-                       clocks = <&cru ACLK_DMAC>;
-                       clock-names = "apb_pclk";
-                       #dma-cells = <1>;
-               };
-       };
-
        analog_sound: analog-sound {
                compatible = "simple-audio-card";
                simple-audio-card,format = "i2s";
                status = "disabled";
        };
 
+       dmac: dmac@ff1f0000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff1f0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
+       };
+
        thermal-zones {
                soc_thermal: soc-thermal {
                        polling-delay-passive = <20>;
                phy-mode = "rmii";
                phy-handle = <&phy>;
                snps,txpbl = <0x4>;
+               clock_in_out = "output";
                status = "disabled";
 
                mdio {
index 3746f23..7af68ec 100644 (file)
@@ -25,6 +25,9 @@
                i2c3 = &i2c3;
                i2c4 = &i2c4;
                i2c5 = &i2c5;
+               mmc0 = &sdmmc;
+               mmc1 = &sdio0;
+               mmc2 = &emmc;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
                };
        };
 
-       amba: bus {
-               compatible = "simple-bus";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               dmac_peri: dma-controller@ff250000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x0 0xff250000 0x0 0x4000>;
-                       interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
-                       #dma-cells = <1>;
-                       arm,pl330-broken-no-flushp;
-                       arm,pl330-periph-burst;
-                       clocks = <&cru ACLK_DMAC_PERI>;
-                       clock-names = "apb_pclk";
-               };
-
-               dmac_bus: dma-controller@ff600000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x0 0xff600000 0x0 0x4000>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
-                       #dma-cells = <1>;
-                       arm,pl330-broken-no-flushp;
-                       arm,pl330-periph-burst;
-                       clocks = <&cru ACLK_DMAC_BUS>;
-                       clock-names = "apb_pclk";
-               };
-       };
-
        arm-pmu {
                compatible = "arm,armv8-pmuv3";
                interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
                status = "disabled";
        };
 
+       dmac_peri: dma-controller@ff250000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff250000 0x0 0x4000>;
+               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+               #dma-cells = <1>;
+               arm,pl330-broken-no-flushp;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC_PERI>;
+               clock-names = "apb_pclk";
+       };
+
        thermal-zones {
-               cpu {
+               cpu_thermal: cpu-thermal {
                        polling-delay-passive = <100>; /* milliseconds */
                        polling-delay = <5000>; /* milliseconds */
 
                        };
                };
 
-               gpu {
+               gpu_thermal: gpu-thermal {
                        polling-delay-passive = <100>; /* milliseconds */
                        polling-delay = <5000>; /* milliseconds */
 
                status = "disabled";
        };
 
+       dmac_bus: dma-controller@ff600000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff600000 0x0 0x4000>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+               #dma-cells = <1>;
+               arm,pl330-broken-no-flushp;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC_BUS>;
+               clock-names = "apb_pclk";
+       };
+
        i2c0: i2c@ff650000 {
                compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
                reg = <0x0 0xff650000 0x0 0x1000>;
index 2a561be..66c725a 100644 (file)
 
        pmic {
                pmic_int_l: pmic-int-l {
-                       rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
+                       rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
 
index e0d7561..452728b 100644 (file)
@@ -95,6 +95,7 @@
 };
 
 &pcie0 {
+       ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
        num-lanes = <4>;
        vpcie3v3-supply = <&vcc3v3_sys>;
 };
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4b.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4b.dts
new file mode 100644 (file)
index 0000000..72182c5
--- /dev/null
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * FriendlyElec NanoPi M4B board device tree source
+ *
+ * Copyright (c) 2020 Chen-Yu Tsai <wens@csie.org>
+ */
+
+/dts-v1/;
+#include "rk3399-nanopi-m4.dts"
+
+/ {
+       model = "FriendlyElec NanoPi M4B";
+       compatible = "friendlyarm,nanopi-m4b", "rockchip,rk3399";
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1500000>;
+               poll-interval = <100>;
+
+               recovery {
+                       label = "Recovery";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <18000>;
+               };
+       };
+};
+
+/* No USB type-C PD power manager */
+/delete-node/ &fusb0;
+
+&i2c4 {
+       status = "disabled";
+};
+
+&u2phy0_host {
+       phy-supply = <&vcc5v0_usb2>;
+};
+
+&u2phy0_otg {
+       phy-supply = <&vbus_typec>;
+};
+
+&u2phy1_otg {
+       phy-supply = <&vcc5v0_usb1>;
+};
+
+&vbus_typec {
+       enable-active-high;
+       gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
+};
index 76a8b40..48ed4aa 100644 (file)
 };
 
 &pcie0 {
-       ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
        max-link-speed = <2>;
        num-lanes = <2>;
        vpcie0v9-supply = <&vcca0v9_s3>;
index c882957..1a23e8f 100644 (file)
 
 };
 
+&cpu_alert0 {
+       temperature = <65000>;
+};
+
+&cpu_thermal {
+       sustainable-power = <1550>;
+
+       cooling-maps {
+               map0 {
+                       trip = <&cpu_alert1>;
+               };
+       };
+};
+
 &pcie0 {
        ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
 };
        status = "okay";
 };
 
-&thermal_zones {
-       cpu_thermal: cpu {
-               polling-delay-passive = <100>;
-               polling-delay = <1000>;
-               thermal-sensors = <&tsadc 0>;
-               sustainable-power = <1550>;
-
-               trips {
-                       cpu_alert0: cpu_alert0 {
-                                   temperature = <65000>;
-                                   hysteresis = <2000>;
-                                   type = "passive";
-                       };
-
-                       cpu_alert1: cpu_alert1 {
-                                   temperature = <75000>;
-                                   hysteresis = <2000>;
-                                   type = "passive";
-                       };
-
-                       cpu_crit: cpu_crit {
-                                 temperature = <95000>;
-                                 hysteresis = <2000>;
-                                 type = "critical";
-                       };
-               };
-
-               cooling-maps {
-                            map0 {
-
-                            trip = <&cpu_alert1>;
-                            cooling-device =
-                                       <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                       <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                       };
-               };
-       };
-};
-
 &usbdrd_dwc3_0 {
        dr_mode = "otg";
 };
index 6e553ff..5ab0b9e 100644 (file)
 
        sound {
                compatible = "audio-graph-card";
-               label = "rockchip,rk3399";
+               label = "Analog";
                dais = <&i2s1_p0>;
        };
 
+       sound-dit {
+               compatible = "audio-graph-card";
+               label = "SPDIF";
+               dais = <&spdif_p0>;
+       };
+
+       spdif-dit {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+
+               port {
+                       dit_p0_0: endpoint {
+                               remote-endpoint = <&spdif_p0_0>;
+                       };
+               };
+       };
+
        vcc12v_dcin: vcc12v-dcin {
                compatible = "regulator-fixed";
                regulator-name = "vcc12v_dcin";
        status = "okay";
 };
 
+&spdif {
+       pinctrl-0 = <&spdif_bus_1>;
+
+       spdif_p0: port {
+               spdif_p0_0: endpoint {
+                       remote-endpoint = <&dit_p0_0>;
+               };
+       };
+};
+
 &spi1 {
        status = "okay";
 
index f5dee5f..4fa54c3 100644 (file)
                #clock-cells = <0>;
        };
 
-       amba: bus {
-               compatible = "simple-bus";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               dmac_bus: dma-controller@ff6d0000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x0 0xff6d0000 0x0 0x4000>;
-                       interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
-                                    <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
-                       #dma-cells = <1>;
-                       arm,pl330-periph-burst;
-                       clocks = <&cru ACLK_DMAC0_PERILP>;
-                       clock-names = "apb_pclk";
-               };
-
-               dmac_peri: dma-controller@ff6e0000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x0 0xff6e0000 0x0 0x4000>;
-                       interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
-                                    <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
-                       #dma-cells = <1>;
-                       arm,pl330-periph-burst;
-                       clocks = <&cru ACLK_DMAC1_PERILP>;
-                       clock-names = "apb_pclk";
-               };
-       };
-
        pcie0: pcie@f8000000 {
                compatible = "rockchip,rk3399-pcie";
                reg = <0x0 0xf8000000 0x0 0x2000000>,
                       <&pcie_phy 2>, <&pcie_phy 3>;
                phy-names = "pcie-phy-0", "pcie-phy-1",
                            "pcie-phy-2", "pcie-phy-3";
-               ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000
-                         0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
+               ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
+                        <0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
                resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
                         <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
                         <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
        };
 
        thermal_zones: thermal-zones {
-               cpu_thermal: cpu {
+               cpu_thermal: cpu-thermal {
                        polling-delay-passive = <100>;
                        polling-delay = <1000>;
 
                        };
                };
 
-               gpu_thermal: gpu {
+               gpu_thermal: gpu-thermal {
                        polling-delay-passive = <100>;
                        polling-delay = <1000>;
 
        };
 
        qos_emmc: qos@ffa58000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa58000 0x0 0x20>;
        };
 
        qos_gmac: qos@ffa5c000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa5c000 0x0 0x20>;
        };
 
        qos_pcie: qos@ffa60080 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa60080 0x0 0x20>;
        };
 
        qos_usb_host0: qos@ffa60100 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa60100 0x0 0x20>;
        };
 
        qos_usb_host1: qos@ffa60180 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa60180 0x0 0x20>;
        };
 
        qos_usb_otg0: qos@ffa70000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa70000 0x0 0x20>;
        };
 
        qos_usb_otg1: qos@ffa70080 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa70080 0x0 0x20>;
        };
 
        qos_sd: qos@ffa74000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa74000 0x0 0x20>;
        };
 
        qos_sdioaudio: qos@ffa76000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa76000 0x0 0x20>;
        };
 
        qos_hdcp: qos@ffa90000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa90000 0x0 0x20>;
        };
 
        qos_iep: qos@ffa98000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffa98000 0x0 0x20>;
        };
 
        qos_isp0_m0: qos@ffaa0000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffaa0000 0x0 0x20>;
        };
 
        qos_isp0_m1: qos@ffaa0080 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffaa0080 0x0 0x20>;
        };
 
        qos_isp1_m0: qos@ffaa8000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffaa8000 0x0 0x20>;
        };
 
        qos_isp1_m1: qos@ffaa8080 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffaa8080 0x0 0x20>;
        };
 
        qos_rga_r: qos@ffab0000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffab0000 0x0 0x20>;
        };
 
        qos_rga_w: qos@ffab0080 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffab0080 0x0 0x20>;
        };
 
        qos_video_m0: qos@ffab8000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffab8000 0x0 0x20>;
        };
 
        qos_video_m1_r: qos@ffac0000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffac0000 0x0 0x20>;
        };
 
        qos_video_m1_w: qos@ffac0080 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffac0080 0x0 0x20>;
        };
 
        qos_vop_big_r: qos@ffac8000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffac8000 0x0 0x20>;
        };
 
        qos_vop_big_w: qos@ffac8080 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffac8080 0x0 0x20>;
        };
 
        qos_vop_little: qos@ffad0000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffad0000 0x0 0x20>;
        };
 
        qos_perihp: qos@ffad8080 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffad8080 0x0 0x20>;
        };
 
        qos_gpu: qos@ffae0000 {
-               compatible = "syscon";
+               compatible = "rockchip,rk3399-qos", "syscon";
                reg = <0x0 0xffae0000 0x0 0x20>;
        };
 
                };
        };
 
+       dmac_bus: dma-controller@ff6d0000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff6d0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
+               #dma-cells = <1>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC0_PERILP>;
+               clock-names = "apb_pclk";
+       };
+
+       dmac_peri: dma-controller@ff6e0000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff6e0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
+               #dma-cells = <1>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC1_PERILP>;
+               clock-names = "apb_pclk";
+       };
+
        pmucru: pmu-clock-controller@ff750000 {
                compatible = "rockchip,rk3399-pmucru";
                reg = <0x0 0xff750000 0x0 0x1000>;