]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
rockchip: Adjust rk3399 device tree to be closer to linux
authorSimon Glass <sjg@chromium.org>
Mon, 21 Jan 2019 21:53:25 +0000 (14:53 -0700)
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Fri, 1 Feb 2019 15:59:12 +0000 (16:59 +0100)
This file has changed upstream, with some additions and changes. Move the
U-Boot version towards this.

Some USB changes seem to be incompatible with how the bindings work on
rockchip in U-Boot. Testing is needed to make sure that USB still works
correct, and adjust the code (not device tree) if not.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
arch/arm/dts/rk3399.dtsi

index 21f156782f8a33931aec0ba719047705b818eda4..b53e41b4dcd9c037d8cc508b6a5cf5bbc1180ae4 100644 (file)
                status = "disabled";
        };
 
-       dwc3_typec0: usb@fe800000 {
-               compatible = "rockchip,rk3399-xhci";
-               reg = <0x0 0xfe800000 0x0 0x100000>;
+       usbdrd3_0: dwc3_typec0: usb@fe800000 {
+               compatible = "rockchip,rk3399-dwc3";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
+                        <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
+                        <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
+               clock-names = "ref_clk", "suspend_clk",
+                             "bus_clk", "aclk_usb3_rksoc_axi_perf",
+                             "aclk_usb3", "grf_clk";
+               resets = <&cru SRST_A_USB3_OTG0>;
+               reset-names = "usb3-otg";
                status = "disabled";
-               snps,dis-enblslpm-quirk;
-               snps,phyif-utmi-bits = <16>;
-               snps,dis-u2-freeclk-exists-quirk;
-               snps,dis-u2-susphy-quirk;
 
+               usbdrd_dwc3_0: dwc3 {
+                       compatible = "snps,dwc3";
+                       reg = <0x0 0xfe800000 0x0 0x100000>;
+                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
+                       dr_mode = "otg";
+                       phys = <&u2phy0_otg>, <&tcphy0_usb3>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       phy_type = "utmi_wide";
+                       snps,dis_enblslpm_quirk;
+                       snps,dis-u2-freeclk-exists-quirk;
+                       snps,dis_u2_susphy_quirk;
+                       snps,dis-del-phy-power-chg-quirk;
+                       snps,dis-tx-ipgap-linecheck-quirk;
+                       power-domains = <&power RK3399_PD_USB3>;
+                       status = "disabled";
+               };
+       };
+
+       dwc3_typec1: usbdrd3_1: usb@fe900000 {
+               compatible = "rockchip,rk3399-dwc3";
                #address-cells = <2>;
                #size-cells = <2>;
-               hub {
-                       compatible = "usb-hub";
-                       usb,device-class = <USB_CLASS_HUB>;
-               };
-               typec_phy0 {
-                       compatible = "rockchip,rk3399-usb3-phy";
-                       reg = <0x0 0xff7c0000 0x0 0x40000>;
+               ranges;
+               clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
+                        <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
+                        <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
+               clock-names = "ref_clk", "suspend_clk",
+                             "bus_clk", "aclk_usb3_rksoc_axi_perf",
+                             "aclk_usb3", "grf_clk";
+               resets = <&cru SRST_A_USB3_OTG1>;
+               reset-names = "usb3-otg";
+               status = "disabled";
+
+               usbdrd_dwc3_1: dwc3 {
+                       compatible = "snps,dwc3";
+                       reg = <0x0 0xfe900000 0x0 0x100000>;
+                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
+                       dr_mode = "otg";
+                       phys = <&u2phy1_otg>, <&tcphy1_usb3>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       phy_type = "utmi_wide";
+                       snps,dis_enblslpm_quirk;
+                       snps,dis-u2-freeclk-exists-quirk;
+                       snps,dis_u2_susphy_quirk;
+                       snps,dis-del-phy-power-chg-quirk;
+                       snps,dis-tx-ipgap-linecheck-quirk;
+                       power-domains = <&power RK3399_PD_USB3>;
+                       status = "disabled";
                };
        };
 
-       dwc3_typec1: usb@fe900000 {
-               compatible = "rockchip,rk3399-xhci";
-               reg = <0x0 0xfe900000 0x0 0x100000>;
+       cdn_dp: dp@fec00000 {
+               compatible = "rockchip,rk3399-cdn-dp";
+               reg = <0x0 0xfec00000 0x0 0x100000>;
+               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru SCLK_DP_CORE>, <&cru SCLK_SPDIF_REC_DPTX>;
+               assigned-clock-rates = <100000000>, <200000000>;
+               clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>,
+                        <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>;
+               clock-names = "core-clk", "pclk", "spdif", "grf";
+               phys = <&tcphy0_dp>, <&tcphy1_dp>;
+               power-domains = <&power RK3399_PD_HDCP>;
+               resets = <&cru SRST_DPTX_SPDIF_REC>, <&cru SRST_P_UPHY0_DPTX>,
+                        <&cru SRST_P_UPHY0_APB>, <&cru SRST_DP_CORE>;
+               reset-names = "spdif", "dptx", "apb", "core";
+               rockchip,grf = <&grf>;
+               #sound-dai-cells = <1>;
                status = "disabled";
-               snps,dis-enblslpm-quirk;
-               snps,phyif-utmi-bits = <16>;
-               snps,dis-u2-freeclk-exists-quirk;
-               snps,dis-u2-susphy-quirk;
 
-               #address-cells = <2>;
-               #size-cells = <2>;
-               hub {
-                       compatible = "usb-hub";
-                       usb,device-class = <USB_CLASS_HUB>;
-               };
-               typec_phy1 {
-                       compatible = "rockchip,rk3399-usb3-phy";
-                       reg = <0x0 0xff800000 0x0 0x40000>;
+               ports {
+                       dp_in: port {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               dp_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_dp>;
+                               };
+
+                               dp_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_dp>;
+                               };
+                       };
                };
        };
 
                status = "disabled";
        };
 
+       i2c0: i2c@ff3c0000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff3c0000 0x0 0x1000>;
+               assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c0_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
        i2c4: i2c@ff3d0000 {
                compatible = "rockchip,rk3399-i2c";
                reg = <0x0 0xff3d0000 0x0 0x1000>;
                        <&cru PCLK_PERIHP>,
                        <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
                        <&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
-                       <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>;
+                       <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
+                       <&cru ACLK_VIO>, <&cru ACLK_HDCP>,
+                       <&cru ACLK_GIC_PRE>,
+                       <&cru PCLK_DDR>;
                assigned-clock-rates =
                         <594000000>,  <800000000>,
                        <1000000000>,
                          <37500000>,
                         <100000000>,  <100000000>,
                          <50000000>, <600000000>,
-                        <100000000>,   <50000000>;
+                        <100000000>,   <50000000>,
+                        <400000000>, <400000000>,
+                        <200000000>,
+                        <200000000>;
        };
 
        grf: syscon@ff770000 {
                };
        };
 
