1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org> 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 10#include "sm8150.dtsi" 11#include "pm8150.dtsi" 12#include "pm8150b.dtsi" 13#include "pm8150l.dtsi" 14 15/delete-node/ &cdsp_mem; 16/delete-node/ &gpu_mem; 17/delete-node/ &ipa_fw_mem; 18/delete-node/ &ipa_gsi_mem; 19/delete-node/ &mpss_mem; 20/delete-node/ &slpi_mem; 21/delete-node/ &spss_mem; 22/delete-node/ &venus_mem; 23 24/ { 25 qcom,msm-id = <339 0x20000>; /* SM8150 v2 */ 26 qcom,board-id = <8 0>; 27 28 chosen { 29 #address-cells = <2>; 30 #size-cells = <2>; 31 ranges; 32 33 framebuffer: framebuffer@9c000000 { 34 compatible = "simple-framebuffer"; 35 reg = <0 0x9c000000 0 0x2300000>; 36 width = <1644>; 37 height = <3840>; 38 stride = <(1644 * 4)>; 39 format = "a8r8g8b8"; 40 /* 41 * That's (going to be) a lot of clocks, but it's necessary due 42 * to unused clk cleanup & no panel driver yet (& no dispcc either).. 43 */ 44 clocks = <&gcc GCC_DISP_HF_AXI_CLK>, 45 <&gcc GCC_DISP_SF_AXI_CLK>; 46 }; 47 }; 48 49 vph_pwr: vph-pwr-regulator { 50 compatible = "regulator-fixed"; 51 regulator-name = "vph_pwr"; 52 regulator-min-microvolt = <3700000>; 53 regulator-max-microvolt = <3700000>; 54 }; 55 56 /* 57 * Apparently RPMh does not provide support for PM8150 S4 because it 58 * is always-on; model it as a fixed regulator. 59 */ 60 vreg_s4a_1p8: pm8150-s4 { 61 compatible = "regulator-fixed"; 62 regulator-name = "vreg_s4a_1p8"; 63 64 regulator-min-microvolt = <1800000>; 65 regulator-max-microvolt = <1800000>; 66 67 regulator-always-on; 68 regulator-boot-on; 69 70 vin-supply = <&vph_pwr>; 71 }; 72 73 reserved-memory { 74 mpss_mem: memory@8dc00000 { 75 reg = <0x0 0x8dc00000 0x0 0x9600000>; 76 no-map; 77 }; 78 79 venus_mem: memory@97200000 { 80 reg = <0x0 0x97200000 0x0 0x500000>; 81 no-map; 82 }; 83 84 slpi_mem: memory@97700000 { 85 reg = <0x0 0x97700000 0x0 0x1400000>; 86 no-map; 87 }; 88 89 ipa_fw_mem: memory@98b00000 { 90 reg = <0x0 0x98b00000 0x0 0x10000>; 91 no-map; 92 }; 93 94 ipa_gsi_mem: memory@98b10000 { 95 reg = <0x0 0x98b10000 0x0 0x5000>; 96 no-map; 97 }; 98 99 gpu_mem: memory@98b15000 { 100 reg = <0x0 0x98b15000 0x0 0x2000>; 101 no-map; 102 }; 103 104 spss_mem: memory@98c00000 { 105 reg = <0x0 0x98c00000 0x0 0x100000>; 106 no-map; 107 }; 108 109 cdsp_mem: memory@98d00000 { 110 reg = <0x0 0x98d00000 0x0 0x1400000>; 111 no-map; 112 }; 113 114 cont_splash_mem: memory@9c000000 { 115 reg = <0x0 0x9c000000 0x0 0x2400000>; 116 no-map; 117 }; 118 119 cdsp_sec_mem: memory@a4c00000 { 120 reg = <0x0 0xa4c00000 0x0 0x3c00000>; 121 no-map; 122 }; 123 124 ramoops@ffc00000 { 125 compatible = "ramoops"; 126 reg = <0x0 0xffc00000 0x0 0x100000>; 127 record-size = <0x1000>; 128 console-size = <0x40000>; 129 msg-size = <0x20000 0x20000>; 130 ecc-size = <16>; 131 no-map; 132 }; 133 }; 134}; 135 136&adsp_mem { 137 reg = <0x0 0x8be00000 0x0 0x1e00000>; 138}; 139 140&apps_rsc { 141 pm8150-rpmh-regulators { 142 compatible = "qcom,pm8150-rpmh-regulators"; 143 qcom,pmic-id = "a"; 144 145 vdd-s1-supply = <&vph_pwr>; 146 vdd-s2-supply = <&vph_pwr>; 147 vdd-s3-supply = <&vph_pwr>; 148 vdd-s4-supply = <&vph_pwr>; 149 vdd-s5-supply = <&vph_pwr>; 150 vdd-s6-supply = <&vph_pwr>; 151 vdd-s7-supply = <&vph_pwr>; 152 vdd-s8-supply = <&vph_pwr>; 153 vdd-s9-supply = <&vph_pwr>; 154 vdd-s10-supply = <&vph_pwr>; 155 156 vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>; 157 vdd-l2-l10-supply = <&vreg_bob>; 158 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>; 159 vdd-l6-l9-supply = <&vreg_s8c_1p3>; 160 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>; 161 vdd-l13-l16-l17-supply = <&vreg_bob>; 162 163 vreg_s2a_0p6: smps2 { 164 regulator-min-microvolt = <600000>; 165 regulator-max-microvolt = <600000>; 166 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 167 }; 168 169 vreg_s5a_1p9: smps5 { 170 regulator-min-microvolt = <1904000>; 171 regulator-max-microvolt = <2040000>; 172 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 173 }; 174 175 vreg_s6a_0p9: smps6 { 176 regulator-min-microvolt = <920000>; 177 regulator-max-microvolt = <1128000>; 178 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 179 }; 180 181 vreg_l1a_0p75: ldo1 { 182 regulator-min-microvolt = <752000>; 183 regulator-max-microvolt = <752000>; 184 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 185 }; 186 187 vreg_l2a_3p1: ldo2 { 188 regulator-min-microvolt = <3072000>; 189 regulator-max-microvolt = <3072000>; 190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 191 }; 192 193 vreg_l3a_0p8: ldo3 { 194 regulator-min-microvolt = <480000>; 195 regulator-max-microvolt = <932000>; 196 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 197 }; 198 199 vreg_l5a_0p875: ldo5 { 200 regulator-min-microvolt = <880000>; 201 regulator-max-microvolt = <880000>; 202 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 203 }; 204 205 vreg_l6a_1p2: ldo6 { 206 regulator-min-microvolt = <1200000>; 207 regulator-max-microvolt = <1200000>; 208 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 209 }; 210 211 vreg_l7a_1p8: ldo7 { 212 regulator-min-microvolt = <1800000>; 213 regulator-max-microvolt = <1800000>; 214 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 215 }; 216 217 vreg_l9a_1p2: ldo9 { 218 regulator-min-microvolt = <1200000>; 219 regulator-max-microvolt = <1200000>; 220 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 221 }; 222 223 vreg_l10a_2p5: ldo10 { 224 regulator-min-microvolt = <2504000>; 225 regulator-max-microvolt = <2960000>; 226 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 227 }; 228 229 vreg_l11a_0p8: ldo11 { 230 regulator-min-microvolt = <800000>; 231 regulator-max-microvolt = <800000>; 232 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 233 }; 234 235 vreg_l12a_1p8: ldo12 { 236 regulator-min-microvolt = <1800000>; 237 regulator-max-microvolt = <1800000>; 238 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 239 }; 240 241 /* L13 is unused. */ 242 243 vreg_l14a_1p8: ldo14 { 244 regulator-min-microvolt = <1800000>; 245 regulator-max-microvolt = <1800000>; 246 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 247 }; 248 249 vreg_l15a_1p7: ldo15 { 250 regulator-min-microvolt = <1704000>; 251 regulator-max-microvolt = <1704000>; 252 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 253 }; 254 255 vreg_l16a_2p7: ldo16 { 256 regulator-min-microvolt = <2704000>; 257 regulator-max-microvolt = <2960000>; 258 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 259 }; 260 261 vreg_l17a_3p0: ldo17 { 262 regulator-min-microvolt = <2856000>; 263 regulator-max-microvolt = <3008000>; 264 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 265 }; 266 267 vreg_l18a_0p8: ldo18 { 268 regulator-min-microvolt = <880000>; 269 regulator-max-microvolt = <912000>; 270 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 271 }; 272 }; 273 274 pm8150l-rpmh-regulators { 275 compatible = "qcom,pm8150l-rpmh-regulators"; 276 qcom,pmic-id = "c"; 277 278 vdd-s1-supply = <&vph_pwr>; 279 vdd-s2-supply = <&vph_pwr>; 280 vdd-s3-supply = <&vph_pwr>; 281 vdd-s4-supply = <&vph_pwr>; 282 vdd-s5-supply = <&vph_pwr>; 283 vdd-s6-supply = <&vph_pwr>; 284 vdd-s7-supply = <&vph_pwr>; 285 vdd-s8-supply = <&vph_pwr>; 286 287 vdd-l1-l8-supply = <&vreg_s4a_1p8>; 288 vdd-l2-l3-supply = <&vreg_s8c_1p3>; 289 vdd-l4-l5-l6-supply = <&vreg_bob>; 290 vdd-l7-l11-supply = <&vreg_bob>; 291 vdd-l9-l10-supply = <&vreg_bob>; 292 293 vdd-bob-supply = <&vph_pwr>; 294 vdd-flash-supply = <&vreg_bob>; 295 vdd-rgb-supply = <&vreg_bob>; 296 297 vreg_bob: bob { 298 regulator-min-microvolt = <3350000>; 299 regulator-max-microvolt = <4000000>; 300 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 301 regulator-allow-bypass; 302 }; 303 304 vreg_s1c_1p1: smps1 { 305 regulator-min-microvolt = <1128000>; 306 regulator-max-microvolt = <1128000>; 307 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 308 }; 309 310 vreg_s8c_1p3: smps8 { 311 regulator-min-microvolt = <1352000>; 312 regulator-max-microvolt = <1352000>; 313 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 314 }; 315 316 vreg_l1c_1p8: ldo1 { 317 regulator-min-microvolt = <1800000>; 318 regulator-max-microvolt = <1800000>; 319 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 320 }; 321 322 vreg_l2c_1p3: ldo2 { 323 regulator-min-microvolt = <1304000>; 324 regulator-max-microvolt = <1304000>; 325 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 326 }; 327 328 vreg_l3c_1p2: ldo3 { 329 regulator-min-microvolt = <1200000>; 330 regulator-max-microvolt = <1200000>; 331 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 332 }; 333 334 vreg_l4c_1p8: ldo4 { 335 regulator-min-microvolt = <1704000>; 336 regulator-max-microvolt = <2928000>; 337 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 338 }; 339 340 vreg_l5c_1p8: ldo5 { 341 regulator-min-microvolt = <1704000>; 342 regulator-max-microvolt = <2928000>; 343 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 344 }; 345 346 vreg_l6c_2p9: ldo6 { 347 regulator-min-microvolt = <1800000>; 348 regulator-max-microvolt = <2960000>; 349 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 350 regulator-allow-set-load; 351 }; 352 353 vreg_l7c_3p0: ldo7 { 354 regulator-min-microvolt = <2856000>; 355 regulator-max-microvolt = <3104000>; 356 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 357 }; 358 359 vreg_l8c_1p8: ldo8 { 360 regulator-min-microvolt = <1800000>; 361 regulator-max-microvolt = <1800000>; 362 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 363 }; 364 365 vreg_l9c_2p9: ldo9 { 366 regulator-min-microvolt = <2704000>; 367 regulator-max-microvolt = <2960000>; 368 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 369 regulator-allow-set-load; 370 }; 371 372 vreg_l10c_3p3: ldo10 { 373 regulator-min-microvolt = <3000000>; 374 regulator-max-microvolt = <3312000>; 375 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 376 }; 377 378 vreg_l11c_3p3: ldo11 { 379 regulator-min-microvolt = <3000000>; 380 regulator-max-microvolt = <3312000>; 381 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 382 }; 383 }; 384 385 /* PM8009 is not present on these boards, even if downstream sources suggest so. */ 386}; 387 388&i2c4 { 389 status = "okay"; 390 391 /* Qcom SMB1355 @ c */ 392 /* Qcom SMB1390 @ 10 */ 393 /* NXP PN553 NFC @ 28 */ 394 /* Qcom FSA4480 USB-C audio switch @ 43 */ 395}; 396 397&i2c7 { 398 status = "okay"; 399 400 /* AMS TCS3490 RGB+IR color sensor @ 72 */ 401}; 402 403&i2c10 { 404 status = "okay"; 405 406 /* Samsung touchscreen @ 48 */ 407}; 408 409&pon_pwrkey { 410 status = "okay"; 411}; 412 413&qupv3_id_0 { 414 status = "okay"; 415}; 416 417&qupv3_id_1 { 418 status = "okay"; 419}; 420 421&tlmm { 422 gpio-reserved-ranges = <126 4>; 423}; 424 425&uart2 { 426 status = "okay"; 427}; 428 429/* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */ 430&ufs_mem_hc { status = "disabled"; }; 431&ufs_mem_phy { status = "disabled"; }; 432 433&usb_1 { 434 status = "okay"; 435}; 436 437&usb_1_dwc3 { 438 dr_mode = "peripheral"; 439}; 440 441&usb_1_hsphy { 442 status = "okay"; 443 vdda-pll-supply = <&vreg_l5a_0p875>; 444 vdda33-supply = <&vreg_l2a_3p1>; 445 vdda18-supply = <&vreg_l12a_1p8>; 446}; 447 448&usb_1_qmpphy { 449 status = "okay"; 450 vdda-phy-supply = <&vreg_l3c_1p2>; 451 vdda-pll-supply = <&vreg_l18a_0p8>; 452}; 453