From 1f93a7dfd1f8d5ff7a5c53246c7534fe2332d6f4 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 11 Dec 2023 02:46:07 +0000 Subject: [PATCH] add audio --- kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi | 481 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 332 insertions(+), 149 deletions(-) diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi index bd07a1e..8a3e1fe 100755 --- a/kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi @@ -59,7 +59,8 @@ spi1 = &spi1; spi2 = &spi2; spi3 = &spi3; - spi4 = &sfc; // for U-Boot + lvds0 = &lvds; + lvds1 = &lvds1; }; cpus { @@ -126,12 +127,17 @@ opp-shared; mbist-vmin = <825000 900000 950000>; - nvmem-cells = <&cpu_leakage>, <&core_pvtm>, <&mbist_vmin>; - nvmem-cell-names = "leakage", "pvtm", "mbist-vmin"; + nvmem-cells = <&cpu_leakage>, <&core_pvtm>, <&mbist_vmin>, <&cpu_opp_info>, + <&specification_serial_number>, <&remark_spec_serial_number>; + nvmem-cell-names = "leakage", "pvtm", "mbist-vmin", "opp-info", + "specification_serial_number", "remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <1150000>; rockchip,pvtm-voltage-sel = < 0 84000 0 - 84001 91000 1 - 91001 100000 2 + 84001 87000 1 + 87001 91000 2 + 91001 100000 3 >; rockchip,pvtm-freq = <408000>; rockchip,pvtm-volt = <900000>; @@ -146,77 +152,104 @@ rockchip,low-temp = <0>; rockchip,low-temp-adjust-volt = < /* MHz MHz uV */ - 0 1608 75000 + 0 1992 75000 >; + /* RK3568 && RK3568M cpu OPPs */ opp-408000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <408000000>; opp-microvolt = <850000 850000 1150000>; - opp-microvolt-L0 = <850000 850000 1150000>; - opp-microvolt-L1 = <825000 825000 1150000>; - opp-microvolt-L2 = <825000 825000 1150000>; clock-latency-ns = <40000>; }; opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <600000000>; - opp-microvolt = <850000 825000 1150000>; - opp-microvolt-L0 = <850000 850000 1150000>; - opp-microvolt-L1 = <825000 825000 1150000>; - opp-microvolt-L2 = <825000 825000 1150000>; + opp-microvolt = <850000 850000 1150000>; clock-latency-ns = <40000>; }; opp-816000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <816000000>; opp-microvolt = <850000 850000 1150000>; - opp-microvolt-L0 = <850000 850000 1150000>; - opp-microvolt-L1 = <825000 825000 1150000>; - opp-microvolt-L2 = <825000 825000 1150000>; clock-latency-ns = <40000>; opp-suspend; }; opp-1104000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <1104000000>; opp-microvolt = <900000 900000 1150000>; opp-microvolt-L0 = <900000 900000 1150000>; - opp-microvolt-L1 = <825000 825000 1150000>; - opp-microvolt-L2 = <825000 825000 1150000>; + opp-microvolt-L1 = <850000 850000 1150000>; + opp-microvolt-L2 = <850000 850000 1150000>; + opp-microvolt-L3 = <850000 850000 1150000>; clock-latency-ns = <40000>; }; opp-1416000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <1416000000>; - opp-microvolt = <1000000 1000000 1150000>; - opp-microvolt-L0 = <1000000 1000000 1150000>; - opp-microvolt-L1 = <925000 925000 1150000>; - opp-microvolt-L2 = <925000 925000 1150000>; + opp-microvolt = <1025000 1025000 1150000>; + opp-microvolt-L0 = <1025000 1025000 1150000>; + opp-microvolt-L1 = <975000 975000 1150000>; + opp-microvolt-L2 = <950000 950000 1150000>; + opp-microvolt-L3 = <925000 925000 1150000>; clock-latency-ns = <40000>; }; opp-1608000000 { + opp-supported-hw = <0xf9 0xffff>; opp-hz = /bits/ 64 <1608000000>; - opp-microvolt = <1075000 1075000 1150000>; - opp-microvolt-L0 = <1075000 1075000 1150000>; - opp-microvolt-L1 = <1000000 1000000 1150000>; - opp-microvolt-L2 = <1000000 1000000 1150000>; + opp-microvolt = <1100000 1100000 1150000>; + opp-microvolt-L0 = <1100000 1100000 1150000>; + opp-microvolt-L1 = <1050000 1050000 1150000>; + opp-microvolt-L2 = <1025000 1025000 1150000>; + opp-microvolt-L3 = <1000000 1000000 1150000>; clock-latency-ns = <40000>; }; opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; opp-hz = /bits/ 64 <1800000000>; - opp-microvolt = <1125000 1125000 1150000>; - opp-microvolt-L0 = <1125000 1125000 1150000>; - opp-microvolt-L1 = <1050000 1050000 1150000>; - opp-microvolt-L2 = <1050000 1050000 1150000>; - clock-latency-ns = <40000>; - }; - opp-1992000000 { - opp-hz = /bits/ 64 <1992000000>; opp-microvolt = <1150000 1150000 1150000>; opp-microvolt-L0 = <1150000 1150000 1150000>; opp-microvolt-L1 = <1100000 1100000 1150000>; opp-microvolt-L2 = <1075000 1075000 1150000>; + opp-microvolt-L3 = <1050000 1050000 1150000>; + clock-latency-ns = <40000>; + }; + opp-1992000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = /bits/ 64 <1992000000>; + opp-microvolt = <1150000 1150000 1150000>; + opp-microvolt-L0 = <1150000 1150000 1150000>; + opp-microvolt-L1 = <1150000 1150000 1150000>; + opp-microvolt-L2 = <1125000 1125000 1150000>; + opp-microvolt-L3 = <1100000 1100000 1150000>; + clock-latency-ns = <40000>; + }; + + /* RK3568J cpu OPPs */ + opp-j-1008000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = /bits/ 64 <1008000000>; + opp-microvolt = <850000 850000 1150000>; + clock-latency-ns = <40000>; + }; + opp-j-1416000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = /bits/ 64 <1416000000>; + opp-microvolt = <900000 900000 1150000>; + clock-latency-ns = <40000>; + }; + + /* RK3568M cpu OPPs */ + opp-m-1608000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = /bits/ 64 <1608000000>; + opp-microvolt = <1000000 1000000 1150000>; clock-latency-ns = <40000>; }; }; - arm-pmu { + arm_pmu: arm-pmu { compatible = "arm,cortex-a55-pmu", "arm,armv8-pmuv3"; interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>, @@ -253,7 +286,7 @@ logo,kernel = "logo_kernel.bmp"; logo,mode = "center"; charge_logo,mode = "center"; - connect = <&vp0_out_dsi1>; + connect = <&vp1_out_dsi1>; }; route_edp: route-edp { status = "disabled"; @@ -261,7 +294,7 @@ logo,kernel = "logo_kernel.bmp"; logo,mode = "center"; charge_logo,mode = "center"; - connect = <&vp0_out_edp>; + connect = <&vp1_out_edp>; }; route_hdmi: route-hdmi { status = "disabled"; @@ -269,7 +302,7 @@ logo,kernel = "logo_kernel.bmp"; logo,mode = "center"; charge_logo,mode = "center"; - connect = <&vp1_out_hdmi>; + connect = <&vp0_out_hdmi>; }; route_lvds: route-lvds { status = "disabled"; @@ -290,12 +323,15 @@ }; }; - firmware { - optee: optee { - compatible = "linaro,optee-tz"; - method = "smc"; - }; + edac: edac { + compatible = "rockchip,rk3568-edac"; + interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ce", "ue"; + status = "disabled"; + }; + firmware { scmi: scmi { compatible = "arm,scmi-smc"; shmem = <&scmi_shmem>; @@ -307,7 +343,7 @@ reg = <0x14>; #clock-cells = <1>; - rockchip,clk-init = <1416000000>; + rockchip,clk-init = <1104000000>; }; }; @@ -315,6 +351,12 @@ compatible = "arm,sdei-1.0"; method = "smc"; }; + }; + + mipi_csi2: mipi-csi2 { + compatible = "rockchip,rk3568-mipi-csi2"; + rockchip,hw = <&mipi_csi2_hw>; + status = "disabled"; }; mpp_srv: mpp-srv { @@ -582,12 +624,15 @@ resets = <&cru SRST_USB3OTG0>; reset-names = "usb3-otg"; snps,dis_enblslpm_quirk; - snps,dis-u1u2-quirk; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; snps,dis-u2-freeclk-exists-quirk; snps,dis-del-phy-power-chg-quirk; snps,dis-tx-ipgap-linecheck-quirk; snps,dis_rxdet_inp3_quirk; snps,xhci-trb-ent-quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; quirk-skip-phy-init; status = "disabled"; }; @@ -621,6 +666,8 @@ snps,dis-tx-ipgap-linecheck-quirk; snps,dis_rxdet_inp3_quirk; snps,xhci-trb-ent-quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; status = "disabled"; }; }; @@ -761,6 +808,34 @@ reg = <2>; remote-endpoint = <&vp2_out_lvds>; status = "disabled"; + }; + }; + }; + }; + + lvds1: lvds1 { + compatible = "rockchip,rk3568-lvds"; + phys = <&video_phy1>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + lvds1_in_vp1: endpoint@0 { + reg = <0>; + remote-endpoint = <&vp1_out_lvds1>; + }; + + lvds1_in_vp2: endpoint@1 { + reg = <1>; + remote-endpoint = <&vp2_out_lvds1>; }; }; }; @@ -938,7 +1013,7 @@ dmas = <&dmac0 0>, <&dmac0 1>; pinctrl-names = "default"; pinctrl-0 = <&uart0_xfer>; - status = "okay"; + status = "disabled"; }; pwm0: pwm@fdd70000 { @@ -1109,77 +1184,97 @@ compatible = "operating-points-v2"; mbist-vmin = <825000 900000 950000>; - nvmem-cells = <&npu_leakage>, <&core_pvtm>, <&mbist_vmin>; - nvmem-cell-names = "leakage", "pvtm", "mbist-vmin"; + nvmem-cells = <&npu_leakage>, <&core_pvtm>, <&mbist_vmin>, <&npu_opp_info>, + <&specification_serial_number>, <&remark_spec_serial_number>; + nvmem-cell-names = "leakage", "pvtm", "mbist-vmin", "opp-info", + "specification_serial_number", "remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <1000000>; rockchip,temp-hysteresis = <5000>; rockchip,low-temp = <0>; rockchip,low-temp-adjust-volt = < /* MHz MHz uV */ - 0 700 50000 + 0 1000 50000 >; rockchip,pvtm-voltage-sel = < 0 84000 0 - 84001 91000 1 - 91001 100000 2 + 84001 87000 1 + 87001 91000 2 + 91001 100000 3 >; rockchip,pvtm-ch = <0 5>; + /* RK3568 && RK3568M npu OPPs */ opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <200000000>; opp-microvolt = <850000 850000 1000000>; - opp-microvolt-L0 = <850000 850000 1000000>; - opp-microvolt-L1 = <825000 825000 1000000>; - opp-microvolt-L2 = <825000 825000 1000000>; }; opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <297000000>; opp-microvolt = <850000 850000 1000000>; - opp-microvolt-L0 = <850000 850000 1000000>; - opp-microvolt-L1 = <825000 825000 1000000>; - opp-microvolt-L2 = <825000 825000 1000000>; }; opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <400000000>; opp-microvolt = <850000 850000 1000000>; - opp-microvolt-L0 = <850000 850000 1000000>; - opp-microvolt-L1 = <825000 825000 1000000>; - opp-microvolt-L2 = <825000 825000 1000000>; }; opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <600000000>; - opp-microvolt = <875000 875000 1000000>; - opp-microvolt-L0 = <875000 875000 1000000>; - opp-microvolt-L1 = <825000 825000 1000000>; - opp-microvolt-L2 = <825000 825000 1000000>; + opp-microvolt = <850000 850000 1000000>; }; opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <700000000>; - opp-microvolt = <900000 900000 1000000>; - opp-microvolt-L0 = <900000 900000 1000000>; + opp-microvolt = <875000 875000 1000000>; + opp-microvolt-L0 = <875000 875000 1000000>; opp-microvolt-L1 = <850000 850000 1000000>; opp-microvolt-L2 = <850000 850000 1000000>; + opp-microvolt-L3 = <850000 850000 1000000>; }; opp-800000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <800000000>; opp-microvolt = <925000 925000 1000000>; opp-microvolt-L0 = <925000 925000 1000000>; - opp-microvolt-L1 = <875000 875000 1000000>; + opp-microvolt-L1 = <900000 900000 1000000>; opp-microvolt-L2 = <875000 875000 1000000>; + opp-microvolt-L3 = <875000 875000 1000000>; }; opp-900000000 { + opp-supported-hw = <0xf9 0xffff>; opp-hz = /bits/ 64 <900000000>; opp-microvolt = <975000 975000 1000000>; opp-microvolt-L0 = <975000 975000 1000000>; - opp-microvolt-L1 = <925000 925000 1000000>; - opp-microvolt-L2 = <900000 900000 1000000>; + opp-microvolt-L1 = <950000 950000 1000000>; + opp-microvolt-L2 = <925000 925000 1000000>; + opp-microvolt-L3 = <900000 900000 1000000>; }; opp-1000000000 { + opp-supported-hw = <0xf9 0xffff>; opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <1000000 1000000 1000000>; opp-microvolt-L0 = <1000000 1000000 1000000>; - opp-microvolt-L1 = <950000 950000 1000000>; - opp-microvolt-L2 = <925000 925000 1000000>; + opp-microvolt-L1 = <975000 975000 1000000>; + opp-microvolt-L2 = <950000 950000 1000000>; + opp-microvolt-L3 = <925000 925000 1000000>; status = "disabled"; + }; + + /* RK3568J npu OPPs */ + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = /bits/ 64 <600000000>; + opp-microvolt = <900000 900000 1000000>; + }; + + /* RK3568M npu OPPs */ + opp-m-900000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = /bits/ 64 <900000000>; + opp-microvolt = <925000 925000 1000000>; }; }; @@ -1209,8 +1304,8 @@ opp-hz = /bits/ 64 <700000000>; opp-microvolt = <900000>; opp-microvolt-L0 = <900000>; - opp-microvolt-L1 = <850000>; - opp-microvolt-L2 = <850000>; + opp-microvolt-L1 = <875000>; + opp-microvolt-L2 = <875000>; }; opp-900000000 { opp-hz = /bits/ 64 <900000000>; @@ -1271,57 +1366,84 @@ compatible = "operating-points-v2"; mbist-vmin = <825000 900000 950000>; - nvmem-cells = <&gpu_leakage>, <&core_pvtm>, <&mbist_vmin>; - nvmem-cell-names = "leakage", "pvtm", "mbist-vmin"; + nvmem-cells = <&gpu_leakage>, <&core_pvtm>, <&mbist_vmin>, <&gpu_opp_info>, + <&specification_serial_number>, <&remark_spec_serial_number>; + nvmem-cell-names = "leakage", "pvtm", "mbist-vmin", "opp-info", + "specification_serial_number", "remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <1000000>; + rockchip,temp-hysteresis = <5000>; + rockchip,low-temp = <0>; + rockchip,low-temp-adjust-volt = < + /* MHz MHz uV */ + 0 800 50000 + >; rockchip,pvtm-voltage-sel = < 0 84000 0 - 84001 91000 1 - 91001 100000 2 + 84001 87000 1 + 87001 91000 2 + 91001 100000 3 >; rockchip,pvtm-ch = <0 5>; + /* RK3568 && RK3568M gpu OPPs */ opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <200000000>; - opp-microvolt = <850000>; - opp-microvolt-L0 = <850000>; - opp-microvolt-L1 = <825000>; - opp-microvolt-L2 = <825000>; + opp-microvolt = <850000 850000 1000000>; }; opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <300000000>; - opp-microvolt = <850000>; - opp-microvolt-L0 = <850000>; - opp-microvolt-L1 = <825000>; - opp-microvolt-L2 = <825000>; + opp-microvolt = <850000 850000 1000000>; }; opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <400000000>; - opp-microvolt = <850000>; - opp-microvolt-L0 = <850000>; - opp-microvolt-L1 = <825000>; - opp-microvolt-L2 = <825000>; + opp-microvolt = <850000 850000 1000000>; }; opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <600000000>; - opp-microvolt = <875000>; - opp-microvolt-L0 = <875000>; - opp-microvolt-L1 = <825000>; - opp-microvolt-L2 = <825000>; + opp-microvolt = <900000 900000 1000000>; + opp-microvolt-L0 = <900000 900000 1000000>; + opp-microvolt-L1 = <875000 875000 1000000>; + opp-microvolt-L2 = <850000 850000 1000000>; + opp-microvolt-L3 = <850000 850000 1000000>; }; opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; opp-hz = /bits/ 64 <700000000>; - opp-microvolt = <950000>; - opp-microvolt-L0 = <950000>; - opp-microvolt-L1 = <900000>; - opp-microvolt-L2 = <850000>; + opp-microvolt = <950000 950000 1000000>; + opp-microvolt-L0 = <950000 950000 1000000>; + opp-microvolt-L1 = <925000 925000 1000000>; + opp-microvolt-L2 = <900000 900000 1000000>; + opp-microvolt-L3 = <875000 875000 1000000>; }; opp-800000000 { + opp-supported-hw = <0xf9 0xffff>; opp-hz = /bits/ 64 <800000000>; - opp-microvolt = <1000000>; - opp-microvolt-L0 = <1000000>; - opp-microvolt-L1 = <950000>; - opp-microvolt-L2 = <900000>; + opp-microvolt = <1000000 1000000 1000000>; + opp-microvolt-L0 = <1000000 1000000 1000000>; + opp-microvolt-L1 = <975000 975000 1000000>; + opp-microvolt-L2 = <950000 950000 1000000>; + opp-microvolt-L3 = <925000 925000 1000000>; }; + + /* RK3568J gpu OPPs */ + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = /bits/ 64 <600000000>; + opp-microvolt = <900000 900000 1000000>; + }; + + /* RK3568M gpu OPPs */ + opp-m-800000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = /bits/ 64 <800000000>; + opp-microvolt = <950000 950000 1000000>; + }; + }; pvtm@fde80000 { @@ -1544,8 +1666,8 @@ opp-hz = /bits/ 64 <297000000>; opp-microvolt = <900000>; opp-microvolt-L0 = <900000>; - opp-microvolt-L1 = <850000>; - opp-microvolt-L2 = <850000>; + opp-microvolt-L1 = <875000>; + opp-microvolt-L2 = <875000>; }; opp-400000000 { opp-hz = /bits/ 64 <400000000>; @@ -1629,7 +1751,7 @@ opp-hz = /bits/ 64 <297000000>; opp-microvolt = <900000>; opp-microvolt-L0 = <900000>; - opp-microvolt-L1 = <850000>; + opp-microvolt-L1 = <875000>; }; opp-400000000 { opp-hz = /bits/ 64 <400000000>; @@ -1649,8 +1771,8 @@ status = "disabled"; }; - mipi_csi2: mipi-csi2@fdfb0000 { - compatible = "rockchip,rk3568-mipi-csi2"; + mipi_csi2_hw: mipi-csi2-hw@fdfb0000 { + compatible = "rockchip,rk3568-mipi-csi2-hw"; reg = <0x0 0xfdfb0000 0x0 0x10000>; reg-names = "csihost_regs"; interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, @@ -1739,7 +1861,7 @@ rockchip,grf = <&grf>; power-domains = <&power RK3568_PD_VI>; iommus = <&rkisp_mmu>; - rockchip,iq-feature = /bits/ 64 <0x3FBFFFE67FF>; + rockchip,iq-feature = /bits/ 64 <0x1BFBFFFE67FF>; status = "disabled"; }; @@ -1768,6 +1890,13 @@ status = "disabled"; }; + gmac_uio1: uio@fe010000 { + compatible = "rockchip,uio-gmac"; + reg = <0x0 0xfe010000 0x0 0x10000>; + rockchip,ethernet = <&gmac1>; + status = "disabled"; + }; + gmac1: ethernet@fe010000 { compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; reg = <0x0 0xfe010000 0x0 0x10000>; @@ -1779,12 +1908,12 @@ <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_MAC1_REFOUT>, <&cru ACLK_GMAC1>, <&cru PCLK_GMAC1>, <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_GMAC1_PTP_REF>, - <&cru PCLK_XPCS>; + <&cru PCLK_XPCS>, <&cru CLK_XPCS_EEE>; clock-names = "stmmaceth", "mac_clk_rx", "mac_clk_tx", "clk_mac_refout", "aclk_mac", "pclk_mac", "clk_mac_speed", "ptp_ref", - "pclk_xpcs"; + "pclk_xpcs", "clk_xpcs_eee"; resets = <&cru SRST_A_GMAC1>; reset-names = "stmmaceth"; @@ -1890,6 +2019,11 @@ reg = <4>; remote-endpoint = <&lvds_in_vp1>; }; + + vp1_out_lvds1: endpoint@5 { + reg = <5>; + remote-endpoint = <&lvds1_in_vp1>; + }; }; vp2: port@2 { @@ -1907,6 +2041,11 @@ reg = <1>; remote-endpoint = <&rgb_in_vp2>; }; + + vp2_out_lvds1: endpoint@2 { + reg = <2>; + remote-endpoint = <&lvds1_in_vp2>; + }; }; }; }; @@ -1919,6 +2058,7 @@ clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; clock-names = "aclk", "iface"; #iommu-cells = <0>; + rockchip,disable-device-link-resume; status = "disabled"; }; @@ -1926,12 +2066,12 @@ compatible = "rockchip,rk3568-mipi-dsi"; reg = <0x0 0xfe060000 0x0 0x10000>; interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&cru PCLK_DSITX_0>, <&cru HCLK_VO>, <&video_phy0>; - clock-names = "pclk", "hclk", "hs_clk"; + clocks = <&cru PCLK_DSITX_0>, <&cru HCLK_VO>; + clock-names = "pclk", "hclk"; resets = <&cru SRST_P_DSITX_0>; reset-names = "apb"; phys = <&video_phy0>; - phy-names = "mipi_dphy"; + phy-names = "dphy"; power-domains = <&power RK3568_PD_VO>; rockchip,grf = <&grf>; #address-cells = <1>; @@ -1966,12 +2106,12 @@ compatible = "rockchip,rk3568-mipi-dsi"; reg = <0x0 0xfe070000 0x0 0x10000>; interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&cru PCLK_DSITX_1>, <&cru HCLK_VO>, <&video_phy1>; - clock-names = "pclk", "hclk", "hs_clk"; + clocks = <&cru PCLK_DSITX_1>, <&cru HCLK_VO>; + clock-names = "pclk", "hclk"; resets = <&cru SRST_P_DSITX_1>; reset-names = "apb"; phys = <&video_phy1>; - phy-names = "mipi_dphy"; + phy-names = "dphy"; power-domains = <&power RK3568_PD_VO>; rockchip,grf = <&grf>; #address-cells = <1>; @@ -2024,7 +2164,7 @@ #address-cells = <1>; #size-cells = <0>; - hdmi_in: port { + port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; @@ -2034,6 +2174,7 @@ remote-endpoint = <&vp0_out_hdmi>; status = "disabled"; }; + hdmi_in_vp1: endpoint@1 { reg = <1>; remote-endpoint = <&vp1_out_hdmi>; @@ -2324,8 +2465,12 @@ compatible = "operating-points-v2"; mbist-vmin = <825000 900000 950000>; - nvmem-cells = <&log_leakage>, <&core_pvtm>, <&mbist_vmin>; - nvmem-cell-names = "leakage", "pvtm", "mbist-vmin"; + nvmem-cells = <&log_leakage>, <&core_pvtm>, <&mbist_vmin>, <&dmc_opp_info>, + <&specification_serial_number>, <&remark_spec_serial_number>; + nvmem-cell-names = "leakage", "pvtm", "mbist-vmin", "opp-info", + "specification_serial_number", "remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <1000000>; rockchip,temp-hysteresis = <5000>; rockchip,low-temp = <0>; rockchip,low-temp-adjust-volt = < @@ -2342,17 +2487,21 @@ >; rockchip,pvtm-ch = <0 5>; + /* RK3568 dmc OPPs */ opp-1560000000 { + opp-supported-hw = <0xf9 0xffff>; opp-hz = /bits/ 64 <1560000000>; - opp-microvolt = <900000>; - opp-microvolt-L0 = <900000>; - opp-microvolt-L1 = <850000>; + opp-microvolt = <900000 900000 1000000>; + opp-microvolt-L0 = <900000 900000 1000000>; + opp-microvolt-L1 = <875000 875000 1000000>; }; - }; - dmcdbg: dmcdbg { - compatible = "rockchip,rk3568-dmcdbg"; - status = "disabled"; + /* RK3568J/M dmc OPPs */ + opp-j-m-1560000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = /bits/ 64 <1560000000>; + opp-microvolt = <875000 875000 1000000>; + }; }; pcie2x1: pcie@fe260000 { @@ -2516,6 +2665,13 @@ }; }; + gmac_uio0: uio@fe2a0000 { + compatible = "rockchip,uio-gmac"; + reg = <0x0 0xfe2a0000 0x0 0x10000>; + rockchip,ethernet = <&gmac0>; + status = "disabled"; + }; + gmac0: ethernet@fe2a0000 { compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; reg = <0x0 0xfe2a0000 0x0 0x10000>; @@ -2527,12 +2683,12 @@ <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_MAC0_REFOUT>, <&cru ACLK_GMAC0>, <&cru PCLK_GMAC0>, <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_GMAC0_PTP_REF>, - <&cru PCLK_XPCS>; + <&cru PCLK_XPCS>, <&cru CLK_XPCS_EEE>; clock-names = "stmmaceth", "mac_clk_rx", "mac_clk_tx", "clk_mac_refout", "aclk_mac", "pclk_mac", "clk_mac_speed", "ptp_ref", - "pclk_xpcs"; + "pclk_xpcs", "clk_xpcs_eee"; resets = <&cru SRST_A_GMAC0>; reset-names = "stmmaceth"; @@ -2597,7 +2753,7 @@ status = "disabled"; }; - sfc: sfc@fe300000 { + sfc: spi@fe300000 { compatible = "rockchip,sfc"; reg = <0x0 0xfe300000 0x0 0x4000>; interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; @@ -2605,11 +2761,13 @@ clock-names = "clk_sfc", "hclk_sfc"; assigned-clocks = <&cru SCLK_SFC>; assigned-clock-rates = <100000000>; + #address-cells = <1>; + #size-cells = <0>; status = "disabled"; }; sdhci: sdhci@fe310000 { - compatible = "rockchip,dwcmshc-sdhci", "snps,dwcmshc-sdhci"; + compatible = "rockchip,rk3568-dwcmshc", "rockchip,dwcmshc-sdhci"; reg = <0x0 0xfe310000 0x0 0x10000>; interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>, @@ -2619,6 +2777,10 @@ <&cru ACLK_EMMC>, <&cru BCLK_EMMC>, <&cru TCLK_EMMC>; clock-names = "core", "bus", "axi", "block", "timer"; + resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>, + <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>, + <&cru SRST_T_EMMC>; + reset-names = "core", "bus", "axi", "block", "timer"; status = "disabled"; }; @@ -2671,6 +2833,10 @@ cpu_code: cpu-code@2 { reg = <0x02 0x2>; }; + specification_serial_number: specification-serial-number@7 { + reg = <0x07 0x1>; + bits = <0 5>; + }; otp_cpu_version: cpu-version@8 { reg = <0x08 0x1>; bits = <3 3>; @@ -2717,6 +2883,22 @@ }; tsadc_trim_base: tsadc-trim-base@32 { reg = <0x32 0x1>; + }; + cpu_opp_info: cpu-opp-info@36 { + reg = <0x36 0x6>; + }; + gpu_opp_info: gpu-opp-info@3c { + reg = <0x3c 0x6>; + }; + npu_opp_info: npu-opp-info@42 { + reg = <0x42 0x6>; + }; + dmc_opp_info: dmc-opp-info@48 { + reg = <0x48 0x6>; + }; + remark_spec_serial_number: remark-spec-serial-number@56 { + reg = <0x56 0x1>; + bits = <0 5>; }; }; @@ -2809,7 +2991,7 @@ }; pdm: pdm@fe440000 { - compatible = "rockchip,rk3568-pdm"; + compatible = "rockchip,rk3568-pdm", "rockchip,pdm"; reg = <0x0 0xfe440000 0x0 0x1000>; clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>; clock-names = "pdm_clk", "pdm_hclk"; @@ -3049,6 +3231,7 @@ pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>; pinctrl-1 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins_hs>; + num-cs = <2>; status = "disabled"; }; @@ -3065,6 +3248,7 @@ pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi1m0_cs0 &spi1m0_cs1 &spi1m0_pins>; pinctrl-1 = <&spi1m0_cs0 &spi1m0_cs1 &spi1m0_pins_hs>; + num-cs = <2>; status = "disabled"; }; @@ -3081,6 +3265,7 @@ pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi2m0_cs0 &spi2m0_cs1 &spi2m0_pins>; pinctrl-1 = <&spi2m0_cs0 &spi2m0_cs1 &spi2m0_pins_hs>; + num-cs = <2>; status = "disabled"; }; @@ -3097,6 +3282,7 @@ pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi3m0_cs0 &spi3m0_cs1 &spi3m0_pins>; pinctrl-1 = <&spi3m0_cs0 &spi3m0_cs1 &spi3m0_pins_hs>; + num-cs = <2>; status = "disabled"; }; @@ -3111,7 +3297,7 @@ dmas = <&dmac0 2>, <&dmac0 3>; pinctrl-names = "default"; pinctrl-0 = <&uart1m0_xfer>; - status = "okay"; + status = "disabled"; }; uart2: serial@fe660000 { @@ -3475,31 +3661,33 @@ status = "disabled"; }; - video_phy0: video-phy@fe850000 { - compatible = "rockchip,rk3568-video-phy"; + video_phy0: phy@fe850000 { + compatible = "rockchip,rk3568-dsi-dphy", "rockchip,rk3568-video-phy"; reg = <0x0 0xfe850000 0x0 0x10000>, <0x0 0xfe060000 0x0 0x10000>; + reg-names = "phy", "host"; clocks = <&pmucru CLK_MIPIDSIPHY0_REF>, <&cru PCLK_MIPIDSIPHY0>, <&cru PCLK_DSITX_0>; - clock-names = "ref", "pclk_phy", "pclk_host"; + clock-names = "ref", "pclk", "pclk_host"; #clock-cells = <0>; resets = <&cru SRST_P_MIPIDSIPHY0>; - reset-names = "rst"; + reset-names = "apb"; power-domains = <&power RK3568_PD_VO>; #phy-cells = <0>; status = "disabled"; }; - video_phy1: video-phy@fe860000 { - compatible = "rockchip,rk3568-video-phy"; + video_phy1: phy@fe860000 { + compatible = "rockchip,rk3568-dsi-dphy", "rockchip,rk3568-video-phy"; reg = <0x0 0xfe860000 0x0 0x10000>, <0x0 0xfe070000 0x0 0x10000>; + reg-names = "phy", "host"; clocks = <&pmucru CLK_MIPIDSIPHY1_REF>, <&cru PCLK_MIPIDSIPHY1>, <&cru PCLK_DSITX_1>; - clock-names = "ref", "pclk_phy", "pclk_host"; + clock-names = "ref", "pclk", "pclk_host"; #clock-cells = <0>; resets = <&cru SRST_P_MIPIDSIPHY1>; - reset-names = "rst"; + reset-names = "apb"; power-domains = <&power RK3568_PD_VO>; #phy-cells = <0>; status = "disabled"; @@ -3609,7 +3797,7 @@ #size-cells = <2>; ranges; - gpio0: gpio@fdd60000 { + gpio0: gpio0@fdd60000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xfdd60000 0x0 0x100>; interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; @@ -3617,12 +3805,11 @@ gpio-controller; #gpio-cells = <2>; - gpio-ranges = <&pinctrl 0 0 32>; interrupt-controller; #interrupt-cells = <2>; }; - gpio1: gpio@fe740000 { + gpio1: gpio1@fe740000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xfe740000 0x0 0x100>; interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; @@ -3630,12 +3817,11 @@ gpio-controller; #gpio-cells = <2>; - gpio-ranges = <&pinctrl 0 32 32>; interrupt-controller; #interrupt-cells = <2>; }; - gpio2: gpio@fe750000 { + gpio2: gpio2@fe750000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xfe750000 0x0 0x100>; interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; @@ -3643,12 +3829,11 @@ gpio-controller; #gpio-cells = <2>; - gpio-ranges = <&pinctrl 0 64 32>; interrupt-controller; #interrupt-cells = <2>; }; - gpio3: gpio@fe760000 { + gpio3: gpio3@fe760000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xfe760000 0x0 0x100>; interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; @@ -3656,12 +3841,11 @@ gpio-controller; #gpio-cells = <2>; - gpio-ranges = <&pinctrl 0 96 32>; interrupt-controller; #interrupt-cells = <2>; }; - gpio4: gpio@fe770000 { + gpio4: gpio4@fe770000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xfe770000 0x0 0x100>; interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; @@ -3669,7 +3853,6 @@ gpio-controller; #gpio-cells = <2>; - gpio-ranges = <&pinctrl 0 128 32>; interrupt-controller; #interrupt-cells = <2>; }; -- Gitblit v1.6.2