+       tcphy0: phy@ff7c0000 {
+               compatible = "rockchip,rk3399-typec-phy";
+               reg = <0x0 0xff7c0000 0x0 0x40000>;
+               clocks = <&cru SCLK_UPHY0_TCPDCORE>,
+                        <&cru SCLK_UPHY0_TCPDPHY_REF>;
+               clock-names = "tcpdcore", "tcpdphy-ref";
+               assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
+               assigned-clock-rates = <50000000>;
+               power-domains = <&power RK3399_PD_TCPD0>;
+               resets = <&cru SRST_UPHY0>,
+                        <&cru SRST_UPHY0_PIPE_L00>,
+                        <&cru SRST_P_UPHY0_TCPHY>;
+               reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               tcphy0_dp: dp-port {
+                       #phy-cells = <0>;
+               };
+
+               tcphy0_usb3: usb3-port {
+                       #phy-cells = <0>;
+               };
+       };
+
+       tcphy1: phy@ff800000 {
+               compatible = "rockchip,rk3399-typec-phy";
+               reg = <0x0 0xff800000 0x0 0x40000>;
+               clocks = <&cru SCLK_UPHY1_TCPDCORE>,
+                        <&cru SCLK_UPHY1_TCPDPHY_REF>;
+               clock-names = "tcpdcore", "tcpdphy-ref";
+               assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
+               assigned-clock-rates = <50000000>;
+               power-domains = <&power RK3399_PD_TCPD1>;
+               resets = <&cru SRST_UPHY1>,
+                        <&cru SRST_UPHY1_PIPE_L00>,
+                        <&cru SRST_P_UPHY1_TCPHY>;
+               reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               tcphy1_dp: dp-port {
+                       #phy-cells = <0>;
+               };
+
+               tcphy1_usb3: usb3-port {
+                       #phy-cells = <0>;
+               };
+       };
+
        watchdog@ff848000 {
                compatible = "snps,dw-wdt";
                reg = <0x0 0xff848000 0x0 0x100>;
                pinctrl-names = "default";
                pinctrl-0 = <&spdif_bus>;
                power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               #sound-dai-cells = <0>;
                status = "disabled";
        };
 
                pinctrl-names = "default";
                pinctrl-0 = <&i2s0_8ch_bus>;
                power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               #sound-dai-cells = <0>;
                status = "disabled";
        };
 
                pinctrl-names = "default";
                pinctrl-0 = <&i2s1_2ch_bus>;
                power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               #sound-dai-cells = <0>;
                status = "disabled";
        };
 
                clock-names = "i2s_clk", "i2s_hclk";
                clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
                power-domains = <&power RK3399_PD_SDIOAUDIO>;
