1feec3441SCraig Tatlor// SPDX-License-Identifier: GPL-2.0-only 2feec3441SCraig Tatlor/* 3feec3441SCraig Tatlor * Copyright (c) 2018, Craig Tatlor. 4feec3441SCraig Tatlor * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com> 505aa0eb3SKonrad Dybcio * Copyright (c) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com> 605aa0eb3SKonrad Dybcio * Copyright (c) 2020, Konrad Dybcio <konradybcio@gmail.com> 705aa0eb3SKonrad Dybcio * Copyright (c) 2020, Martin Botka <martin.botka1@gmail.com> 8feec3441SCraig Tatlor */ 9feec3441SCraig Tatlor 1005aa0eb3SKonrad Dybcio#include "sdm630.dtsi" 11feec3441SCraig Tatlor 1205aa0eb3SKonrad Dybcio&adreno_gpu { 1305aa0eb3SKonrad Dybcio compatible = "qcom,adreno-512.0", "qcom,adreno"; 1405aa0eb3SKonrad Dybcio operating-points-v2 = <&gpu_sdm660_opp_table>; 15feec3441SCraig Tatlor 1605aa0eb3SKonrad Dybcio gpu_sdm660_opp_table: opp-table { 1705aa0eb3SKonrad Dybcio compatible = "operating-points-v2"; 18feec3441SCraig Tatlor 1905aa0eb3SKonrad Dybcio /* 2005aa0eb3SKonrad Dybcio * 775MHz is only available on the highest speed bin 2105aa0eb3SKonrad Dybcio * Though it cannot be used for now due to interconnect 2205aa0eb3SKonrad Dybcio * framework not supporting multiple frequencies 2305aa0eb3SKonrad Dybcio * at the same opp-level 24feec3441SCraig Tatlor 2505aa0eb3SKonrad Dybcio opp-750000000 { 2605aa0eb3SKonrad Dybcio opp-hz = /bits/ 64 <750000000>; 2705aa0eb3SKonrad Dybcio opp-level = <RPM_SMD_LEVEL_TURBO>; 2805aa0eb3SKonrad Dybcio opp-peak-kBps = <5412000>; 2905aa0eb3SKonrad Dybcio opp-supported-hw = <0xCHECKME>; 30feec3441SCraig Tatlor }; 31feec3441SCraig Tatlor 3205aa0eb3SKonrad Dybcio * These OPPs are correct, but we are lacking support for the 3305aa0eb3SKonrad Dybcio * GPU regulator. Hence, disable them for now to prevent the 3405aa0eb3SKonrad Dybcio * platform from hanging on high graphics loads. 3505aa0eb3SKonrad Dybcio 3605aa0eb3SKonrad Dybcio opp-700000000 { 3705aa0eb3SKonrad Dybcio opp-hz = /bits/ 64 <700000000>; 3805aa0eb3SKonrad Dybcio opp-level = <RPM_SMD_LEVEL_TURBO>; 3905aa0eb3SKonrad Dybcio opp-peak-kBps = <5184000>; 405c9d7772SKonrad Dybcio opp-supported-hw = <0xff>; 4105aa0eb3SKonrad Dybcio }; 4205aa0eb3SKonrad Dybcio 4305aa0eb3SKonrad Dybcio opp-647000000 { 4405aa0eb3SKonrad Dybcio opp-hz = /bits/ 64 <647000000>; 4505aa0eb3SKonrad Dybcio opp-level = <RPM_SMD_LEVEL_NOM_PLUS>; 4605aa0eb3SKonrad Dybcio opp-peak-kBps = <4068000>; 475c9d7772SKonrad Dybcio opp-supported-hw = <0xff>; 4805aa0eb3SKonrad Dybcio }; 4905aa0eb3SKonrad Dybcio 5005aa0eb3SKonrad Dybcio opp-588000000 { 5105aa0eb3SKonrad Dybcio opp-hz = /bits/ 64 <588000000>; 5205aa0eb3SKonrad Dybcio opp-level = <RPM_SMD_LEVEL_NOM>; 5305aa0eb3SKonrad Dybcio opp-peak-kBps = <3072000>; 545c9d7772SKonrad Dybcio opp-supported-hw = <0xff>; 5505aa0eb3SKonrad Dybcio }; 5605aa0eb3SKonrad Dybcio 5705aa0eb3SKonrad Dybcio opp-465000000 { 5805aa0eb3SKonrad Dybcio opp-hz = /bits/ 64 <465000000>; 5905aa0eb3SKonrad Dybcio opp-level = <RPM_SMD_LEVEL_SVS_PLUS>; 6005aa0eb3SKonrad Dybcio opp-peak-kBps = <2724000>; 615c9d7772SKonrad Dybcio opp-supported-hw = <0xff>; 6205aa0eb3SKonrad Dybcio }; 6305aa0eb3SKonrad Dybcio 6405aa0eb3SKonrad Dybcio opp-370000000 { 6505aa0eb3SKonrad Dybcio opp-hz = /bits/ 64 <370000000>; 6605aa0eb3SKonrad Dybcio opp-level = <RPM_SMD_LEVEL_SVS>; 6705aa0eb3SKonrad Dybcio opp-peak-kBps = <2188000>; 685c9d7772SKonrad Dybcio opp-supported-hw = <0xff>; 6905aa0eb3SKonrad Dybcio }; 7005aa0eb3SKonrad Dybcio */ 7105aa0eb3SKonrad Dybcio 7205aa0eb3SKonrad Dybcio opp-266000000 { 7305aa0eb3SKonrad Dybcio opp-hz = /bits/ 64 <266000000>; 7405aa0eb3SKonrad Dybcio opp-level = <RPM_SMD_LEVEL_LOW_SVS>; 7505aa0eb3SKonrad Dybcio opp-peak-kBps = <1648000>; 765c9d7772SKonrad Dybcio opp-supported-hw = <0xff>; 7705aa0eb3SKonrad Dybcio }; 7805aa0eb3SKonrad Dybcio 7905aa0eb3SKonrad Dybcio opp-160000000 { 8005aa0eb3SKonrad Dybcio opp-hz = /bits/ 64 <160000000>; 8105aa0eb3SKonrad Dybcio opp-level = <RPM_SMD_LEVEL_MIN_SVS>; 8205aa0eb3SKonrad Dybcio opp-peak-kBps = <1200000>; 835c9d7772SKonrad Dybcio opp-supported-hw = <0xff>; 8405aa0eb3SKonrad Dybcio }; 85feec3441SCraig Tatlor }; 86feec3441SCraig Tatlor}; 87feec3441SCraig Tatlor 8805aa0eb3SKonrad Dybcio&CPU0 { 89feec3441SCraig Tatlor compatible = "qcom,kryo260"; 90feec3441SCraig Tatlor capacity-dmips-mhz = <1024>; 9105aa0eb3SKonrad Dybcio /delete-property/ operating-points-v2; 92feec3441SCraig Tatlor}; 93feec3441SCraig Tatlor 9405aa0eb3SKonrad Dybcio&CPU1 { 95feec3441SCraig Tatlor compatible = "qcom,kryo260"; 96feec3441SCraig Tatlor capacity-dmips-mhz = <1024>; 9705aa0eb3SKonrad Dybcio /delete-property/ operating-points-v2; 98feec3441SCraig Tatlor}; 99feec3441SCraig Tatlor 10005aa0eb3SKonrad Dybcio&CPU2 { 101feec3441SCraig Tatlor compatible = "qcom,kryo260"; 102feec3441SCraig Tatlor capacity-dmips-mhz = <1024>; 10305aa0eb3SKonrad Dybcio /delete-property/ operating-points-v2; 104feec3441SCraig Tatlor}; 105feec3441SCraig Tatlor 10605aa0eb3SKonrad Dybcio&CPU3 { 107feec3441SCraig Tatlor compatible = "qcom,kryo260"; 108feec3441SCraig Tatlor capacity-dmips-mhz = <1024>; 10905aa0eb3SKonrad Dybcio /delete-property/ operating-points-v2; 110feec3441SCraig Tatlor}; 111feec3441SCraig Tatlor 11205aa0eb3SKonrad Dybcio&CPU4 { 113feec3441SCraig Tatlor compatible = "qcom,kryo260"; 114feec3441SCraig Tatlor capacity-dmips-mhz = <640>; 11505aa0eb3SKonrad Dybcio /delete-property/ operating-points-v2; 116feec3441SCraig Tatlor}; 117feec3441SCraig Tatlor 11805aa0eb3SKonrad Dybcio&CPU5 { 119feec3441SCraig Tatlor compatible = "qcom,kryo260"; 120feec3441SCraig Tatlor capacity-dmips-mhz = <640>; 12105aa0eb3SKonrad Dybcio /delete-property/ operating-points-v2; 122feec3441SCraig Tatlor}; 123feec3441SCraig Tatlor 12405aa0eb3SKonrad Dybcio&CPU6 { 125feec3441SCraig Tatlor compatible = "qcom,kryo260"; 126feec3441SCraig Tatlor capacity-dmips-mhz = <640>; 12705aa0eb3SKonrad Dybcio /delete-property/ operating-points-v2; 128feec3441SCraig Tatlor}; 129feec3441SCraig Tatlor 13005aa0eb3SKonrad Dybcio&CPU7 { 131feec3441SCraig Tatlor compatible = "qcom,kryo260"; 132feec3441SCraig Tatlor capacity-dmips-mhz = <640>; 13305aa0eb3SKonrad Dybcio /delete-property/ operating-points-v2; 134feec3441SCraig Tatlor}; 135feec3441SCraig Tatlor 13605aa0eb3SKonrad Dybcio&gcc { 137feec3441SCraig Tatlor compatible = "qcom,gcc-sdm660"; 138feec3441SCraig Tatlor}; 139feec3441SCraig Tatlor 14005aa0eb3SKonrad Dybcio&gpucc { 14105aa0eb3SKonrad Dybcio compatible = "qcom,gpucc-sdm660"; 14205aa0eb3SKonrad Dybcio}; 14305aa0eb3SKonrad Dybcio 144ab290284SKonrad Dybcio&mdp { 145d46fbd45SDmitry Baryshkov compatible = "qcom,sdm660-mdp5", "qcom,mdp5"; 146d46fbd45SDmitry Baryshkov 147ab290284SKonrad Dybcio ports { 148ab290284SKonrad Dybcio port@1 { 149ab290284SKonrad Dybcio reg = <1>; 150ab290284SKonrad Dybcio mdp5_intf2_out: endpoint { 151*8e61d532SDmitry Baryshkov remote-endpoint = <&mdss_dsi1_in>; 152ab290284SKonrad Dybcio }; 153ab290284SKonrad Dybcio }; 154ab290284SKonrad Dybcio }; 155ab290284SKonrad Dybcio}; 156ab290284SKonrad Dybcio 157ab290284SKonrad Dybcio&mdss { 158*8e61d532SDmitry Baryshkov mdss_dsi1: dsi@c996000 { 1593381020aSBryan O'Donoghue compatible = "qcom,sdm660-dsi-ctrl", 1603381020aSBryan O'Donoghue "qcom,mdss-dsi-ctrl"; 161ab290284SKonrad Dybcio reg = <0x0c996000 0x400>; 162ab290284SKonrad Dybcio reg-names = "dsi_ctrl"; 163ab290284SKonrad Dybcio 164ab290284SKonrad Dybcio /* DSI1 shares the OPP table with DSI0 */ 165ab290284SKonrad Dybcio operating-points-v2 = <&dsi_opp_table>; 166ab290284SKonrad Dybcio power-domains = <&rpmpd SDM660_VDDCX>; 167ab290284SKonrad Dybcio 168ab290284SKonrad Dybcio interrupt-parent = <&mdss>; 16963ddd8a5SDmitry Baryshkov interrupts = <5>; 170ab290284SKonrad Dybcio 171ab290284SKonrad Dybcio assigned-clocks = <&mmcc BYTE1_CLK_SRC>, 172ab290284SKonrad Dybcio <&mmcc PCLK1_CLK_SRC>; 173*8e61d532SDmitry Baryshkov assigned-clock-parents = <&mdss_dsi1_phy 0>, 174*8e61d532SDmitry Baryshkov <&mdss_dsi1_phy 1>; 175ab290284SKonrad Dybcio 176ab290284SKonrad Dybcio clocks = <&mmcc MDSS_MDP_CLK>, 177ab290284SKonrad Dybcio <&mmcc MDSS_BYTE1_CLK>, 178ab290284SKonrad Dybcio <&mmcc MDSS_BYTE1_INTF_CLK>, 179ab290284SKonrad Dybcio <&mmcc MNOC_AHB_CLK>, 180ab290284SKonrad Dybcio <&mmcc MDSS_AHB_CLK>, 181ab290284SKonrad Dybcio <&mmcc MDSS_AXI_CLK>, 182ab290284SKonrad Dybcio <&mmcc MISC_AHB_CLK>, 183ab290284SKonrad Dybcio <&mmcc MDSS_PCLK1_CLK>, 184ab290284SKonrad Dybcio <&mmcc MDSS_ESC1_CLK>; 185ab290284SKonrad Dybcio clock-names = "mdp_core", 186ab290284SKonrad Dybcio "byte", 187ab290284SKonrad Dybcio "byte_intf", 188ab290284SKonrad Dybcio "mnoc", 189ab290284SKonrad Dybcio "iface", 190ab290284SKonrad Dybcio "bus", 191ab290284SKonrad Dybcio "core_mmss", 192ab290284SKonrad Dybcio "pixel", 193ab290284SKonrad Dybcio "core"; 194ab290284SKonrad Dybcio 195*8e61d532SDmitry Baryshkov phys = <&mdss_dsi1_phy>; 196ab290284SKonrad Dybcio 1977d8ee8e5SDmitry Baryshkov status = "disabled"; 1987d8ee8e5SDmitry Baryshkov 199ab290284SKonrad Dybcio ports { 200ab290284SKonrad Dybcio #address-cells = <1>; 201ab290284SKonrad Dybcio #size-cells = <0>; 202ab290284SKonrad Dybcio 203ab290284SKonrad Dybcio port@0 { 204ab290284SKonrad Dybcio reg = <0>; 205*8e61d532SDmitry Baryshkov mdss_dsi1_in: endpoint { 206ab290284SKonrad Dybcio remote-endpoint = <&mdp5_intf2_out>; 207ab290284SKonrad Dybcio }; 208ab290284SKonrad Dybcio }; 209ab290284SKonrad Dybcio 210ab290284SKonrad Dybcio port@1 { 211ab290284SKonrad Dybcio reg = <1>; 212*8e61d532SDmitry Baryshkov mdss_dsi1_out: endpoint { 213ab290284SKonrad Dybcio }; 214ab290284SKonrad Dybcio }; 215ab290284SKonrad Dybcio }; 216ab290284SKonrad Dybcio }; 217ab290284SKonrad Dybcio 218*8e61d532SDmitry Baryshkov mdss_dsi1_phy: phy@c996400 { 219ab290284SKonrad Dybcio compatible = "qcom,dsi-phy-14nm-660"; 220ab290284SKonrad Dybcio reg = <0x0c996400 0x100>, 221ab290284SKonrad Dybcio <0x0c996500 0x300>, 222ab290284SKonrad Dybcio <0x0c996800 0x188>; 223ab290284SKonrad Dybcio reg-names = "dsi_phy", 224ab290284SKonrad Dybcio "dsi_phy_lane", 225ab290284SKonrad Dybcio "dsi_pll"; 226ab290284SKonrad Dybcio 227ab290284SKonrad Dybcio #clock-cells = <1>; 228ab290284SKonrad Dybcio #phy-cells = <0>; 229ab290284SKonrad Dybcio 230ab290284SKonrad Dybcio clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>; 231ab290284SKonrad Dybcio clock-names = "iface", "ref"; 2327d8ee8e5SDmitry Baryshkov status = "disabled"; 233ab290284SKonrad Dybcio }; 234ab290284SKonrad Dybcio}; 235ab290284SKonrad Dybcio 23605aa0eb3SKonrad Dybcio&mmcc { 23705aa0eb3SKonrad Dybcio compatible = "qcom,mmcc-sdm660"; 238ab290284SKonrad Dybcio clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, 239ab290284SKonrad Dybcio <&sleep_clk>, 240ab290284SKonrad Dybcio <&gcc GCC_MMSS_GPLL0_CLK>, 241ab290284SKonrad Dybcio <&gcc GCC_MMSS_GPLL0_DIV_CLK>, 242*8e61d532SDmitry Baryshkov <&mdss_dsi0_phy 1>, 243*8e61d532SDmitry Baryshkov <&mdss_dsi0_phy 0>, 244*8e61d532SDmitry Baryshkov <&mdss_dsi1_phy 1>, 245*8e61d532SDmitry Baryshkov <&mdss_dsi1_phy 0>, 246ab290284SKonrad Dybcio <0>, 247ab290284SKonrad Dybcio <0>; 24805aa0eb3SKonrad Dybcio}; 24905aa0eb3SKonrad Dybcio 25005aa0eb3SKonrad Dybcio&tlmm { 251feec3441SCraig Tatlor compatible = "qcom,sdm660-pinctrl"; 252feec3441SCraig Tatlor}; 253feec3441SCraig Tatlor 25405aa0eb3SKonrad Dybcio&tsens { 25505aa0eb3SKonrad Dybcio #qcom,sensors = <14>; 256feec3441SCraig Tatlor}; 257