Back to home page

OSCL-LXR

 
 

    


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 &ethernet {
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 = <&ethernet_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 };