Back to home page

OSCL-LXR

 
 

    


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 };