1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (c) 2018, Craig Tatlor. 4 * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com> 5 * Copyright (c) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com> 6 * Copyright (c) 2020, Konrad Dybcio <konradybcio@gmail.com> 7 * Copyright (c) 2020, Martin Botka <martin.botka1@gmail.com> 8 */ 9 10#include "sdm630.dtsi" 11 12&adreno_gpu { 13 compatible = "qcom,adreno-512.0", "qcom,adreno"; 14 operating-points-v2 = <&gpu_sdm660_opp_table>; 15 16 gpu_sdm660_opp_table: opp-table { 17 compatible = "operating-points-v2"; 18 19 /* 20 * 775MHz is only available on the highest speed bin 21 * Though it cannot be used for now due to interconnect 22 * framework not supporting multiple frequencies 23 * at the same opp-level 24 25 opp-750000000 { 26 opp-hz = /bits/ 64 <750000000>; 27 opp-level = <RPM_SMD_LEVEL_TURBO>; 28 opp-peak-kBps = <5412000>; 29 opp-supported-hw = <0xCHECKME>; 30 }; 31 32 * These OPPs are correct, but we are lacking support for the 33 * GPU regulator. Hence, disable them for now to prevent the 34 * platform from hanging on high graphics loads. 35 36 opp-700000000 { 37 opp-hz = /bits/ 64 <700000000>; 38 opp-level = <RPM_SMD_LEVEL_TURBO>; 39 opp-peak-kBps = <5184000>; 40 opp-supported-hw = <0xff>; 41 }; 42 43 opp-647000000 { 44 opp-hz = /bits/ 64 <647000000>; 45 opp-level = <RPM_SMD_LEVEL_NOM_PLUS>; 46 opp-peak-kBps = <4068000>; 47 opp-supported-hw = <0xff>; 48 }; 49 50 opp-588000000 { 51 opp-hz = /bits/ 64 <588000000>; 52 opp-level = <RPM_SMD_LEVEL_NOM>; 53 opp-peak-kBps = <3072000>; 54 opp-supported-hw = <0xff>; 55 }; 56 57 opp-465000000 { 58 opp-hz = /bits/ 64 <465000000>; 59 opp-level = <RPM_SMD_LEVEL_SVS_PLUS>; 60 opp-peak-kBps = <2724000>; 61 opp-supported-hw = <0xff>; 62 }; 63 64 opp-370000000 { 65 opp-hz = /bits/ 64 <370000000>; 66 opp-level = <RPM_SMD_LEVEL_SVS>; 67 opp-peak-kBps = <2188000>; 68 opp-supported-hw = <0xff>; 69 }; 70 */ 71 72 opp-266000000 { 73 opp-hz = /bits/ 64 <266000000>; 74 opp-level = <RPM_SMD_LEVEL_LOW_SVS>; 75 opp-peak-kBps = <1648000>; 76 opp-supported-hw = <0xff>; 77 }; 78 79 opp-160000000 { 80 opp-hz = /bits/ 64 <160000000>; 81 opp-level = <RPM_SMD_LEVEL_MIN_SVS>; 82 opp-peak-kBps = <1200000>; 83 opp-supported-hw = <0xff>; 84 }; 85 }; 86}; 87 88&cpu0 { 89 compatible = "qcom,kryo260"; 90 capacity-dmips-mhz = <1024>; 91 /delete-property/ operating-points-v2; 92}; 93 94&cpu1 { 95 compatible = "qcom,kryo260"; 96 capacity-dmips-mhz = <1024>; 97 /delete-property/ operating-points-v2; 98}; 99 100&cpu2 { 101 compatible = "qcom,kryo260"; 102 capacity-dmips-mhz = <1024>; 103 /delete-property/ operating-points-v2; 104}; 105 106&cpu3 { 107 compatible = "qcom,kryo260"; 108 capacity-dmips-mhz = <1024>; 109 /delete-property/ operating-points-v2; 110}; 111 112&cpu4 { 113 compatible = "qcom,kryo260"; 114 capacity-dmips-mhz = <640>; 115 /delete-property/ operating-points-v2; 116}; 117 118&cpu5 { 119 compatible = "qcom,kryo260"; 120 capacity-dmips-mhz = <640>; 121 /delete-property/ operating-points-v2; 122}; 123 124&cpu6 { 125 compatible = "qcom,kryo260"; 126 capacity-dmips-mhz = <640>; 127 /delete-property/ operating-points-v2; 128}; 129 130&cpu7 { 131 compatible = "qcom,kryo260"; 132 capacity-dmips-mhz = <640>; 133 /delete-property/ operating-points-v2; 134}; 135 136&gcc { 137 compatible = "qcom,gcc-sdm660"; 138}; 139 140&gpucc { 141 compatible = "qcom,gpucc-sdm660"; 142}; 143 144&mdp { 145 compatible = "qcom,sdm660-mdp5", "qcom,mdp5"; 146 147 ports { 148 port@1 { 149 reg = <1>; 150 mdp5_intf2_out: endpoint { 151 remote-endpoint = <&mdss_dsi1_in>; 152 }; 153 }; 154 }; 155}; 156 157&mdss { 158 mdss_dsi1: dsi@c996000 { 159 compatible = "qcom,sdm660-dsi-ctrl", 160 "qcom,mdss-dsi-ctrl"; 161 reg = <0x0c996000 0x400>; 162 reg-names = "dsi_ctrl"; 163 164 /* DSI1 shares the OPP table with DSI0 */ 165 operating-points-v2 = <&dsi_opp_table>; 166 power-domains = <&rpmpd SDM660_VDDCX>; 167 168 interrupt-parent = <&mdss>; 169 interrupts = <5>; 170 171 assigned-clocks = <&mmcc BYTE1_CLK_SRC>, 172 <&mmcc PCLK1_CLK_SRC>; 173 assigned-clock-parents = <&mdss_dsi1_phy 0>, 174 <&mdss_dsi1_phy 1>; 175 176 clocks = <&mmcc MDSS_MDP_CLK>, 177 <&mmcc MDSS_BYTE1_CLK>, 178 <&mmcc MDSS_BYTE1_INTF_CLK>, 179 <&mmcc MNOC_AHB_CLK>, 180 <&mmcc MDSS_AHB_CLK>, 181 <&mmcc MDSS_AXI_CLK>, 182 <&mmcc MISC_AHB_CLK>, 183 <&mmcc MDSS_PCLK1_CLK>, 184 <&mmcc MDSS_ESC1_CLK>; 185 clock-names = "mdp_core", 186 "byte", 187 "byte_intf", 188 "mnoc", 189 "iface", 190 "bus", 191 "core_mmss", 192 "pixel", 193 "core"; 194 195 phys = <&mdss_dsi1_phy>; 196 197 status = "disabled"; 198 199 ports { 200 #address-cells = <1>; 201 #size-cells = <0>; 202 203 port@0 { 204 reg = <0>; 205 mdss_dsi1_in: endpoint { 206 remote-endpoint = <&mdp5_intf2_out>; 207 }; 208 }; 209 210 port@1 { 211 reg = <1>; 212 mdss_dsi1_out: endpoint { 213 }; 214 }; 215 }; 216 }; 217 218 mdss_dsi1_phy: phy@c996400 { 219 compatible = "qcom,dsi-phy-14nm-660"; 220 reg = <0x0c996400 0x100>, 221 <0x0c996500 0x300>, 222 <0x0c996800 0x188>; 223 reg-names = "dsi_phy", 224 "dsi_phy_lane", 225 "dsi_pll"; 226 227 #clock-cells = <1>; 228 #phy-cells = <0>; 229 230 clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>; 231 clock-names = "iface", "ref"; 232 status = "disabled"; 233 }; 234}; 235 236&mmcc { 237 compatible = "qcom,mmcc-sdm660"; 238 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, 239 <&sleep_clk>, 240 <&gcc GCC_MMSS_GPLL0_CLK>, 241 <&gcc GCC_MMSS_GPLL0_DIV_CLK>, 242 <&mdss_dsi0_phy 1>, 243 <&mdss_dsi0_phy 0>, 244 <&mdss_dsi1_phy 1>, 245 <&mdss_dsi1_phy 0>, 246 <0>, 247 <0>; 248}; 249 250&tlmm { 251 compatible = "qcom,sdm660-pinctrl"; 252}; 253 254&tsens { 255 #qcom,sensors = <14>; 256}; 257