Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * SDM845 LG G7 / V35 (judyln / judyp) common device tree
0004  *
0005  * Copyright (c) 2022, The Linux Foundation. All rights reserved.
0006  */
0007 
0008 #include <dt-bindings/gpio/gpio.h>
0009 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
0010 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
0011 
0012 #include "sdm845.dtsi"
0013 #include "pm8998.dtsi"
0014 #include "pmi8998.dtsi"
0015 
0016 /delete-node/ &adsp_mem;
0017 /delete-node/ &cdsp_mem;
0018 /delete-node/ &gpu_mem;
0019 /delete-node/ &ipa_fw_mem;
0020 /delete-node/ &mba_region;
0021 /delete-node/ &mpss_region;
0022 /delete-node/ &qseecom_mem;
0023 /delete-node/ &rmtfs_mem;
0024 /delete-node/ &slpi_mem;
0025 /delete-node/ &spss_mem;
0026 /delete-node/ &venus_mem;
0027 /delete-node/ &wlan_msa_mem;
0028 
0029 / {
0030         chosen {
0031                 #address-cells = <2>;
0032                 #size-cells = <2>;
0033                 ranges;
0034         };
0035 
0036         reserved-memory {
0037                 #address-cells = <2>;
0038                 #size-cells = <2>;
0039                 ranges;
0040 
0041                 qseecom_mem: memory@b2000000 {
0042                         reg = <0 0xb2000000 0 0x1800000>;
0043                         no-map;
0044                 };
0045 
0046                 gpu_mem: memory@8c415000 {
0047                         reg = <0 0x8c415000 0 0x2000>;
0048                         no-map;
0049                 };
0050 
0051                 ipa_fw_mem: memory@8c400000 {
0052                         reg = <0 0x8c400000 0 0x10000>;
0053                         no-map;
0054                 };
0055 
0056                 adsp_mem: memory@8c500000 {
0057                         reg = <0 0x8c500000 0 0x1e00000>;
0058                         no-map;
0059                 };
0060 
0061                 wlan_msa_mem: memory@8e300000 {
0062                         reg = <0 0x8e300000 0 0x100000>;
0063                         no-map;
0064                 };
0065 
0066                 mpss_region: memory@8e400000 {
0067                         reg = <0 0x8e400000 0 0x8900000>;
0068                         no-map;
0069                 };
0070 
0071                 venus_mem: memory@96d00000 {
0072                         reg = <0 0x96d00000 0 0x500000>;
0073                         no-map;
0074                 };
0075 
0076                 cdsp_mem: memory@97200000 {
0077                         reg = <0 0x97200000 0 0x800000>;
0078                         no-map;
0079                 };
0080 
0081                 mba_region: memory@97a00000 {
0082                         reg = <0 0x97a00000 0 0x200000>;
0083                         no-map;
0084                 };
0085 
0086                 slpi_mem: memory@97c00000 {
0087                         reg = <0 0x97c00000 0 0x1400000>;
0088                         no-map;
0089                 };
0090 
0091                 spss_mem: memory@99000000 {
0092                         reg = <0 0x99000000 0 0x100000>;
0093                         no-map;
0094                 };
0095 
0096                 /* Framebuffer region */
0097                 memory@9d400000 {
0098                         reg = <0x0 0x9d400000 0x0 0x2400000>;
0099                         no-map;
0100                 };
0101 
0102                 /* rmtfs lower guard */
0103                 memory@f0800000 {
0104                         reg = <0 0xf0800000 0 0x1000>;
0105                         no-map;
0106                 };
0107 
0108                 rmtfs_mem: memory@f0801000 {
0109                         compatible = "qcom,rmtfs-mem";
0110                         reg = <0 0xf0801000 0 0x200000>;
0111                         no-map;
0112 
0113                         qcom,client-id = <1>;
0114                         qcom,vmid = <15>;
0115                 };
0116 
0117                 /* rmtfs upper guard */
0118                 memory@f0a01000 {
0119                         reg = <0 0xf0a01000 0 0x1000>;
0120                         no-map;
0121                 };
0122         };
0123 
0124         gpio-keys {
0125                 compatible = "gpio-keys";
0126 
0127                 pinctrl-names = "default";
0128                 pinctrl-0 = <&vol_up_pin_a>;
0129 
0130                 label = "GPIO Buttons";
0131 
0132                 key-vol-up {
0133                         label = "Volume up";
0134                         linux,code = <KEY_VOLUMEUP>;
0135                         gpios = <&pm8998_gpio 6 GPIO_ACTIVE_LOW>;
0136                 };
0137         };
0138 
0139         vph_pwr: vph-pwr-regulator {
0140                 compatible = "regulator-fixed";
0141                 regulator-name = "vph_pwr";
0142                 regulator-min-microvolt = <3700000>;
0143                 regulator-max-microvolt = <3700000>;
0144         };
0145 
0146         /*
0147          * Apparently RPMh does not provide support for PM8998 S4 because it
0148          * is always-on; model it as a fixed regulator.
0149          */
0150         vreg_s4a_1p8: pm8998-smps4-regulator {
0151                 compatible = "regulator-fixed";
0152                 regulator-name = "vreg_s4a_1p8";
0153 
0154                 regulator-min-microvolt = <1800000>;
0155                 regulator-max-microvolt = <1800000>;
0156 
0157                 regulator-always-on;
0158                 regulator-boot-on;
0159 
0160                 vin-supply = <&vph_pwr>;
0161         };
0162 };
0163 
0164 &adsp_pas {
0165         status = "okay";
0166 };
0167 
0168 &apps_rsc {
0169         pm8998-rpmh-regulators {
0170                 compatible = "qcom,pm8998-rpmh-regulators";
0171                 qcom,pmic-id = "a";
0172 
0173                 vdd-s1-supply = <&vph_pwr>;
0174                 vdd-s2-supply = <&vph_pwr>;
0175                 vdd-s3-supply = <&vph_pwr>;
0176                 vdd-s4-supply = <&vph_pwr>;
0177                 vdd-s5-supply = <&vph_pwr>;
0178                 vdd-s6-supply = <&vph_pwr>;
0179                 vdd-s7-supply = <&vph_pwr>;
0180                 vdd-s8-supply = <&vph_pwr>;
0181                 vdd-s9-supply = <&vph_pwr>;
0182                 vdd-s10-supply = <&vph_pwr>;
0183                 vdd-s11-supply = <&vph_pwr>;
0184                 vdd-s12-supply = <&vph_pwr>;
0185                 vdd-s13-supply = <&vph_pwr>;
0186                 vdd-l1-l27-supply = <&vreg_s7a_1p025>;
0187                 vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
0188                 vdd-l3-l11-supply = <&vreg_s7a_1p025>;
0189                 vdd-l4-l5-supply = <&vreg_s7a_1p025>;
0190                 vdd-l6-supply = <&vph_pwr>;
0191                 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
0192                 vdd-l9-supply = <&vreg_bob>;
0193                 vdd-l10-l23-l25-supply = <&vreg_bob>;
0194                 vdd-l13-l19-l21-supply = <&vreg_bob>;
0195                 vdd-l16-l28-supply = <&vreg_bob>;
0196                 vdd-l18-l22-supply = <&vreg_bob>;
0197                 vdd-l20-l24-supply = <&vreg_bob>;
0198                 vdd-l26-supply = <&vreg_s3a_1p35>;
0199                 vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
0200 
0201                 vreg_s2a_1p125: smps2 {
0202                         regulator-min-microvolt = <1100000>;
0203                         regulator-max-microvolt = <1100000>;
0204                 };
0205 
0206                 vreg_s3a_1p35: smps3 {
0207                         regulator-min-microvolt = <1352000>;
0208                         regulator-max-microvolt = <1352000>;
0209                 };
0210 
0211                 vreg_s5a_2p04: smps5 {
0212                         regulator-min-microvolt = <1904000>;
0213                         regulator-max-microvolt = <2040000>;
0214                 };
0215 
0216                 vreg_s7a_1p025: smps7 {
0217                         regulator-min-microvolt = <900000>;
0218                         regulator-max-microvolt = <1028000>;
0219                 };
0220 
0221                 vdd_qusb_hs0:
0222                 vdda_hp_pcie_core:
0223                 vdda_mipi_csi0_0p9:
0224                 vdda_mipi_csi1_0p9:
0225                 vdda_mipi_csi2_0p9:
0226                 vdda_mipi_dsi0_pll:
0227                 vdda_mipi_dsi1_pll:
0228                 vdda_qlink_lv:
0229                 vdda_qlink_lv_ck:
0230                 vdda_qrefs_0p875:
0231                 vdda_pcie_core:
0232                 vdda_pll_cc_ebi01:
0233                 vdda_pll_cc_ebi23:
0234                 vdda_sp_sensor:
0235                 vdda_ufs1_core:
0236                 vdda_ufs2_core:
0237                 vdda_usb1_ss_core:
0238                 vdda_usb2_ss_core:
0239                 vreg_l1a_0p875: ldo1 {
0240                         regulator-min-microvolt = <880000>;
0241                         regulator-max-microvolt = <880000>;
0242                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0243                 };
0244 
0245                 vddpx_10:
0246                 vreg_l2a_1p2: ldo2 {
0247                         regulator-min-microvolt = <1200000>;
0248                         regulator-max-microvolt = <1200000>;
0249                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0250                         regulator-always-on;
0251                 };
0252 
0253                 vreg_l3a_1p0: ldo3 {
0254                         regulator-min-microvolt = <1000000>;
0255                         regulator-max-microvolt = <1000000>;
0256                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0257                 };
0258 
0259                 vdd_wcss_cx:
0260                 vdd_wcss_mx:
0261                 vdda_wcss_pll:
0262                 vreg_l5a_0p8: ldo5 {
0263                         regulator-min-microvolt = <800000>;
0264                         regulator-max-microvolt = <800000>;
0265                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0266                 };
0267 
0268                 vddpx_13:
0269                 vreg_l6a_1p8: ldo6 {
0270                         regulator-min-microvolt = <1856000>;
0271                         regulator-max-microvolt = <1856000>;
0272                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0273                 };
0274 
0275                 vreg_l7a_1p8: ldo7 {
0276                         regulator-min-microvolt = <1800000>;
0277                         regulator-max-microvolt = <1800000>;
0278                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0279                 };
0280 
0281                 vreg_l8a_1p2: ldo8 {
0282                         regulator-min-microvolt = <1200000>;
0283                         regulator-max-microvolt = <1248000>;
0284                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0285                 };
0286 
0287                 vreg_l9a_1p8: ldo9 {
0288                         regulator-min-microvolt = <1704000>;
0289                         regulator-max-microvolt = <2928000>;
0290                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0291                 };
0292 
0293                 vreg_l10a_1p8: ldo10 {
0294                         regulator-min-microvolt = <1704000>;
0295                         regulator-max-microvolt = <2928000>;
0296                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0297                 };
0298 
0299                 vreg_l11a_1p0: ldo11 {
0300                         regulator-min-microvolt = <1000000>;
0301                         regulator-max-microvolt = <1048000>;
0302                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0303                 };
0304 
0305                 vdd_qfprom:
0306                 vdd_qfprom_sp:
0307                 vdda_apc1_cs_1p8:
0308                 vdda_gfx_cs_1p8:
0309                 vdda_qrefs_1p8:
0310                 vdda_qusb_hs0_1p8:
0311                 vddpx_11:
0312                 vreg_l12a_1p8: ldo12 {
0313                         regulator-min-microvolt = <1800000>;
0314                         regulator-max-microvolt = <1800000>;
0315                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0316                 };
0317 
0318                 vddpx_2:
0319                 vreg_l13a_2p95: ldo13 {
0320                         regulator-min-microvolt = <1800000>;
0321                         regulator-max-microvolt = <2960000>;
0322                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0323                 };
0324 
0325                 vreg_l14a_1p88: ldo14 {
0326                         regulator-min-microvolt = <1800000>;
0327                         regulator-max-microvolt = <1880000>;
0328                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0329                 };
0330 
0331                 vreg_l15a_1p8: ldo15 {
0332                         regulator-min-microvolt = <1800000>;
0333                         regulator-max-microvolt = <1800000>;
0334                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0335                 };
0336 
0337                 vreg_l17a_1p3: ldo17 {
0338                         regulator-min-microvolt = <1304000>;
0339                         regulator-max-microvolt = <1304000>;
0340                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0341                 };
0342 
0343                 vreg_l18a_2p7: ldo18 {
0344                         regulator-min-microvolt = <2704000>;
0345                         regulator-max-microvolt = <2960000>;
0346                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0347                 };
0348 
0349                 vreg_l20a_2p95: ldo20 {
0350                         regulator-min-microvolt = <2704000>;
0351                         regulator-max-microvolt = <2960000>;
0352                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0353                 };
0354 
0355                 vreg_l21a_2p95: ldo21 {
0356                         regulator-min-microvolt = <2704000>;
0357                         regulator-max-microvolt = <2960000>;
0358                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0359                 };
0360 
0361                 vreg_l22a_2p85: ldo22 {
0362                         regulator-min-microvolt = <2800000>;
0363                         regulator-max-microvolt = <2800000>;
0364                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0365                 };
0366 
0367                 vreg_l23a_3p3: ldo23 {
0368                         regulator-min-microvolt = <3000000>;
0369                         regulator-max-microvolt = <3312000>;
0370                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0371                 };
0372 
0373                 vdda_qusb_hs0_3p1:
0374                 vreg_l24a_3p075: ldo24 {
0375                         regulator-min-microvolt = <3088000>;
0376                         regulator-max-microvolt = <3088000>;
0377                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0378                 };
0379 
0380                 vreg_l25a_3p3: ldo25 {
0381                         regulator-min-microvolt = <3000000>;
0382                         regulator-max-microvolt = <3312000>;
0383                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0384                 };
0385 
0386                 vdda_hp_pcie_1p2:
0387                 vdda_hv_ebi0:
0388                 vdda_hv_ebi1:
0389                 vdda_hv_ebi2:
0390                 vdda_hv_ebi3:
0391                 vdda_mipi_csi_1p25:
0392                 vdda_mipi_dsi0_1p2:
0393                 vdda_mipi_dsi1_1p2:
0394                 vdda_pcie_1p2:
0395                 vdda_ufs1_1p2:
0396                 vdda_ufs2_1p2:
0397                 vdda_usb1_ss_1p2:
0398                 vdda_usb2_ss_1p2:
0399                 vreg_l26a_1p2: ldo26 {
0400                         regulator-min-microvolt = <1200000>;
0401                         regulator-max-microvolt = <1200000>;
0402                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0403                 };
0404 
0405                 vreg_l28a_3p0: ldo28 {
0406                         regulator-min-microvolt = <1800000>;
0407                         regulator-max-microvolt = <1800000>;
0408                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0409                 };
0410 
0411                 vreg_lvs1a_1p8: lvs1 {
0412                         regulator-min-microvolt = <1800000>;
0413                         regulator-max-microvolt = <1800000>;
0414                 };
0415 
0416                 vreg_lvs2a_1p8: lvs2 {
0417                         regulator-min-microvolt = <1800000>;
0418                         regulator-max-microvolt = <1800000>;
0419                 };
0420         };
0421 
0422         pmi8998-rpmh-regulators {
0423                 compatible = "qcom,pmi8998-rpmh-regulators";
0424                 qcom,pmic-id = "b";
0425 
0426                 vdd-bob-supply = <&vph_pwr>;
0427 
0428                 vreg_bob: bob {
0429                         regulator-min-microvolt = <3312000>;
0430                         regulator-max-microvolt = <3600000>;
0431                         regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
0432                         regulator-allow-bypass;
0433                 };
0434         };
0435 
0436         pm8005-rpmh-regulators {
0437                 compatible = "qcom,pm8005-rpmh-regulators";
0438                 qcom,pmic-id = "c";
0439 
0440                 vdd-s1-supply = <&vph_pwr>;
0441                 vdd-s2-supply = <&vph_pwr>;
0442                 vdd-s3-supply = <&vph_pwr>;
0443                 vdd-s4-supply = <&vph_pwr>;
0444 
0445                 vreg_s3c_0p6: smps3 {
0446                         regulator-min-microvolt = <600000>;
0447                         regulator-max-microvolt = <600000>;
0448                 };
0449         };
0450 };
0451 
0452 &cdsp_pas {
0453         status = "okay";
0454 };
0455 
0456 &dispcc {
0457         status = "disabled";
0458 };
0459 
0460 &gcc {
0461         protected-clocks = <GCC_QSPI_CORE_CLK>,
0462                            <GCC_QSPI_CORE_CLK_SRC>,
0463                            <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
0464                            <GCC_LPASS_Q6_AXI_CLK>,
0465                            <GCC_LPASS_SWAY_CLK>;
0466 };
0467 
0468 &gpu {
0469         status = "okay";
0470 
0471         zap-shader {
0472                 memory-region = <&gpu_mem>;
0473         };
0474 };
0475 
0476 &ipa {
0477         status = "okay";
0478         modem-init;
0479 };
0480 
0481 &mss_pil {
0482         status = "okay";
0483 };
0484 
0485 &pm8998_pon {
0486         resin {
0487                 compatible = "qcom,pm8941-resin";
0488                 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
0489                 debounce = <15625>;
0490                 bias-pull-up;
0491                 linux,code = <KEY_VOLUMEDOWN>;
0492         };
0493 };
0494 
0495 &sdhc_2 {
0496         status = "okay";
0497 
0498         cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
0499 
0500         pinctrl-names = "default";
0501         pinctrl-0 = <&sdc2_clk &sdc2_cmd &sdc2_data &sd_card_det_n>;
0502 
0503         vmmc-supply = <&vreg_l21a_2p95>;
0504         vqmmc-supply = <&vddpx_2>;
0505 };
0506 
0507 /*
0508  * UFS works partially and only with clk_ignore_unused.
0509  * Sometimes it crashes with I/O errors.
0510  */
0511 &ufs_mem_hc {
0512         status = "okay";
0513 
0514         reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
0515 
0516         vcc-supply = <&vreg_l20a_2p95>;
0517         vcc-max-microamp = <600000>;
0518 };
0519 
0520 &ufs_mem_phy {
0521         status = "okay";
0522 
0523         vdda-phy-supply = <&vdda_ufs1_core>;
0524         vdda-pll-supply = <&vdda_ufs1_1p2>;
0525 };
0526 
0527 &usb_1 {
0528         status = "okay";
0529 };
0530 
0531 &usb_1_dwc3 {
0532         /* TODO: these devices have usb id pin */
0533         dr_mode = "peripheral";
0534 };
0535 
0536 &usb_1_hsphy {
0537         status = "okay";
0538 
0539         vdd-supply = <&vdda_usb1_ss_core>;
0540         vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
0541         vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
0542 
0543         qcom,imp-res-offset-value = <8>;
0544         qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
0545         qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
0546         qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
0547 };
0548 
0549 &usb_1_qmpphy {
0550         status = "okay";
0551 
0552         vdda-phy-supply = <&vdda_usb1_ss_1p2>;
0553         vdda-pll-supply = <&vdda_usb1_ss_core>;
0554 };
0555 
0556 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
0557 
0558 &tlmm {
0559         gpio-reserved-ranges = <28 4>, <81 4>;
0560 
0561         sdc2_clk: sdc2-clk {
0562                 pinconf {
0563                         pins = "sdc2_clk";
0564                         bias-disable;
0565 
0566                         /*
0567                          * It seems that mmc_test reports errors if drive
0568                          * strength is not 16 on clk, cmd, and data pins.
0569                          *
0570                          * TODO: copy-pasted from mtp, try other values
0571                          * on these devices.
0572                          */
0573                         drive-strength = <16>;
0574                 };
0575         };
0576 
0577         sdc2_cmd: sdc2-cmd {
0578                 pinconf {
0579                         pins = "sdc2_cmd";
0580                         bias-pull-up;
0581                         drive-strength = <16>;
0582                 };
0583         };
0584 
0585         sdc2_data: sdc2-data {
0586                 pinconf {
0587                         pins = "sdc2_data";
0588                         bias-pull-up;
0589                         drive-strength = <16>;
0590                 };
0591         };
0592 
0593         sd_card_det_n: sd-card-det-n {
0594                 pinmux {
0595                         pins = "gpio126";
0596                         function = "gpio";
0597                 };
0598 
0599                 pinconf {
0600                         pins = "gpio126";
0601                         bias-pull-up;
0602                 };
0603         };
0604 };
0605 
0606 &pm8998_gpio {
0607         vol_up_pin_a: vol-up-active-pins {
0608                 pins = "gpio6";
0609                 function = "normal";
0610                 input-enable;
0611                 bias-pull-up;
0612                 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
0613         };
0614 };