diff options
Diffstat (limited to 'arch/arm64/boot/dts/qcom/sdm660.dtsi')
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm660.dtsi | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/qcom/sdm660.dtsi b/arch/arm64/boot/dts/qcom/sdm660.dtsi new file mode 100644 index 000000000..43220af1b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sdm660.dtsi @@ -0,0 +1,254 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2018, Craig Tatlor. + * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com> + * Copyright (c) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com> + * Copyright (c) 2020, Konrad Dybcio <konradybcio@gmail.com> + * Copyright (c) 2020, Martin Botka <martin.botka1@gmail.com> + */ + +#include "sdm630.dtsi" + +&adreno_gpu { + compatible = "qcom,adreno-512.0", "qcom,adreno"; + operating-points-v2 = <&gpu_sdm660_opp_table>; + + gpu_sdm660_opp_table: opp-table { + compatible = "operating-points-v2"; + + /* + * 775MHz is only available on the highest speed bin + * Though it cannot be used for now due to interconnect + * framework not supporting multiple frequencies + * at the same opp-level + + opp-750000000 { + opp-hz = /bits/ 64 <750000000>; + opp-level = <RPM_SMD_LEVEL_TURBO>; + opp-peak-kBps = <5412000>; + opp-supported-hw = <0xCHECKME>; + }; + + * These OPPs are correct, but we are lacking support for the + * GPU regulator. Hence, disable them for now to prevent the + * platform from hanging on high graphics loads. + + opp-700000000 { + opp-hz = /bits/ 64 <700000000>; + opp-level = <RPM_SMD_LEVEL_TURBO>; + opp-peak-kBps = <5184000>; + opp-supported-hw = <0xFF>; + }; + + opp-647000000 { + opp-hz = /bits/ 64 <647000000>; + opp-level = <RPM_SMD_LEVEL_NOM_PLUS>; + opp-peak-kBps = <4068000>; + opp-supported-hw = <0xFF>; + }; + + opp-588000000 { + opp-hz = /bits/ 64 <588000000>; + opp-level = <RPM_SMD_LEVEL_NOM>; + opp-peak-kBps = <3072000>; + opp-supported-hw = <0xFF>; + }; + + opp-465000000 { + opp-hz = /bits/ 64 <465000000>; + opp-level = <RPM_SMD_LEVEL_SVS_PLUS>; + opp-peak-kBps = <2724000>; + opp-supported-hw = <0xFF>; + }; + + opp-370000000 { + opp-hz = /bits/ 64 <370000000>; + opp-level = <RPM_SMD_LEVEL_SVS>; + opp-peak-kBps = <2188000>; + opp-supported-hw = <0xFF>; + }; + */ + + opp-266000000 { + opp-hz = /bits/ 64 <266000000>; + opp-level = <RPM_SMD_LEVEL_LOW_SVS>; + opp-peak-kBps = <1648000>; + opp-supported-hw = <0xFF>; + }; + + opp-160000000 { + opp-hz = /bits/ 64 <160000000>; + opp-level = <RPM_SMD_LEVEL_MIN_SVS>; + opp-peak-kBps = <1200000>; + opp-supported-hw = <0xFF>; + }; + }; +}; + +&CPU0 { + compatible = "qcom,kryo260"; + capacity-dmips-mhz = <1024>; + /delete-property/ operating-points-v2; +}; + +&CPU1 { + compatible = "qcom,kryo260"; + capacity-dmips-mhz = <1024>; + /delete-property/ operating-points-v2; +}; + +&CPU2 { + compatible = "qcom,kryo260"; + capacity-dmips-mhz = <1024>; + /delete-property/ operating-points-v2; +}; + +&CPU3 { + compatible = "qcom,kryo260"; + capacity-dmips-mhz = <1024>; + /delete-property/ operating-points-v2; +}; + +&CPU4 { + compatible = "qcom,kryo260"; + capacity-dmips-mhz = <640>; + /delete-property/ operating-points-v2; +}; + +&CPU5 { + compatible = "qcom,kryo260"; + capacity-dmips-mhz = <640>; + /delete-property/ operating-points-v2; +}; + +&CPU6 { + compatible = "qcom,kryo260"; + capacity-dmips-mhz = <640>; + /delete-property/ operating-points-v2; +}; + +&CPU7 { + compatible = "qcom,kryo260"; + capacity-dmips-mhz = <640>; + /delete-property/ operating-points-v2; +}; + +&gcc { + compatible = "qcom,gcc-sdm660"; +}; + +&gpucc { + compatible = "qcom,gpucc-sdm660"; +}; + +&mdp { + ports { + port@1 { + reg = <1>; + mdp5_intf2_out: endpoint { + remote-endpoint = <&dsi1_in>; + }; + }; + }; +}; + +&mdss { + dsi1: dsi@c996000 { + compatible = "qcom,mdss-dsi-ctrl"; + reg = <0x0c996000 0x400>; + reg-names = "dsi_ctrl"; + + /* DSI1 shares the OPP table with DSI0 */ + operating-points-v2 = <&dsi_opp_table>; + power-domains = <&rpmpd SDM660_VDDCX>; + + interrupt-parent = <&mdss>; + interrupts = <5>; + + assigned-clocks = <&mmcc BYTE1_CLK_SRC>, + <&mmcc PCLK1_CLK_SRC>; + assigned-clock-parents = <&dsi1_phy 0>, + <&dsi1_phy 1>; + + clocks = <&mmcc MDSS_MDP_CLK>, + <&mmcc MDSS_BYTE1_CLK>, + <&mmcc MDSS_BYTE1_INTF_CLK>, + <&mmcc MNOC_AHB_CLK>, + <&mmcc MDSS_AHB_CLK>, + <&mmcc MDSS_AXI_CLK>, + <&mmcc MISC_AHB_CLK>, + <&mmcc MDSS_PCLK1_CLK>, + <&mmcc MDSS_ESC1_CLK>; + clock-names = "mdp_core", + "byte", + "byte_intf", + "mnoc", + "iface", + "bus", + "core_mmss", + "pixel", + "core"; + + phys = <&dsi1_phy>; + phy-names = "dsi"; + + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dsi1_in: endpoint { + remote-endpoint = <&mdp5_intf2_out>; + }; + }; + + port@1 { + reg = <1>; + dsi1_out: endpoint { + }; + }; + }; + }; + + dsi1_phy: dsi-phy@c996400 { + compatible = "qcom,dsi-phy-14nm-660"; + reg = <0x0c996400 0x100>, + <0x0c996500 0x300>, + <0x0c996800 0x188>; + reg-names = "dsi_phy", + "dsi_phy_lane", + "dsi_pll"; + + #clock-cells = <1>; + #phy-cells = <0>; + + clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>; + clock-names = "iface", "ref"; + status = "disabled"; + }; +}; + +&mmcc { + compatible = "qcom,mmcc-sdm660"; + clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, + <&sleep_clk>, + <&gcc GCC_MMSS_GPLL0_CLK>, + <&gcc GCC_MMSS_GPLL0_DIV_CLK>, + <&dsi0_phy 1>, + <&dsi0_phy 0>, + <&dsi1_phy 1>, + <&dsi1_phy 0>, + <0>, + <0>; +}; + +&tlmm { + compatible = "qcom,sdm660-pinctrl"; +}; + +&tsens { + #qcom,sensors = <14>; +}; |