-               status = "disabled";
-       };
-
-       i2c0: i2c@ff3c0000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff3c0000 0x0 0x1000>;
-               assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c0_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
+               #sound-dai-cells = <0>;
                status = "disabled";
        };
 
                compatible = "rockchip,rk3399-vop-lit";
                reg = <0x0 0xff8f0000 0x0 0x3efc>;
                interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
+               assigned-clock-rates = <400000000>, <100000000>;
                clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               iommus = <&vopl_mmu>;
+               power-domains = <&power RK3399_PD_VOPL>;
                resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
                reset-names = "axi", "ahb", "dclk";
                status = "disabled";
+
                vopl_out: port {
                        #address-cells = <1>;
                        #size-cells = <0>;
+
                        vopl_out_mipi: endpoint@0 {
-                               reg = <3>;
+                               reg = <0>;
                                remote-endpoint = <&mipi_in_vopl>;
                        };
 
-                       vopl_out_hdmi: endpoint@1 {
+                       vopl_out_edp: endpoint@1 {
                                reg = <1>;
+                               remote-endpoint = <&edp_in_vopl>;
+                       };
+
+                       vopl_out_hdmi: endpoint@2 {
+                               reg = <2>;
                                remote-endpoint = <&hdmi_in_vopl>;
                        };
+
+                       vopl_out_mipi1: endpoint@3 {
+                               reg = <3>;
+                               remote-endpoint = <&mipi1_in_vopl>;
+                       };
+
+                       vopl_out_dp: endpoint@4 {
+                               reg = <4>;
+                               remote-endpoint = <&dp_in_vopl>;
+                       };
                };
        };
 
