0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
0004 */
0005
0006 /dts-v1/;
0007
0008 #include <dt-bindings/gpio/gpio.h>
0009 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
0010 #include "sm8150.dtsi"
0011 #include "pm8150.dtsi"
0012 #include "pm8150b.dtsi"
0013 #include "pm8150l.dtsi"
0014
0015 /delete-node/ &cdsp_mem;
0016 /delete-node/ &gpu_mem;
0017 /delete-node/ &ipa_fw_mem;
0018 /delete-node/ &ipa_gsi_mem;
0019 /delete-node/ &mpss_mem;
0020 /delete-node/ &slpi_mem;
0021 /delete-node/ &spss_mem;
0022 /delete-node/ &venus_mem;
0023
0024 / {
0025 qcom,msm-id = <339 0x20000>; /* SM8150 v2 */
0026 qcom,board-id = <8 0>;
0027
0028 chosen {
0029 #address-cells = <2>;
0030 #size-cells = <2>;
0031 ranges;
0032
0033 framebuffer: framebuffer@9c000000 {
0034 compatible = "simple-framebuffer";
0035 reg = <0 0x9c000000 0 0x2300000>;
0036 width = <1644>;
0037 height = <3840>;
0038 stride = <(1644 * 4)>;
0039 format = "a8r8g8b8";
0040 /*
0041 * That's (going to be) a lot of clocks, but it's necessary due
0042 * to unused clk cleanup & no panel driver yet (& no dispcc either)..
0043 */
0044 clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
0045 <&gcc GCC_DISP_SF_AXI_CLK>;
0046 };
0047 };
0048
0049 vph_pwr: vph-pwr-regulator {
0050 compatible = "regulator-fixed";
0051 regulator-name = "vph_pwr";
0052 regulator-min-microvolt = <3700000>;
0053 regulator-max-microvolt = <3700000>;
0054 };
0055
0056 /*
0057 * Apparently RPMh does not provide support for PM8150 S4 because it
0058 * is always-on; model it as a fixed regulator.
0059 */
0060 vreg_s4a_1p8: pm8150-s4 {
0061 compatible = "regulator-fixed";
0062 regulator-name = "vreg_s4a_1p8";
0063
0064 regulator-min-microvolt = <1800000>;
0065 regulator-max-microvolt = <1800000>;
0066
0067 regulator-always-on;
0068 regulator-boot-on;
0069
0070 vin-supply = <&vph_pwr>;
0071 };
0072
0073 reserved-memory {
0074 mpss_mem: memory@8dc00000 {
0075 reg = <0x0 0x8dc00000 0x0 0x9600000>;
0076 no-map;
0077 };
0078
0079 venus_mem: memory@97200000 {
0080 reg = <0x0 0x97200000 0x0 0x500000>;
0081 no-map;
0082 };
0083
0084 slpi_mem: memory@97700000 {
0085 reg = <0x0 0x97700000 0x0 0x1400000>;
0086 no-map;
0087 };
0088
0089 ipa_fw_mem: memory@98b00000 {
0090 reg = <0x0 0x98b00000 0x0 0x10000>;
0091 no-map;
0092 };
0093
0094 ipa_gsi_mem: memory@98b10000 {
0095 reg = <0x0 0x98b10000 0x0 0x5000>;
0096 no-map;
0097 };
0098
0099 gpu_mem: memory@98b15000 {
0100 reg = <0x0 0x98b15000 0x0 0x2000>;
0101 no-map;
0102 };
0103
0104 spss_mem: memory@98c00000 {
0105 reg = <0x0 0x98c00000 0x0 0x100000>;
0106 no-map;
0107 };
0108
0109 cdsp_mem: memory@98d00000 {
0110 reg = <0x0 0x98d00000 0x0 0x1400000>;
0111 no-map;
0112 };
0113
0114 cont_splash_mem: memory@9c000000 {
0115 reg = <0x0 0x9c000000 0x0 0x2400000>;
0116 no-map;
0117 };
0118
0119 cdsp_sec_mem: memory@a4c00000 {
0120 reg = <0x0 0xa4c00000 0x0 0x3c00000>;
0121 no-map;
0122 };
0123
0124 ramoops@ffc00000 {
0125 compatible = "ramoops";
0126 reg = <0x0 0xffc00000 0x0 0x100000>;
0127 record-size = <0x1000>;
0128 console-size = <0x40000>;
0129 msg-size = <0x20000 0x20000>;
0130 ecc-size = <16>;
0131 no-map;
0132 };
0133 };
0134 };
0135
0136 &adsp_mem {
0137 reg = <0x0 0x8be00000 0x0 0x1e00000>;
0138 };
0139
0140 &apps_rsc {
0141 pm8150-rpmh-regulators {
0142 compatible = "qcom,pm8150-rpmh-regulators";
0143 qcom,pmic-id = "a";
0144
0145 vdd-s1-supply = <&vph_pwr>;
0146 vdd-s2-supply = <&vph_pwr>;
0147 vdd-s3-supply = <&vph_pwr>;
0148 vdd-s4-supply = <&vph_pwr>;
0149 vdd-s5-supply = <&vph_pwr>;
0150 vdd-s6-supply = <&vph_pwr>;
0151 vdd-s7-supply = <&vph_pwr>;
0152 vdd-s8-supply = <&vph_pwr>;
0153 vdd-s9-supply = <&vph_pwr>;
0154 vdd-s10-supply = <&vph_pwr>;
0155
0156 vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
0157 vdd-l2-l10-supply = <&vreg_bob>;
0158 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
0159 vdd-l6-l9-supply = <&vreg_s8c_1p3>;
0160 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
0161 vdd-l13-l16-l17-supply = <&vreg_bob>;
0162
0163 vreg_s2a_0p6: smps2 {
0164 regulator-min-microvolt = <600000>;
0165 regulator-max-microvolt = <600000>;
0166 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0167 };
0168
0169 vreg_s5a_1p9: smps5 {
0170 regulator-min-microvolt = <1904000>;
0171 regulator-max-microvolt = <2040000>;
0172 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0173 };
0174
0175 vreg_s6a_0p9: smps6 {
0176 regulator-min-microvolt = <920000>;
0177 regulator-max-microvolt = <1128000>;
0178 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0179 };
0180
0181 vreg_l1a_0p75: ldo1 {
0182 regulator-min-microvolt = <752000>;
0183 regulator-max-microvolt = <752000>;
0184 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0185 };
0186
0187 vreg_l2a_3p1: ldo2 {
0188 regulator-min-microvolt = <3072000>;
0189 regulator-max-microvolt = <3072000>;
0190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0191 };
0192
0193 vreg_l3a_0p8: ldo3 {
0194 regulator-min-microvolt = <480000>;
0195 regulator-max-microvolt = <932000>;
0196 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0197 };
0198
0199 vreg_l5a_0p875: ldo5 {
0200 regulator-min-microvolt = <880000>;
0201 regulator-max-microvolt = <880000>;
0202 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0203 };
0204
0205 vreg_l6a_1p2: ldo6 {
0206 regulator-min-microvolt = <1200000>;
0207 regulator-max-microvolt = <1200000>;
0208 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0209 };
0210
0211 vreg_l7a_1p8: ldo7 {
0212 regulator-min-microvolt = <1800000>;
0213 regulator-max-microvolt = <1800000>;
0214 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0215 };
0216
0217 vreg_l9a_1p2: ldo9 {
0218 regulator-min-microvolt = <1200000>;
0219 regulator-max-microvolt = <1200000>;
0220 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0221 };
0222
0223 vreg_l10a_2p5: ldo10 {
0224 regulator-min-microvolt = <2504000>;
0225 regulator-max-microvolt = <2960000>;
0226 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0227 };
0228
0229 vreg_l11a_0p8: ldo11 {
0230 regulator-min-microvolt = <800000>;
0231 regulator-max-microvolt = <800000>;
0232 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0233 };
0234
0235 vreg_l12a_1p8: ldo12 {
0236 regulator-min-microvolt = <1800000>;
0237 regulator-max-microvolt = <1800000>;
0238 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0239 };
0240
0241 /* L13 is unused. */
0242
0243 vreg_l14a_1p8: ldo14 {
0244 regulator-min-microvolt = <1800000>;
0245 regulator-max-microvolt = <1800000>;
0246 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0247 };
0248
0249 vreg_l15a_1p7: ldo15 {
0250 regulator-min-microvolt = <1704000>;
0251 regulator-max-microvolt = <1704000>;
0252 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0253 };
0254
0255 vreg_l16a_2p7: ldo16 {
0256 regulator-min-microvolt = <2704000>;
0257 regulator-max-microvolt = <2960000>;
0258 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0259 };
0260
0261 vreg_l17a_3p0: ldo17 {
0262 regulator-min-microvolt = <2856000>;
0263 regulator-max-microvolt = <3008000>;
0264 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0265 };
0266
0267 vreg_l18a_0p8: ldo18 {
0268 regulator-min-microvolt = <880000>;
0269 regulator-max-microvolt = <912000>;
0270 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0271 };
0272 };
0273
0274 pm8150l-rpmh-regulators {
0275 compatible = "qcom,pm8150l-rpmh-regulators";
0276 qcom,pmic-id = "c";
0277
0278 vdd-s1-supply = <&vph_pwr>;
0279 vdd-s2-supply = <&vph_pwr>;
0280 vdd-s3-supply = <&vph_pwr>;
0281 vdd-s4-supply = <&vph_pwr>;
0282 vdd-s5-supply = <&vph_pwr>;
0283 vdd-s6-supply = <&vph_pwr>;
0284 vdd-s7-supply = <&vph_pwr>;
0285 vdd-s8-supply = <&vph_pwr>;
0286
0287 vdd-l1-l8-supply = <&vreg_s4a_1p8>;
0288 vdd-l2-l3-supply = <&vreg_s8c_1p3>;
0289 vdd-l4-l5-l6-supply = <&vreg_bob>;
0290 vdd-l7-l11-supply = <&vreg_bob>;
0291 vdd-l9-l10-supply = <&vreg_bob>;
0292
0293 vdd-bob-supply = <&vph_pwr>;
0294 vdd-flash-supply = <&vreg_bob>;
0295 vdd-rgb-supply = <&vreg_bob>;
0296
0297 vreg_bob: bob {
0298 regulator-min-microvolt = <3350000>;
0299 regulator-max-microvolt = <4000000>;
0300 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
0301 regulator-allow-bypass;
0302 };
0303
0304 vreg_s1c_1p1: smps1 {
0305 regulator-min-microvolt = <1128000>;
0306 regulator-max-microvolt = <1128000>;
0307 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0308 };
0309
0310 vreg_s8c_1p3: smps8 {
0311 regulator-min-microvolt = <1352000>;
0312 regulator-max-microvolt = <1352000>;
0313 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0314 };
0315
0316 vreg_l1c_1p8: ldo1 {
0317 regulator-min-microvolt = <1800000>;
0318 regulator-max-microvolt = <1800000>;
0319 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0320 };
0321
0322 vreg_l2c_1p3: ldo2 {
0323 regulator-min-microvolt = <1304000>;
0324 regulator-max-microvolt = <1304000>;
0325 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0326 };
0327
0328 vreg_l3c_1p2: ldo3 {
0329 regulator-min-microvolt = <1200000>;
0330 regulator-max-microvolt = <1200000>;
0331 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0332 };
0333
0334 vreg_l4c_1p8: ldo4 {
0335 regulator-min-microvolt = <1704000>;
0336 regulator-max-microvolt = <2928000>;
0337 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0338 };
0339
0340 vreg_l5c_1p8: ldo5 {
0341 regulator-min-microvolt = <1704000>;
0342 regulator-max-microvolt = <2928000>;
0343 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0344 };
0345
0346 vreg_l6c_2p9: ldo6 {
0347 regulator-min-microvolt = <1800000>;
0348 regulator-max-microvolt = <2960000>;
0349 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0350 regulator-allow-set-load;
0351 };
0352
0353 vreg_l7c_3p0: ldo7 {
0354 regulator-min-microvolt = <2856000>;
0355 regulator-max-microvolt = <3104000>;
0356 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0357 };
0358
0359 vreg_l8c_1p8: ldo8 {
0360 regulator-min-microvolt = <1800000>;
0361 regulator-max-microvolt = <1800000>;
0362 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0363 };
0364
0365 vreg_l9c_2p9: ldo9 {
0366 regulator-min-microvolt = <2704000>;
0367 regulator-max-microvolt = <2960000>;
0368 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0369 regulator-allow-set-load;
0370 };
0371
0372 vreg_l10c_3p3: ldo10 {
0373 regulator-min-microvolt = <3000000>;
0374 regulator-max-microvolt = <3312000>;
0375 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0376 };
0377
0378 vreg_l11c_3p3: ldo11 {
0379 regulator-min-microvolt = <3000000>;
0380 regulator-max-microvolt = <3312000>;
0381 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0382 };
0383 };
0384
0385 /* PM8009 is not present on these boards, even if downstream sources suggest so. */
0386 };
0387
0388 &i2c4 {
0389 status = "okay";
0390
0391 /* Qcom SMB1355 @ c */
0392 /* Qcom SMB1390 @ 10 */
0393 /* NXP PN553 NFC @ 28 */
0394 /* Qcom FSA4480 USB-C audio switch @ 43 */
0395 };
0396
0397 &i2c7 {
0398 status = "okay";
0399
0400 /* AMS TCS3490 RGB+IR color sensor @ 72 */
0401 };
0402
0403 &i2c10 {
0404 status = "okay";
0405
0406 /* Samsung touchscreen @ 48 */
0407 };
0408
0409 &pon_pwrkey {
0410 status = "okay";
0411 };
0412
0413 &qupv3_id_0 {
0414 status = "okay";
0415 };
0416
0417 &qupv3_id_1 {
0418 status = "okay";
0419 };
0420
0421 &tlmm {
0422 gpio-reserved-ranges = <126 4>;
0423 };
0424
0425 &uart2 {
0426 status = "okay";
0427 };
0428
0429 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
0430 &ufs_mem_hc { status = "disabled"; };
0431 &ufs_mem_phy { status = "disabled"; };
0432
0433 &usb_1 {
0434 status = "okay";
0435 };
0436
0437 &usb_1_dwc3 {
0438 dr_mode = "peripheral";
0439 };
0440
0441 &usb_1_hsphy {
0442 status = "okay";
0443 vdda-pll-supply = <&vreg_l5a_0p875>;
0444 vdda33-supply = <&vreg_l2a_3p1>;
0445 vdda18-supply = <&vreg_l12a_1p8>;
0446 };
0447
0448 &usb_1_qmpphy {
0449 status = "okay";
0450 vdda-phy-supply = <&vreg_l3c_1p2>;
0451 vdda-pll-supply = <&vreg_l18a_0p8>;
0452 };