// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2023 Rockchip Electronics Co., Ltd. */ #include "rk3502.dtsi" / { compatible = "rockchip,rk3506"; aliases { ethernet0 = &gmac0; ethernet1 = &gmac1; }; display_subsystem: display-subsystem { compatible = "rockchip,display-subsystem"; ports = <&vop_out>; status = "disabled"; route { route_dsi: route-dsi { status = "disabled"; logo,uboot = "logo.bmp"; logo,kernel = "logo_kernel.bmp"; logo,mode = "center"; charge_logo,mode = "center"; connect = <&vop_out_dsi>; }; route_rgb: route-rgb { status = "disabled"; logo,uboot = "logo.bmp"; logo,kernel = "logo_kernel.bmp"; logo,mode = "center"; charge_logo,mode = "center"; connect = <&vop_out_rgb>; }; }; }; can0: can@ff320000 { compatible = "rockchip,rk3506-canfd", "rockchip,rk3576-canfd"; reg = <0xff320000 0x1000>; interrupts = ; clocks = <&cru CLK_CAN0>, <&cru HCLK_CAN0>; clock-names = "baudclk", "apb_pclk"; resets = <&cru SRST_CAN0>, <&cru SRST_H_CAN0>; reset-names = "can", "can-apb"; assigned-clocks = <&cru CLK_CAN0>; assigned-clock-rates = <300000000>; status = "disabled"; }; can1: can@ff330000 { compatible = "rockchip,rk3506-canfd", "rockchip,rk3576-canfd"; reg = <0xff330000 0x1000>; interrupts = ; clocks = <&cru CLK_CAN1>, <&cru HCLK_CAN1>; clock-names = "baudclk", "apb_pclk"; resets = <&cru SRST_CAN1>, <&cru SRST_H_CAN1>; reset-names = "can", "can-apb"; assigned-clocks = <&cru CLK_CAN1>; assigned-clock-rates = <300000000>; status = "disabled"; }; gmac0: ethernet@ff4c8000 { compatible = "rockchip,rk3506-gmac", "snps,dwmac-4.20a"; reg = <0xff4c8000 0x2000>; interrupts = , ; interrupt-names = "macirq", "eth_wake_irq"; rockchip,grf = <&grf>; clocks = <&cru CLK_MAC0>, <&cru CLK_MAC0_PTP>, <&cru PCLK_MAC0>, <&cru ACLK_MAC0>; clock-names = "stmmaceth", "ptp_ref", "pclk_mac", "aclk_mac"; resets = <&cru SRST_A_MAC0>; reset-names = "stmmaceth"; assigned-clocks = <&cru CLK_MAC0_PTP>; assigned-clock-rates = <62500000>; snps,mixed-burst; snps,tso; snps,axi-config = <&gmac0_stmmac_axi_setup>; snps,mtl-rx-config = <&gmac0_mtl_rx_setup>; snps,mtl-tx-config = <&gmac0_mtl_tx_setup>; phy-mode = "rmii"; status = "disabled"; mdio0: mdio { compatible = "snps,dwmac-mdio"; #address-cells = <0x1>; #size-cells = <0x0>; }; gmac0_stmmac_axi_setup: stmmac-axi-config { snps,wr_osr_lmt = <4>; snps,rd_osr_lmt = <8>; snps,blen = <0 0 0 0 16 8 4>; }; gmac0_mtl_rx_setup: rx-queues-config { snps,rx-queues-to-use = <1>; queue0 { status = "okay"; }; }; gmac0_mtl_tx_setup: tx-queues-config { snps,tx-queues-to-use = <1>; queue0 { status = "okay"; }; }; }; gmac1: ethernet@ff4d0000 { compatible = "rockchip,rk3506-gmac", "snps,dwmac-4.20a"; reg = <0xff4d0000 0x2000>; interrupts = , ; interrupt-names = "macirq", "eth_wake_irq"; rockchip,grf = <&grf>; clocks = <&cru CLK_MAC1>, <&cru CLK_MAC1_PTP>, <&cru PCLK_MAC1>, <&cru ACLK_MAC1>; clock-names = "stmmaceth", "ptp_ref", "pclk_mac", "aclk_mac"; resets = <&cru SRST_A_MAC1>; reset-names = "stmmaceth"; assigned-clocks = <&cru CLK_MAC1_PTP>; assigned-clock-rates = <62500000>; snps,mixed-burst; snps,tso; snps,axi-config = <&gmac1_stmmac_axi_setup>; snps,mtl-rx-config = <&gmac1_mtl_rx_setup>; snps,mtl-tx-config = <&gmac1_mtl_tx_setup>; phy-mode = "rmii"; status = "disabled"; mdio1: mdio { compatible = "snps,dwmac-mdio"; #address-cells = <0x1>; #size-cells = <0x0>; }; gmac1_stmmac_axi_setup: stmmac-axi-config { snps,wr_osr_lmt = <4>; snps,rd_osr_lmt = <8>; snps,blen = <0 0 0 0 16 8 4>; }; gmac1_mtl_rx_setup: rx-queues-config { snps,rx-queues-to-use = <1>; queue0 { status = "okay"; }; }; gmac1_mtl_tx_setup: tx-queues-config { snps,tx-queues-to-use = <1>; queue0 { status = "okay"; }; }; }; vop: vop@ff600000 { compatible = "rockchip,rk3506-vop"; reg = <0xff600000 0x200>, <0xff600a00 0x400>; reg-names = "regs", "gamma_lut"; rockchip,grf = <&grf>; interrupts = ; clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>; clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; status = "disabled"; vop_out: port { #address-cells = <1>; #size-cells = <0>; vop_out_rgb: endpoint@0 { reg = <0>; remote-endpoint = <&rgb_in_vop>; }; vop_out_dsi: endpoint@1 { reg = <1>; remote-endpoint = <&dsi_in_vop>; }; }; }; dsi: dsi@ff640000 { compatible = "rockchip,rk3506-mipi-dsi"; reg = <0xff640000 0x10000>; interrupts = ; clocks = <&cru PCLK_DSI_HOST>; clock-names = "pclk"; resets = <&cru SRST_P_DSI_HOST>; reset-names = "apb"; phys = <&dsi_dphy>; phy-names = "dphy"; rockchip,grf = <&grf>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; ports { #address-cells = <1>; #size-cells = <0>; dsi_in: port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; dsi_in_vop: endpoint@0 { reg = <0>; remote-endpoint = <&vop_out_dsi>; status = "disabled"; }; }; }; }; dsi_dphy: phy@ff670000 { compatible = "rockchip,rk3506-dsi-dphy"; reg = <0xff670000 0x10000>, <0xff640000 0x10000>; reg-names = "phy", "host"; clocks = <&cru CLK_REF_DPHY_TOP>, <&cru PCLK_DPHY>, <&cru PCLK_DSI_HOST>; clock-names = "ref", "pclk", "pclk_host"; #clock-cells = <0>; resets = <&cru SRST_P_DPHY>; reset-names = "apb"; #phy-cells = <0>; status = "disabled"; }; dsmc_lb_slave: dsmc-lb-slave@ff880000 { compatible = "rockchip,rk3506-dsmc-lb-slave"; reg = <0xff880000 0x10000>; #address-cells = <1>; #size-cells = <1>; rockchip,grf = <&grf>; interrupts = ; resets = <&cru SRST_DSMC_SLV>, <&cru SRST_A_DSMC_SLV>, <&cru SRST_H_DSMC_SLV>; reset-names = "dsmc_slv", "a_dsmc_slv", "h_dsmc_slv"; clocks = <&cru ACLK_DSMC_SLV>, <&cru HCLK_DSMC_SLV>; clock-names = "aclk_dsmc_slv", "hclk_dsmc_slv"; pinctrl-names = "default", "active"; pinctrl-0 = <&dsmc_slv_csn0_pull_pins &dsmc_slv_bus8_pins>; pinctrl-1 = <&dsmc_slv_csn0_pins>; status = "disabled"; }; dsmc: dsmc@ff8b0000 { compatible = "rockchip,rk3506-dsmc"; reg = <0xff8b0000 0x10000>; #address-cells = <1>; #size-cells = <1>; rockchip,grf = <&grf>; interrupts = ; resets = <&cru SRST_A_DSMC>, <&cru SRST_P_DSMC>; reset-names = "dsmc", "apb"; clocks = <&cru CLK_DSMC>, <&cru ACLK_DSMC>, <&cru PCLK_DSMC>, <&cru CLK_DSMC>; clock-names = "clk_sys", "aclk_dsmc", "pclk", "aclk_root"; clock-frequency = <100000000>; dmas = <&dmac0 2 0xff288078 0x80000000 0xff2880a8 0x00300000>, <&dmac0 3 0xff288078 0x40000000 0xff2880a8 0x00c00000>; // dmas = <&dmac0 8 0xff288078 0x80008000 0xff2880ac 0x00030000>, // <&dmac0 10 0xff288078 0x40004000 0xff2880ac 0x00300000>; dma-names = "req0", "req1"; pinctrl-names = "default", "active" ,"lb-slave"; pinctrl-0 = <&dsmc_csn_pull_pins &dsmc_bus16_pins &dsmc_clk_pins>; pinctrl-1 = <&dsmc_csn_pins>; pinctrl-2 = <&dsmc_int_pins>; status = "disabled"; slave { rockchip,dqs-dll = <0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20>; rockchip,ranges = <0x0 0xc0000000 0x0 0x2000000>; rockchip,slave-dev = <&dsmc_slave>; }; }; dsmc_slave: dsmc-slave { compatible = "rockchip,dsmc-slave"; rockchip,clk-mode = <0>; status = "disabled"; psram { dsmc_psram0: psram0 { status = "disabled"; }; dsmc_psram1: psram1 { status = "disabled"; }; dsmc_psram2: psram2 { status = "disabled"; }; dsmc_psram3: psram3 { status = "disabled"; }; }; lb-slave { dsmc_lb_slave0: lb-slave0 { rockchip,mtr-timing = <1 0 0 0 0 0 2 2>; rockchip,int-en = <0x0>; status = "disabled"; dsmc_p0_region: region { dsmc_p0_region0: region0 { rockchip,attribute = "Merged FIFO"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p0_region1: region1 { rockchip,attribute = "No-Merge FIFO"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p0_region2: region2 { rockchip,attribute = "DPRA"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p0_region3: region3 { rockchip,attribute = "Register"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; }; }; dsmc_lb_slave1: lb-slave1 { rockchip,mtr-timing = <1 0 0 0 0 0 2 2>; rockchip,int-en = <0x1>; status = "disabled"; dsmc_p1_region: region { dsmc_p1_region0: region0 { rockchip,attribute = "Merged FIFO"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p1_region1: region1 { rockchip,attribute = "No-Merge FIFO"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p1_region2: region2 { rockchip,attribute = "DPRA"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p1_region3: region3 { rockchip,attribute = "Register"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; }; }; dsmc_lb_slave2: lb-slave2 { rockchip,mtr-timing = <1 0 0 0 0 0 2 2>; rockchip,int-en = <0x2>; status = "disabled"; dsmc_p2_region: region { dsmc_p2_region0: region0 { rockchip,attribute = "Merged FIFO"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p2_region1: region1 { rockchip,attribute = "No-Merge FIFO"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p2_region2: region2 { rockchip,attribute = "DPRA"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p2_region3: region3 { rockchip,attribute = "Register"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; }; }; dsmc_lb_slave3: lb-slave3 { rockchip,mtr-timing = <1 0 0 0 0 0 2 2>; rockchip,int-en = <0x3>; status = "disabled"; dsmc_p3_region: region { dsmc_p3_region0: region0 { rockchip,attribute = "Merged FIFO"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p3_region1: region1 { rockchip,attribute = "No-Merge FIFO"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p3_region2: region2 { rockchip,attribute = "DPRA"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; dsmc_p3_region3: region3 { rockchip,attribute = "Register"; rockchip,ca-addr-width = <0>; rockchip,dummy-clk-num = <1>; rockchip,cs0-be-ctrled = <0>; rockchip,cs0-ctrl = <0>; status = "disabled"; }; }; }; }; }; }; &grf { rgb: rgb { compatible = "rockchip,rk3506-rgb"; status = "disabled"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; rgb_in_vop: endpoint@0 { reg = <0>; remote-endpoint = <&vop_out_rgb>; }; }; }; }; };