arm64: dts: rockchip: add clk-480m for ehci and ohci of rk3399
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / boot / dts / rockchip / rk3399.dtsi
index 8d693cff4b4fe1a250046092fa29929b0f23ff57..d51384898111cfd1533547be0daa8fe28b1d5113 100644 (file)
                compatible = "operating-points-v2";
                opp-shared;
 
-               opp00 {
+               opp@408000000 {
                        opp-hz = /bits/ 64 <408000000>;
                        opp-microvolt = <800000>;
                        clock-latency-ns = <40000>;
                };
-               opp01 {
+               opp@600000000 {
                        opp-hz = /bits/ 64 <600000000>;
                        opp-microvolt = <800000>;
                };
-               opp02 {
+               opp@816000000 {
                        opp-hz = /bits/ 64 <816000000>;
                        opp-microvolt = <800000>;
                };
-               opp03 {
+               opp@1008000000 {
                        opp-hz = /bits/ 64 <1008000000>;
                        opp-microvolt = <875000>;
                };
-               opp04 {
+               opp@1200000000 {
                        opp-hz = /bits/ 64 <1200000000>;
                        opp-microvolt = <925000>;
                };
-               opp05 {
+               opp@1416000000 {
                        opp-hz = /bits/ 64 <1416000000>;
                        opp-microvolt = <1025000>;
                };
                compatible = "operating-points-v2";
                opp-shared;
 
-               opp00 {
+               opp@408000000 {
                        opp-hz = /bits/ 64 <408000000>;
                        opp-microvolt = <800000>;
                        clock-latency-ns = <40000>;
                };
-               opp01 {
+               opp@600000000 {
                        opp-hz = /bits/ 64 <600000000>;
                        opp-microvolt = <800000>;
                };
-               opp02 {
+               opp@816000000 {
                        opp-hz = /bits/ 64 <816000000>;
                        opp-microvolt = <800000>;
                };
-               opp03 {
+               opp@1008000000 {
                        opp-hz = /bits/ 64 <1008000000>;
                        opp-microvolt = <850000>;
                };
-               opp04 {
+               opp@1200000000 {
                        opp-hz = /bits/ 64 <1200000000>;
                        opp-microvolt = <925000>;
                };
                status = "disabled";
        };
 
-       usb2phy: usb2phy {
-               compatible = "rockchip,rk3399-usb-phy";
-               rockchip,grf = <&grf>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               usb2phy0: usb2-phy0 {
-                       #phy-cells = <0>;
-                       #clock-cells = <0>;
-                       reg = <0xe458>;
-               };
-
-               usb2phy1: usb2-phy1 {
-                       #phy-cells = <0>;
-                       #clock-cells = <0>;
-                       reg = <0xe468>;
-               };
-       };
-
        usb_host0_ehci: usb@fe380000 {
                compatible = "generic-ehci";
                reg = <0x0 0xfe380000 0x0 0x20000>;
                interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>;
-               clock-names = "hclk_host0", "hclk_host0_arb";
-               phys = <&usb2phy0>;
-               phy-names = "usb2_phy0";
+               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
+                        <&cru SCLK_USBPHY0_480M_SRC>;
+               clock-names = "hclk_host0", "hclk_host0_arb", "usbphy0_480m";
+               phys = <&u2phy0_host>;
+               phy-names = "usb";
                status = "disabled";
        };
 
                compatible = "generic-ohci";
                reg = <0x0 0xfe3a0000 0x0 0x20000>;
                interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>;
-               clock-names = "hclk_host0", "hclk_host0_arb";
+               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
+                        <&cru SCLK_USBPHY0_480M_SRC>;
+               clock-names = "hclk_host0", "hclk_host0_arb", "usbphy0_480m";
+               phys = <&u2phy0_host>;
+               phy-names = "usb";
                status = "disabled";
        };
 
                compatible = "generic-ehci";
                reg = <0x0 0xfe3c0000 0x0 0x20000>;
                interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>;
-               clock-names = "hclk_host1", "hclk_host1_arb";
-               phys = <&usb2phy1>;
-               phy-names = "usb2_phy1";
+               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
+                        <&cru SCLK_USBPHY1_480M_SRC>;
+               clock-names = "hclk_host1", "hclk_host1_arb", "usbphy1_480m";
+               phys = <&u2phy1_host>;
+               phy-names = "usb";
                status = "disabled";
        };
 
                compatible = "generic-ohci";
                reg = <0x0 0xfe3e0000 0x0 0x20000>;
                interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>;
-               clock-names = "hclk_host1", "hclk_host1_arb";
+               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
+                        <&cru SCLK_USBPHY1_480M_SRC>;
+               clock-names = "hclk_host1", "hclk_host1_arb", "usbphy1_480m";
+               phys = <&u2phy1_host>;
+               phy-names = "usb";
                status = "disabled";
        };
 
 
        thermal-zones {
                soc_thermal: soc-thermal {
-                       polling-delay-passive = <100>; /* milliseconds */
+                       polling-delay-passive = <20>; /* milliseconds */
                        polling-delay = <1000>; /* milliseconds */
-                       sustainable-power = <2600>; /* milliwatts */
+                       sustainable-power = <1600>; /* milliwatts */
 
                        thermal-sensors = <&tsadc 0>;
 
                                        trip = <&target>;
                                        cooling-device =
                                                <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                                       contribution = <10240>;
                                };
                                map1 {
                                        trip = <&target>;
                                        cooling-device =
                                                <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                                       contribution = <1024>;
                                };
                                map2 {
                                        trip = <&target>;
                                        cooling-device =
                                                <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                                       contribution = <10240>;
                                };
                        };
                };
                status = "disabled";
        };
 
-       qos_gpu: qos_gpu@0xffae0000 {
-               compatible ="syscon";
-               reg = <0x0 0xffae0000 0x0 0x20>;
+       qos_hdcp: qos@ffa90000 {
+               compatible = "syscon";
+               reg = <0x0 0xffa90000 0x0 0x20>;
        };
-       qos_video_m0: qos_video_m0@0xffab8000 {
-               compatible ="syscon";
-               reg = <0x0 0xffab8000 0x0 0x20>;
+
+       qos_iep: qos@ffa98000 {
+               compatible = "syscon";
+               reg = <0x0 0xffa98000 0x0 0x20>;
        };
-       qos_video_m1_r: qos_video_m1_r@0xffac0000 {
-               compatible ="syscon";
-               reg = <0x0 0xffac0000 0x0 0x20>;
+
+       qos_isp0_m0: qos@ffaa0000 {
+               compatible = "syscon";
+               reg = <0x0 0xffaa0000 0x0 0x20>;
        };
-       qos_video_m1_w: qos_video_m1_w@0xffac0080 {
-               compatible ="syscon";
-               reg = <0x0 0xffac0080 0x0 0x20>;
+
+       qos_isp0_m1: qos@ffaa0080 {
+               compatible = "syscon";
+               reg = <0x0 0xffaa0080 0x0 0x20>;
        };
-       qos_rga_r: qos_rga_r@0xffab0000 {
-               compatible ="syscon";
-               reg = <0x0 0xffab0000 0x0 0x20>;
+
+       qos_isp1_m0: qos@ffaa8000 {
+               compatible = "syscon";
+               reg = <0x0 0xffaa8000 0x0 0x20>;
        };
-       qos_rga_w: qos_rga_w@0xffab0080 {
-               compatible ="syscon";
-               reg = <0x0 0xffab0000 0x0 0x20>;
+
+       qos_isp1_m1: qos@ffaa8080 {
+               compatible = "syscon";
+               reg = <0x0 0xffaa8080 0x0 0x20>;
        };
-       qos_iep: qos_iep@0xffa98000 {
-               compatible ="syscon";
-               reg = <0x0 0xffa98000 0x0 0x20>;
+
+       qos_rga_r: qos@ffab0000 {
+               compatible = "syscon";
+               reg = <0x0 0xffab0000 0x0 0x20>;
        };
-       qos_vop_big_r: qos_vop_big_r@0xffac8000 {
-               compatible ="syscon";
-               reg = <0x0 0xffac8000 0x0 0x20>;
+
+       qos_rga_w: qos@ffab0080 {
+               compatible = "syscon";
+               reg = <0x0 0xffab0080 0x0 0x20>;
        };
-       qos_vop_big_w: qos_vop_big_w@0xffac8080 {
-               compatible ="syscon";
-               reg = <0x0 0xffac8080 0x0 0x20>;
+
+       qos_video_m0: qos@ffab8000 {
+               compatible = "syscon";
+               reg = <0x0 0xffab8000 0x0 0x20>;
        };
-       qos_vop_little: qos_vop_little@0xffad0000 {
-               compatible ="syscon";
-               reg = <0x0 0xffad0000 0x0 0x20>;
+
+       qos_video_m1_r: qos@ffac0000 {
+               compatible = "syscon";
+               reg = <0x0 0xffac0000 0x0 0x20>;
        };
-       qos_isp0_m0: qos_isp0_m0@0xffaa0000 {
-               compatible ="syscon";
-               reg = <0x0 0xffaa0000 0x0 0x20>;
+
+       qos_video_m1_w: qos@ffac0080 {
+               compatible = "syscon";
+               reg = <0x0 0xffac0080 0x0 0x20>;
        };
-       qos_isp0_m1: qos_isp0_m1@0xffaa0080 {
-               compatible ="syscon";
-               reg = <0x0 0xffaa0080 0x0 0x20>;
+
+       qos_vop_big_r: qos@ffac8000 {
+               compatible = "syscon";
+               reg = <0x0 0xffac8000 0x0 0x20>;
        };
-       qos_isp1_m0: qos_isp1_m0@0xffaa8000 {
-               compatible ="syscon";
-               reg = <0x0 0xffaa8000 0x0 0x20>;
+
+       qos_vop_big_w: qos@ffac8080 {
+               compatible = "syscon";
+               reg = <0x0 0xffac8080 0x0 0x20>;
        };
-       qos_isp1_m1: qos_isp1_m1@0xffaa8080 {
-               compatible ="syscon";
-               reg = <0x0 0xffaa8080 0x0 0x20>;
+
+       qos_vop_little: qos@ffad0000 {
+               compatible = "syscon";
+               reg = <0x0 0xffad0000 0x0 0x20>;
        };
-       qos_hdcp: qos_hdcp@0xffa90000 {
-               compatible ="syscon";
-               reg = <0x0 0xffa90000 0x0 0x20>;
+
+       qos_gpu: qos@ffae0000 {
+               compatible = "syscon";
+               reg = <0x0 0xffae0000 0x0 0x20>;
        };
 
        pmu: power-management@ff310000 {
                compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
                reg = <0x0 0xff310000 0x0 0x1000>;
 
+               /*
+                * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
+                * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
+                * Some of the power domains are grouped together for every
+                * voltage domain.
+                * The detail contents as below.
+                */
                power: power-controller {
-                       status = "okay";
                        compatible = "rockchip,rk3399-power-controller";
                        #power-domain-cells = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-
-                       pd_vdu {
-                               reg = <RK3399_PD_VDU>;
-                               clocks = <&cru ACLK_VDU>,
-                                        <&cru HCLK_VDU>;
-                               pm_qos = <&qos_video_m1_r>,
-                                        <&qos_video_m1_w>;
-                       };
-                       pd_vcodec {
-                               reg = <RK3399_PD_VCODEC>;
-                               clocks = <&cru ACLK_VCODEC>,
-                                        <&cru HCLK_VCODEC>;
-                               pm_qos = <&qos_video_m0>;
-                       };
-                       pd_iep {
+                       /* These power domains are grouped by VD_CENTER */
+                       pd_iep@RK3399_PD_IEP {
                                reg = <RK3399_PD_IEP>;
                                clocks = <&cru ACLK_IEP>,
                                         <&cru HCLK_IEP>;
                                pm_qos = <&qos_iep>;
                        };
-                       pd_rga {
+                       pd_rga@RK3399_PD_RGA {
                                reg = <RK3399_PD_RGA>;
                                clocks = <&cru ACLK_RGA>,
                                         <&cru HCLK_RGA>;
                                pm_qos = <&qos_rga_r>,
                                         <&qos_rga_w>;
                        };
-                       pd_vio {
+                       pd_vcodec@RK3399_PD_VCODEC {
+                               reg = <RK3399_PD_VCODEC>;
+                               clocks = <&cru ACLK_VCODEC>,
+                                        <&cru HCLK_VCODEC>;
+                               pm_qos = <&qos_video_m0>;
+                       };
+                       pd_vdu@RK3399_PD_VDU {
+                               reg = <RK3399_PD_VDU>;
+                               clocks = <&cru ACLK_VDU>,
+                                        <&cru HCLK_VDU>;
+                               pm_qos = <&qos_video_m1_r>,
+                                        <&qos_video_m1_w>;
+                       };
+
+                       /* These power domains are grouped by VD_GPU */
+                       pd_gpu@RK3399_PD_GPU {
+                               reg = <RK3399_PD_GPU>;
+                               clocks = <&cru ACLK_GPU>;
+                               pm_qos = <&qos_gpu>;
+                       };
+
+                       /* These power domains are grouped by VD_LOGIC */
+                       pd_vio@RK3399_PD_VIO {
                                reg = <RK3399_PD_VIO>;
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               pd_isp0 {
+                               pd_hdcp@RK3399_PD_HDCP {
+                                       reg = <RK3399_PD_HDCP>;
+                                       clocks = <&cru ACLK_HDCP>,
+                                                <&cru HCLK_HDCP>,
+                                                <&cru PCLK_HDCP>;
+                                       pm_qos = <&qos_hdcp>;
+                               };
+                               pd_isp0@RK3399_PD_ISP0 {
                                        reg = <RK3399_PD_ISP0>;
                                        clocks = <&cru ACLK_ISP0>,
                                                 <&cru HCLK_ISP0>;
                                        pm_qos = <&qos_isp0_m0>,
                                                 <&qos_isp0_m1>;
                                };
-                               pd_isp1 {
+                               pd_isp1@RK3399_PD_ISP1 {
                                        reg = <RK3399_PD_ISP1>;
                                        clocks = <&cru ACLK_ISP1>,
                                                 <&cru HCLK_ISP1>;
                                        pm_qos = <&qos_isp1_m0>,
                                                 <&qos_isp1_m1>;
                                };
-                               pd_hdcp {
-                                       reg = <RK3399_PD_HDCP>;
-                                       clocks = <&cru ACLK_HDCP>,
-                                                <&cru HCLK_HDCP>,
-                                                <&cru PCLK_HDCP>;
-                                       pm_qos = <&qos_hdcp>;
-                               };
-                               pd_vo {
+                               pd_vo@RK3399_PD_VO {
                                        reg = <RK3399_PD_VO>;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
-                                       pd_vopb {
+                                       pd_vopb@RK3399_PD_VOPB {
                                                reg = <RK3399_PD_VOPB>;
                                                clocks = <&cru ACLK_VOP0>,
                                                         <&cru HCLK_VOP0>;
                                                pm_qos = <&qos_vop_big_r>,
                                                         <&qos_vop_big_w>;
                                        };
-                                       pd_vopl {
+                                       pd_vopl@RK3399_PD_VOPL {
                                                reg = <RK3399_PD_VOPL>;
                                                clocks = <&cru ACLK_VOP1>,
                                                         <&cru HCLK_VOP1>;
                                        };
                                };
                        };
-                       pd_gpu {
-                               reg = <RK3399_PD_GPU>;
-                               clocks = <&cru ACLK_GPU>;
-                               pm_qos = <&qos_gpu>;
-                       };
                };
        };
 
        };
 
        grf: syscon@ff770000 {
-               compatible = "rockchip,rk3399-grf", "syscon";
+               compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
                reg = <0x0 0xff770000 0x0 0x10000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy0: usb2-phy@e450 {
+                       compatible = "rockchip,rk3399-usb2phy";
+                       reg = <0xe450 0x10>;
+                       clocks = <&cru SCLK_USB2PHY0_REF>;
+                       clock-names = "phyclk";
+                       #clock-cells = <0>;
+                       clock-output-names = "clk_usbphy0_480m";
+                       status = "disabled";
+
+                       u2phy0_otg: otg-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "otg-bvalid", "otg-id",
+                                                 "linestate";
+                               status = "disabled";
+                       };
+
+                       u2phy0_host: host-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "linestate";
+                               status = "disabled";
+                       };
+               };
+
+               u2phy1: usb2-phy@e460 {
+                       compatible = "rockchip,rk3399-usb2phy";
+                       reg = <0xe460 0x10>;
+                       clocks = <&cru SCLK_USB2PHY1_REF>;
+                       clock-names = "phyclk";
+                       #clock-cells = <0>;
+                       clock-output-names = "clk_usbphy1_480m";
+                       status = "disabled";
+
+                       u2phy1_host: host-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "linestate";
+                               status = "disabled";
+                       };
+               };
+       };
+
+       tcphy0: phy@ff7c0000 {
+               compatible = "rockchip,rk3399-typec-phy";
+               reg = <0x0 0xff7c0000 0x0 0x40000>;
+               rockchip,grf = <&grf>;
+               #phy-cells = <0>;
+               clocks = <&cru SCLK_UPHY0_TCPDCORE>,
+                        <&cru SCLK_UPHY0_TCPDPHY_REF>;
+               clock-names = "tcpdcore", "tcpdphy-ref";
+               resets = <&cru SRST_UPHY0>,
+                        <&cru SRST_UPHY0_PIPE_L00>,
+                        <&cru SRST_P_UPHY0_TCPHY>;
+               reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
+               rockchip,typec-conn-dir = <0xe580 0 16>;
+               rockchip,usb3tousb2-en = <0xe580 3 19>;
+               rockchip,external-psm = <0xe588 14 30>;
+               rockchip,pipe-status = <0xe5c0 0 0>;
+               rockchip,uphy-dp-sel = <0x6268 19 19>;
+               status = "disabled";
+       };
+
+       tcphy1: phy@ff800000 {
+               compatible = "rockchip,rk3399-typec-phy";
+               reg = <0x0 0xff800000 0x0 0x40000>;
+               rockchip,grf = <&grf>;
+               #phy-cells = <0>;
+               clocks = <&cru SCLK_UPHY1_TCPDCORE>,
+                        <&cru SCLK_UPHY1_TCPDPHY_REF>;
+               clock-names = "tcpdcore", "tcpdphy-ref";
+               resets = <&cru SRST_UPHY1>,
+                        <&cru SRST_UPHY1_PIPE_L00>,
+                        <&cru SRST_P_UPHY1_TCPHY>;
+               reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
+               rockchip,typec-conn-dir = <0xe58c 0 16>;
+               rockchip,usb3tousb2-en = <0xe58c 3 19>;
+               rockchip,external-psm = <0xe594 14 30>;
+               rockchip,pipe-status = <0xe5c0 16 16>;
+               rockchip,uphy-dp-sel = <0x6268 3 19>;
+               status = "disabled";
        };
 
        watchdog@ff840000 {
                compatible = "operating-points-v2";
                opp-shared;
 
-               opp00 {
+               opp@200000000 {
                        opp-hz = /bits/ 64 <200000000>;
                        opp-microvolt = <900000>;
                };
-               opp01 {
+               opp@300000000 {
                        opp-hz = /bits/ 64 <300000000>;
                        opp-microvolt = <900000>;
                };
-               opp02 {
+               opp@400000000 {
                        opp-hz = /bits/ 64 <400000000>;
                        opp-microvolt = <900000>;
                };
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
                resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
                reset-names = "axi", "ahb", "dclk";
+               power-domains = <&power RK3399_PD_VOPL>;
                iommus = <&vopl_mmu>;
                status = "disabled";
 
                                reg = <1>;
                                remote-endpoint = <&edp_in_vopl>;
                        };
+
+                       vopl_out_hdmi: endpoint@2 {
+                               reg = <2>;
+                               remote-endpoint = <&hdmi_in_vopl>;
+                       };
                };
        };
 
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
                resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
                reset-names = "axi", "ahb", "dclk";
+               power-domains = <&power RK3399_PD_VOPB>;
                iommus = <&vopb_mmu>;
                status = "disabled";
 
                                reg = <1>;
                                remote-endpoint = <&mipi_in_vopb>;
                        };
+
+                       vopb_out_hdmi: endpoint@2 {
+                               reg = <2>;
+                               remote-endpoint = <&hdmi_in_vopb>;
+                       };
                };
        };
 
                status = "disabled";
        };
 
+       hdmi: hdmi@ff940000 {
+               compatible = "rockchip,rk3399-dw-hdmi";
+               reg = <0x0 0xff940000 0x0 0x20000>;
+               reg-io-width = <4>;
+               rockchip,grf = <&grf>;
+               power-domains = <&power RK3399_PD_HDCP>;
+               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>, <&cru SCLK_HDMI_SFR>, <&cru PCLK_EDP_CTRL>;
+               clock-names = "iahb", "isfr", "vpll", "grf";
+               status = "disabled";
+
+               ports {
+                       hdmi_in: port {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               hdmi_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_hdmi>;
+                               };
+                               hdmi_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_hdmi>;
+                               };
+                       };
+               };
+       };
+
        mipi_dsi: mipi@ff960000 {
                compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
                reg = <0x0 0xff960000 0x0 0x8000>;
                clocks = <&cru SCLK_MIPIDPHY_REF>, <&cru PCLK_MIPI_DSI0>,
                         <&cru SCLK_DPHY_TX0_CFG>;
                clock-names = "ref", "pclk", "phy_cfg";
+               power-domains = <&power RK3399_PD_VIO>;
                rockchip,grf = <&grf>;
                #address-cells = <1>;
                #size-cells = <0>;
                                rockchip,pins =
                                        <4 21 RK_FUNC_1 &pcfg_pull_none>;
                        };
+
+                       spdif_bus_1: spdif-bus-1 {
+                               rockchip,pins =
+                                       <3 16 RK_FUNC_3 &pcfg_pull_none>;
+                       };
                };
 
                spi0 {