0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003 * Copyright (c) 2021, Linaro Limited
0004 */
0005
0006 /dts-v1/;
0007
0008 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
0009 #include <dt-bindings/gpio/gpio.h>
0010 #include "sm8150.dtsi"
0011 #include "pmm8155au_1.dtsi"
0012 #include "pmm8155au_2.dtsi"
0013
0014 / {
0015 model = "Qualcomm Technologies, Inc. SA8155P ADP";
0016 compatible = "qcom,sa8155p-adp", "qcom,sa8155p";
0017
0018 aliases {
0019 serial0 = &uart2;
0020 };
0021
0022 chosen {
0023 stdout-path = "serial0:115200n8";
0024 };
0025
0026 vreg_3p3: vreg_3p3_regulator {
0027 compatible = "regulator-fixed";
0028 regulator-name = "vreg_3p3";
0029 regulator-min-microvolt = <3300000>;
0030 regulator-max-microvolt = <3300000>;
0031 };
0032
0033 /*
0034 * S4A is always on and not controllable through RPMh.
0035 * So model it as a fixed regulator.
0036 */
0037 vreg_s4a_1p8: smps4 {
0038 compatible = "regulator-fixed";
0039 regulator-name = "vreg_s4a_1p8";
0040
0041 regulator-min-microvolt = <1800000>;
0042 regulator-max-microvolt = <1800000>;
0043
0044 regulator-always-on;
0045 regulator-boot-on;
0046 regulator-allow-set-load;
0047
0048 vin-supply = <&vreg_3p3>;
0049 };
0050
0051 mtl_rx_setup: rx-queues-config {
0052 snps,rx-queues-to-use = <1>;
0053 snps,rx-sched-sp;
0054
0055 queue0 {
0056 snps,dcb-algorithm;
0057 snps,map-to-dma-channel = <0x0>;
0058 snps,route-up;
0059 snps,priority = <0x1>;
0060 };
0061 };
0062
0063 mtl_tx_setup: tx-queues-config {
0064 snps,tx-queues-to-use = <1>;
0065 snps,tx-sched-wrr;
0066
0067 queue0 {
0068 snps,weight = <0x10>;
0069 snps,dcb-algorithm;
0070 snps,priority = <0x0>;
0071 };
0072 };
0073 };
0074
0075 &apps_rsc {
0076 pmm8155au-1-rpmh-regulators {
0077 compatible = "qcom,pmm8155au-rpmh-regulators";
0078 qcom,pmic-id = "a";
0079
0080 vdd-s1-supply = <&vreg_3p3>;
0081 vdd-s2-supply = <&vreg_3p3>;
0082 vdd-s3-supply = <&vreg_3p3>;
0083 vdd-s4-supply = <&vreg_3p3>;
0084 vdd-s5-supply = <&vreg_3p3>;
0085 vdd-s6-supply = <&vreg_3p3>;
0086 vdd-s7-supply = <&vreg_3p3>;
0087 vdd-s8-supply = <&vreg_3p3>;
0088 vdd-s9-supply = <&vreg_3p3>;
0089 vdd-s10-supply = <&vreg_3p3>;
0090
0091 vdd-l1-l8-l11-supply = <&vreg_s6a_0p92>;
0092 vdd-l2-l10-supply = <&vreg_3p3>;
0093 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p92>;
0094 vdd-l6-l9-supply = <&vreg_s6a_0p92>;
0095 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
0096 vdd-l13-l16-l17-supply = <&vreg_3p3>;
0097
0098 vreg_s5a_2p04: smps5 {
0099 regulator-name = "vreg_s5a_2p04";
0100 regulator-min-microvolt = <1904000>;
0101 regulator-max-microvolt = <2000000>;
0102 };
0103
0104 vreg_s6a_0p92: smps6 {
0105 regulator-name = "vreg_s6a_0p92";
0106 regulator-min-microvolt = <920000>;
0107 regulator-max-microvolt = <1128000>;
0108 };
0109
0110 vreg_l1a_0p752: ldo1 {
0111 regulator-name = "vreg_l1a_0p752";
0112 regulator-min-microvolt = <752000>;
0113 regulator-max-microvolt = <752000>;
0114 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0115 };
0116
0117 vdda_usb_hs_3p1:
0118 vreg_l2a_3p072: ldo2 {
0119 regulator-name = "vreg_l2a_3p072";
0120 regulator-min-microvolt = <3072000>;
0121 regulator-max-microvolt = <3072000>;
0122 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0123 };
0124
0125 vreg_l3a_0p8: ldo3 {
0126 regulator-name = "vreg_l3a_0p8";
0127 regulator-min-microvolt = <800000>;
0128 regulator-max-microvolt = <800000>;
0129 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0130 };
0131
0132 vdd_usb_hs_core:
0133 vdda_usb_ss_dp_core_1:
0134 vreg_l5a_0p88: ldo5 {
0135 regulator-name = "vreg_l5a_0p88";
0136 regulator-min-microvolt = <880000>;
0137 regulator-max-microvolt = <880000>;
0138 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0139 regulator-allow-set-load;
0140 };
0141
0142 vreg_l7a_1p8: ldo7 {
0143 regulator-name = "vreg_l7a_1p8";
0144 regulator-min-microvolt = <1800000>;
0145 regulator-max-microvolt = <1800000>;
0146 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0147 };
0148
0149 vreg_l10a_2p96: ldo10 {
0150 regulator-name = "vreg_l10a_2p96";
0151 regulator-min-microvolt = <2504000>;
0152 regulator-max-microvolt = <2960000>;
0153 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0154 regulator-allow-set-load;
0155 };
0156
0157 vreg_l11a_0p8: ldo11 {
0158 regulator-name = "vreg_l11a_0p8";
0159 regulator-min-microvolt = <800000>;
0160 regulator-max-microvolt = <800000>;
0161 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0162 };
0163
0164 vdda_usb_hs_1p8:
0165 vreg_l12a_1p8: ldo12 {
0166 regulator-name = "vreg_l12a_1p8";
0167 regulator-min-microvolt = <1800000>;
0168 regulator-max-microvolt = <1800000>;
0169 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0170 };
0171
0172 vreg_l13a_2p7: ldo13 {
0173 regulator-name = "vreg_l13a_2p7";
0174 regulator-min-microvolt = <2704000>;
0175 regulator-max-microvolt = <2704000>;
0176 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0177 };
0178
0179 vreg_l15a_1p7: ldo15 {
0180 regulator-name = "vreg_l15a_1p7";
0181 regulator-min-microvolt = <1704000>;
0182 regulator-max-microvolt = <1704000>;
0183 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0184 };
0185
0186 vreg_l16a_2p7: ldo16 {
0187 regulator-name = "vreg_l16a_2p7";
0188 regulator-min-microvolt = <2704000>;
0189 regulator-max-microvolt = <2960000>;
0190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0191 };
0192
0193 vreg_l17a_2p96: ldo17 {
0194 regulator-name = "vreg_l17a_2p96";
0195 regulator-min-microvolt = <2504000>;
0196 regulator-max-microvolt = <2960000>;
0197 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0198 };
0199 };
0200
0201 pmm8155au-2-rpmh-regulators {
0202 compatible = "qcom,pmm8155au-rpmh-regulators";
0203 qcom,pmic-id = "c";
0204
0205 vdd-s1-supply = <&vreg_3p3>;
0206 vdd-s2-supply = <&vreg_3p3>;
0207 vdd-s3-supply = <&vreg_3p3>;
0208 vdd-s4-supply = <&vreg_3p3>;
0209 vdd-s5-supply = <&vreg_3p3>;
0210 vdd-s6-supply = <&vreg_3p3>;
0211 vdd-s7-supply = <&vreg_3p3>;
0212 vdd-s8-supply = <&vreg_3p3>;
0213 vdd-s9-supply = <&vreg_3p3>;
0214 vdd-s10-supply = <&vreg_3p3>;
0215
0216 vdd-l1-l8-l11-supply = <&vreg_s4c_1p352>;
0217 vdd-l2-l10-supply = <&vreg_3p3>;
0218 vdd-l3-l4-l5-l18-supply = <&vreg_s4c_1p352>;
0219 vdd-l6-l9-supply = <&vreg_s6c_1p128>;
0220 vdd-l7-l12-l14-l15-supply = <&vreg_s5c_2p04>;
0221 vdd-l13-l16-l17-supply = <&vreg_3p3>;
0222
0223 vreg_s4c_1p352: smps4 {
0224 regulator-name = "vreg_s4c_1p352";
0225 regulator-min-microvolt = <1352000>;
0226 regulator-max-microvolt = <1352000>;
0227 };
0228
0229 vreg_s5c_2p04: smps5 {
0230 regulator-name = "vreg_s5c_2p04";
0231 regulator-min-microvolt = <1904000>;
0232 regulator-max-microvolt = <2000000>;
0233 };
0234
0235 vreg_s6c_1p128: smps6 {
0236 regulator-name = "vreg_s6c_1p128";
0237 regulator-min-microvolt = <1128000>;
0238 regulator-max-microvolt = <1128000>;
0239 };
0240
0241 vreg_l1c_1p304: ldo1 {
0242 regulator-name = "vreg_l1c_1p304";
0243 regulator-min-microvolt = <1304000>;
0244 regulator-max-microvolt = <1304000>;
0245 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0246 };
0247
0248 vreg_l2c_1p808: ldo2 {
0249 regulator-name = "vreg_l2c_1p808";
0250 regulator-min-microvolt = <1704000>;
0251 regulator-max-microvolt = <2928000>;
0252 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0253 };
0254
0255 vreg_l5c_1p2: ldo5 {
0256 regulator-name = "vreg_l5c_1p2";
0257 regulator-min-microvolt = <1200000>;
0258 regulator-max-microvolt = <1200000>;
0259 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0260 regulator-allow-set-load;
0261 };
0262
0263 vreg_l7c_1p8: ldo7 {
0264 regulator-name = "vreg_l7c_1p8";
0265 regulator-min-microvolt = <1800000>;
0266 regulator-max-microvolt = <1800000>;
0267 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0268 };
0269
0270 vreg_l8c_1p2: ldo8 {
0271 regulator-name = "vreg_l8c_1p2";
0272 regulator-min-microvolt = <1200000>;
0273 regulator-max-microvolt = <1200000>;
0274 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0275 regulator-allow-set-load;
0276 };
0277
0278 vreg_l10c_3p3: ldo10 {
0279 regulator-name = "vreg_l10c_3p3";
0280 regulator-min-microvolt = <3000000>;
0281 regulator-max-microvolt = <3312000>;
0282 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0283 };
0284
0285 vreg_l11c_0p8: ldo11 {
0286 regulator-name = "vreg_l11c_0p8";
0287 regulator-min-microvolt = <800000>;
0288 regulator-max-microvolt = <800000>;
0289 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0290 };
0291
0292 vreg_l12c_1p808: ldo12 {
0293 regulator-name = "vreg_l12c_1p808";
0294 regulator-min-microvolt = <1704000>;
0295 regulator-max-microvolt = <2928000>;
0296 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0297 };
0298
0299 vreg_l13c_2p96: ldo13 {
0300 regulator-name = "vreg_l13c_2p96";
0301 regulator-min-microvolt = <2504000>;
0302 regulator-max-microvolt = <2960000>;
0303 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0304 };
0305
0306 vreg_l15c_1p9: ldo15 {
0307 regulator-name = "vreg_l15c_1p9";
0308 regulator-min-microvolt = <1704000>;
0309 regulator-max-microvolt = <2928000>;
0310 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0311 };
0312
0313 vreg_l16c_3p008: ldo16 {
0314 regulator-name = "vreg_l16c_3p008";
0315 regulator-min-microvolt = <3008000>;
0316 regulator-max-microvolt = <3008000>;
0317 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0318 };
0319
0320 vreg_l18c_0p88: ldo18 {
0321 regulator-name = "vreg_l18c_0p88";
0322 regulator-min-microvolt = <880000>;
0323 regulator-max-microvolt = <880000>;
0324 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0325 };
0326 };
0327 };
0328
0329 ðernet {
0330 status = "okay";
0331
0332 snps,reset-gpio = <&tlmm 79 GPIO_ACTIVE_LOW>;
0333 snps,reset-active-low;
0334 snps,reset-delays-us = <0 11000 70000>;
0335
0336 snps,ptp-ref-clk-rate = <250000000>;
0337 snps,ptp-req-clk-rate = <96000000>;
0338
0339 snps,mtl-rx-config = <&mtl_rx_setup>;
0340 snps,mtl-tx-config = <&mtl_tx_setup>;
0341
0342 pinctrl-names = "default";
0343 pinctrl-0 = <ðernet_defaults>;
0344
0345 phy-handle = <&rgmii_phy>;
0346 phy-mode = "rgmii";
0347 max-speed = <1000>;
0348
0349 mdio {
0350 #address-cells = <0x1>;
0351 #size-cells = <0x0>;
0352
0353 compatible = "snps,dwmac-mdio";
0354
0355 /* Micrel KSZ9031RNZ PHY */
0356 rgmii_phy: phy@7 {
0357 reg = <0x7>;
0358
0359 interrupt-parent = <&tlmm>;
0360 interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>; /* phy intr */
0361 device_type = "ethernet-phy";
0362 compatible = "ethernet-phy-ieee802.3-c22";
0363 };
0364 };
0365 };
0366
0367 &qupv3_id_1 {
0368 status = "okay";
0369 };
0370
0371 &remoteproc_adsp {
0372 status = "okay";
0373 firmware-name = "qcom/sa8155p/adsp.mdt";
0374 };
0375
0376 &remoteproc_cdsp {
0377 status = "okay";
0378 firmware-name = "qcom/sa8155p/cdsp.mdt";
0379 };
0380
0381 &sdhc_2 {
0382 status = "okay";
0383
0384 cd-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
0385 pinctrl-names = "default", "sleep";
0386 pinctrl-0 = <&sdc2_on>;
0387 pinctrl-1 = <&sdc2_off>;
0388 vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */
0389 vmmc-supply = <&vreg_l17a_2p96>; /* Card power line */
0390 bus-width = <4>;
0391 no-sdio;
0392 no-emmc;
0393 };
0394
0395 &uart2 {
0396 status = "okay";
0397 };
0398
0399 &ufs_mem_hc {
0400 status = "okay";
0401
0402 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
0403
0404 vcc-supply = <&vreg_l10a_2p96>;
0405 vcc-max-microamp = <750000>;
0406 vccq-supply = <&vreg_l5c_1p2>;
0407 vccq-max-microamp = <700000>;
0408 vccq2-supply = <&vreg_s4a_1p8>;
0409 vccq2-max-microamp = <750000>;
0410 };
0411
0412 &ufs_mem_phy {
0413 status = "okay";
0414
0415 vdda-phy-supply = <&vreg_l8c_1p2>;
0416 vdda-pll-supply = <&vreg_l5a_0p88>;
0417 };
0418
0419 &usb_1 {
0420 status = "okay";
0421 };
0422
0423 &usb_1_dwc3 {
0424 dr_mode = "host";
0425
0426 pinctrl-names = "default";
0427 pinctrl-0 = <&usb2phy_ac_en1_default>;
0428 };
0429
0430 &usb_1_hsphy {
0431 status = "okay";
0432 vdda-pll-supply = <&vdd_usb_hs_core>;
0433 vdda33-supply = <&vdda_usb_hs_3p1>;
0434 vdda18-supply = <&vdda_usb_hs_1p8>;
0435 };
0436
0437 &usb_1_qmpphy {
0438 status = "disabled";
0439 };
0440
0441 &usb_2 {
0442 status = "okay";
0443 };
0444
0445 &usb_2_dwc3 {
0446 dr_mode = "host";
0447
0448 pinctrl-names = "default";
0449 pinctrl-0 = <&usb2phy_ac_en2_default>;
0450 };
0451
0452 &usb_2_hsphy {
0453 status = "okay";
0454 vdda-pll-supply = <&vdd_usb_hs_core>;
0455 vdda33-supply = <&vdda_usb_hs_3p1>;
0456 vdda18-supply = <&vdda_usb_hs_1p8>;
0457 };
0458
0459 &usb_2_qmpphy {
0460 status = "okay";
0461 vdda-phy-supply = <&vreg_l8c_1p2>;
0462 vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
0463 };
0464
0465 &pcie0 {
0466 status = "okay";
0467 };
0468
0469 &pcie0_phy {
0470 status = "okay";
0471 vdda-phy-supply = <&vreg_l18c_0p88>;
0472 vdda-pll-supply = <&vreg_l8c_1p2>;
0473 };
0474
0475 &pcie1_phy {
0476 vdda-phy-supply = <&vreg_l18c_0p88>;
0477 vdda-pll-supply = <&vreg_l8c_1p2>;
0478 };
0479
0480 &tlmm {
0481 gpio-reserved-ranges = <0 4>;
0482
0483 sdc2_on: sdc2_on {
0484 clk {
0485 pins = "sdc2_clk";
0486 bias-disable; /* No pull */
0487 drive-strength = <16>; /* 16 MA */
0488 };
0489
0490 cmd {
0491 pins = "sdc2_cmd";
0492 bias-pull-up; /* pull up */
0493 drive-strength = <16>; /* 16 MA */
0494 };
0495
0496 data {
0497 pins = "sdc2_data";
0498 bias-pull-up; /* pull up */
0499 drive-strength = <16>; /* 16 MA */
0500 };
0501
0502 sd-cd {
0503 pins = "gpio96";
0504 function = "gpio";
0505 bias-pull-up; /* pull up */
0506 drive-strength = <2>; /* 2 MA */
0507 };
0508 };
0509
0510 sdc2_off: sdc2_off {
0511 clk {
0512 pins = "sdc2_clk";
0513 bias-disable; /* No pull */
0514 drive-strength = <2>; /* 2 MA */
0515 };
0516
0517 cmd {
0518 pins = "sdc2_cmd";
0519 bias-pull-up; /* pull up */
0520 drive-strength = <2>; /* 2 MA */
0521 };
0522
0523 data {
0524 pins = "sdc2_data";
0525 bias-pull-up; /* pull up */
0526 drive-strength = <2>; /* 2 MA */
0527 };
0528
0529 sd-cd {
0530 pins = "gpio96";
0531 function = "gpio";
0532 bias-pull-up; /* pull up */
0533 drive-strength = <2>; /* 2 MA */
0534 };
0535 };
0536
0537 usb2phy_ac_en1_default: usb2phy_ac_en1_default {
0538 mux {
0539 pins = "gpio113";
0540 function = "usb2phy_ac";
0541 bias-disable;
0542 drive-strength = <2>;
0543 };
0544 };
0545
0546 usb2phy_ac_en2_default: usb2phy_ac_en2_default {
0547 mux {
0548 pins = "gpio123";
0549 function = "usb2phy_ac";
0550 bias-disable;
0551 drive-strength = <2>;
0552 };
0553 };
0554
0555 ethernet_defaults: ethernet-defaults {
0556 mdc {
0557 pins = "gpio7";
0558 function = "rgmii";
0559 bias-pull-up;
0560 };
0561
0562 mdio {
0563 pins = "gpio59";
0564 function = "rgmii";
0565 bias-pull-up;
0566 };
0567
0568 rgmii-rx {
0569 pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116";
0570 function = "rgmii";
0571 bias-disable;
0572 drive-strength = <2>;
0573 };
0574
0575 rgmii-tx {
0576 pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121";
0577 function = "rgmii";
0578 bias-pull-up;
0579 drive-strength = <16>;
0580 };
0581
0582 phy-intr {
0583 pins = "gpio124";
0584 function = "emac_phy";
0585 bias-disable;
0586 drive-strength = <8>;
0587 };
0588
0589 pps {
0590 pins = "gpio81";
0591 function = "emac_pps";
0592 bias-disable;
0593 drive-strength = <8>;
0594 };
0595
0596 phy-reset {
0597 pins = "gpio79";
0598 function = "gpio";
0599 bias-pull-up;
0600 drive-strength = <16>;
0601 };
0602 };
0603 };