+       vopl_mmu: iommu@ff8f3f00 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff8f3f00 0x0 0x100>;
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vopl_mmu";
+               clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3399_PD_VOPL>;
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
        vopb: vop@ff900000 {
                u-boot,dm-pre-reloc;
                compatible = "rockchip,rk3399-vop-big";
                reg = <0x0 0xff900000 0x0 0x3efc>;
                interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
+               assigned-clock-rates = <400000000>, <100000000>;
                clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
-               #clock-cells = <0>;
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               iommus = <&vopb_mmu>;
+               power-domains = <&power RK3399_PD_VOPB>;
                resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
                reset-names = "axi", "ahb", "dclk";
                status = "disabled";
+
                vopb_out: port {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       vopb_out_mipi: endpoint@0 {
-                               reg = <3>;
-                               remote-endpoint = <&mipi_in_vopb>;
+
+                       vopb_out_edp: endpoint@0 {
+                               reg = <0>;
+                               remote-endpoint = <&edp_in_vopb>;
                        };
 
-                       vopb_out_hdmi: endpoint@1 {
+                       vopb_out_mipi: endpoint@1 {
                                reg = <1>;
+                               remote-endpoint = <&mipi_in_vopb>;
+                       };
+
+                       vopb_out_hdmi: endpoint@2 {
+                               reg = <2>;
                                remote-endpoint = <&hdmi_in_vopb>;
                        };
+
+                       vopb_out_mipi1: endpoint@3 {
+                               reg = <3>;
+                               remote-endpoint = <&mipi1_in_vopb>;
+                       };
+
+                       vopb_out_dp: endpoint@4 {
+                               reg = <4>;
+                               remote-endpoint = <&dp_in_vopb>;
+                       };
+               };
+       };
+
+       vopb_mmu: iommu@ff903f00 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff903f00 0x0 0x100>;
+               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vopb_mmu";
+               clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3399_PD_VOPB>;
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       isp0_mmu: iommu@ff914000 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
+               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "isp0_mmu";
+               clocks = <&cru ACLK_ISP0_NOC>, <&cru HCLK_ISP0_NOC>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               rockchip,disable-mmu-reset;
+               status = "disabled";
+       };
+
+       isp1_mmu: iommu@ff924000 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
+               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "isp1_mmu";
+               clocks = <&cru ACLK_ISP1_NOC>, <&cru HCLK_ISP1_NOC>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               rockchip,disable-mmu-reset;
+               status = "disabled";
+       };
+
+       hdmi_sound: hdmi-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,name = "hdmi-sound";
+               status = "disabled";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s2>;
+               };
+               simple-audio-card,codec {
+                       sound-dai = <&hdmi>;
                };
        };
 
        hdmi: hdmi@ff940000 {
                compatible = "rockchip,rk3399-dw-hdmi";
                reg = <0x0 0xff940000 0x0 0x20000>;
+               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_HDMI_CTRL>,
+                        <&cru SCLK_HDMI_SFR>,
+                        <&cru PLL_VPLL>,
+                        <&cru PCLK_VIO_GRF>,
+                        <&cru SCLK_HDMI_CEC>;
+               clock-names = "iahb", "isfr", "vpll", "grf", "cec";
+               power-domains = <&power RK3399_PD_HDCP>;
                reg-io-width = <4>;
                rockchip,grf = <&grf>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&hdmi_i2c_xfer>;
-               power-domains = <&power RK3399_PD_HDCP>;
-               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>, <&cru PLL_VPLL>, <&cru PCLK_VIO_GRF>;
-               clock-names = "iahb", "isfr", "vpll", "grf";
+               #sound-dai-cells = <0>;
                status = "disabled";
 
                ports {
                        hdmi_in: port {
                                #address-cells = <1>;
                                #size-cells = <0>;
+
                                hdmi_in_vopb: endpoint@0 {
                                        reg = <0>;
                                        remote-endpoint = <&vopb_out_hdmi>;
                };
        };
 
+       mipi_dsi1: mipi@ff968000 {
+               compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
+               reg = <0x0 0xff968000 0x0 0x8000>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI1>,
+                        <&cru SCLK_DPHY_TX1RX1_CFG>, <&cru PCLK_VIO_GRF>;
+               clock-names = "ref", "pclk", "phy_cfg", "grf";
+               power-domains = <&power RK3399_PD_VIO>;
+               resets = <&cru SRST_P_MIPI_DSI1>;
+               reset-names = "apb";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       mipi1_in: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               mipi1_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_mipi1>;
+                               };
+
+                               mipi1_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_mipi1>;
+                               };
+                       };
+               };
+       };
+
+       edp: edp@ff970000 {
+               compatible = "rockchip,rk3399-edp";
+               reg = <0x0 0xff970000 0x0 0x8000>;
+               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>, <&cru PCLK_VIO_GRF>;
+               clock-names = "dp", "pclk", "grf";
+               pinctrl-names = "default";
+               pinctrl-0 = <&edp_hpd>;
+               power-domains = <&power RK3399_PD_EDP>;
+               resets = <&cru SRST_P_EDP_CTRL>;
+               reset-names = "dp";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       edp_in: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               edp_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_edp>;
+                               };
+
+                               edp_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_edp>;
+                               };
+                       };
+               };
+       };
+
+       gpu: gpu@ff9a0000 {
+               compatible = "rockchip,rk3399-mali", "arm,mali-t860";
+               reg = <0x0 0xff9a0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "gpu", "job", "mmu";
+               clocks = <&cru ACLK_GPU>;
+               power-domains = <&power RK3399_PD_GPU>;
+               status = "disabled";
+       };
+
        pinctrl: pinctrl {
                u-boot,dm-pre-reloc;
                compatible = "rockchip,rk3399-pinctrl";
                                        <4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>;
                        };
 
-                       sdmmc_cd: sdmcc-cd {
+                       sdmmc_cd: sdmmc-cd {
                                rockchip,pins =
                                        <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>;
                        };