// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2018, Craig Tatlor. * Copyright (c) 2020, Alexey Minnekhanov * Copyright (c) 2020, AngeloGioacchino Del Regno * Copyright (c) 2020, Konrad Dybcio * Copyright (c) 2020, Martin Botka */ #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 = ; 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 = ; opp-peak-kBps = <5184000>; opp-supported-hw = <0xFF>; }; opp-647000000 { opp-hz = /bits/ 64 <647000000>; opp-level = ; opp-peak-kBps = <4068000>; opp-supported-hw = <0xFF>; }; opp-588000000 { opp-hz = /bits/ 64 <588000000>; opp-level = ; opp-peak-kBps = <3072000>; opp-supported-hw = <0xFF>; }; opp-465000000 { opp-hz = /bits/ 64 <465000000>; opp-level = ; opp-peak-kBps = <2724000>; opp-supported-hw = <0xFF>; }; opp-370000000 { opp-hz = /bits/ 64 <370000000>; opp-level = ; opp-peak-kBps = <2188000>; opp-supported-hw = <0xFF>; }; */ opp-266000000 { opp-hz = /bits/ 64 <266000000>; opp-level = ; opp-peak-kBps = <1648000>; opp-supported-hw = <0xFF>; }; opp-160000000 { opp-hz = /bits/ 64 <160000000>; opp-level = ; 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 IRQ_TYPE_LEVEL_HIGH>; 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"; 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"; }; }; &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>; };