// SPDX-License-Identifier: BSD-3-Clause /* * Copyright (c) 2021, Linaro Limited */ /dts-v1/; #include #include #include "sa8155p.dtsi" #include "pmm8155au_1.dtsi" #include "pmm8155au_2.dtsi" / { model = "Qualcomm Technologies, Inc. SA8155P ADP"; compatible = "qcom,sa8155p-adp", "qcom,sa8155p"; aliases { serial0 = &uart2; serial1 = &uart9; }; chosen { stdout-path = "serial0:115200n8"; }; vreg_3p3: vreg-3p3-regulator { compatible = "regulator-fixed"; regulator-name = "vreg_3p3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; /* * S4A is always on and not controllable through RPMh. * So model it as a fixed regulator. */ vreg_s4a_1p8: smps4 { compatible = "regulator-fixed"; regulator-name = "vreg_s4a_1p8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; vin-supply = <&vreg_3p3>; }; }; &apps_rsc { regulators-0 { compatible = "qcom,pmm8155au-rpmh-regulators"; qcom,pmic-id = "a"; vdd-s1-supply = <&vreg_3p3>; vdd-s2-supply = <&vreg_3p3>; vdd-s3-supply = <&vreg_3p3>; vdd-s4-supply = <&vreg_3p3>; vdd-s5-supply = <&vreg_3p3>; vdd-s6-supply = <&vreg_3p3>; vdd-s7-supply = <&vreg_3p3>; vdd-s8-supply = <&vreg_3p3>; vdd-s9-supply = <&vreg_3p3>; vdd-s10-supply = <&vreg_3p3>; vdd-l1-l8-l11-supply = <&vreg_s6a_0p92>; vdd-l2-l10-supply = <&vreg_3p3>; vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p92>; vdd-l6-l9-supply = <&vreg_s6a_0p92>; vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>; vdd-l13-l16-l17-supply = <&vreg_3p3>; vreg_s5a_2p04: smps5 { regulator-name = "vreg_s5a_2p04"; regulator-min-microvolt = <1904000>; regulator-max-microvolt = <2000000>; }; vreg_s6a_0p92: smps6 { regulator-name = "vreg_s6a_0p92"; regulator-min-microvolt = <920000>; regulator-max-microvolt = <1128000>; }; vreg_l1a_0p752: ldo1 { regulator-name = "vreg_l1a_0p752"; regulator-min-microvolt = <752000>; regulator-max-microvolt = <752000>; regulator-initial-mode = ; }; vdda_usb_hs_3p1: vreg_l2a_3p072: ldo2 { regulator-name = "vreg_l2a_3p072"; regulator-min-microvolt = <3072000>; regulator-max-microvolt = <3072000>; regulator-initial-mode = ; }; vreg_l3a_0p8: ldo3 { regulator-name = "vreg_l3a_0p8"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <800000>; regulator-initial-mode = ; }; vdd_usb_hs_core: vdda_usb_ss_dp_core_1: vreg_l5a_0p88: ldo5 { regulator-name = "vreg_l5a_0p88"; regulator-min-microvolt = <880000>; regulator-max-microvolt = <880000>; regulator-initial-mode = ; regulator-allow-set-load; regulator-allowed-modes = ; }; vreg_l7a_1p8: ldo7 { regulator-name = "vreg_l7a_1p8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = ; }; vreg_l10a_2p96: ldo10 { regulator-name = "vreg_l10a_2p96"; regulator-min-microvolt = <2504000>; regulator-max-microvolt = <2960000>; regulator-initial-mode = ; regulator-allow-set-load; regulator-allowed-modes = ; }; vreg_l11a_0p8: ldo11 { regulator-name = "vreg_l11a_0p8"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <800000>; regulator-initial-mode = ; }; vdda_usb_hs_1p8: vreg_l12a_1p8: ldo12 { regulator-name = "vreg_l12a_1p8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = ; }; vreg_l13a_2p7: ldo13 { regulator-name = "vreg_l13a_2p7"; regulator-min-microvolt = <2704000>; regulator-max-microvolt = <2704000>; regulator-initial-mode = ; }; vreg_l15a_1p7: ldo15 { regulator-name = "vreg_l15a_1p7"; regulator-min-microvolt = <1704000>; regulator-max-microvolt = <1704000>; regulator-initial-mode = ; }; vreg_l16a_2p7: ldo16 { regulator-name = "vreg_l16a_2p7"; regulator-min-microvolt = <2704000>; regulator-max-microvolt = <2960000>; regulator-initial-mode = ; }; vreg_l17a_2p96: ldo17 { regulator-name = "vreg_l17a_2p96"; regulator-min-microvolt = <2504000>; regulator-max-microvolt = <2960000>; regulator-initial-mode = ; }; }; regulators-1 { compatible = "qcom,pmm8155au-rpmh-regulators"; qcom,pmic-id = "c"; vdd-s1-supply = <&vreg_3p3>; vdd-s2-supply = <&vreg_3p3>; vdd-s3-supply = <&vreg_3p3>; vdd-s4-supply = <&vreg_3p3>; vdd-s5-supply = <&vreg_3p3>; vdd-s6-supply = <&vreg_3p3>; vdd-s7-supply = <&vreg_3p3>; vdd-s8-supply = <&vreg_3p3>; vdd-s9-supply = <&vreg_3p3>; vdd-s10-supply = <&vreg_3p3>; vdd-l1-l8-l11-supply = <&vreg_s4c_1p352>; vdd-l2-l10-supply = <&vreg_3p3>; vdd-l3-l4-l5-l18-supply = <&vreg_s4c_1p352>; vdd-l6-l9-supply = <&vreg_s6c_1p128>; vdd-l7-l12-l14-l15-supply = <&vreg_s5c_2p04>; vdd-l13-l16-l17-supply = <&vreg_3p3>; vreg_s4c_1p352: smps4 { regulator-name = "vreg_s4c_1p352"; regulator-min-microvolt = <1352000>; regulator-max-microvolt = <1352000>; }; vreg_s5c_2p04: smps5 { regulator-name = "vreg_s5c_2p04"; regulator-min-microvolt = <1904000>; regulator-max-microvolt = <2000000>; }; vreg_s6c_1p128: smps6 { regulator-name = "vreg_s6c_1p128"; regulator-min-microvolt = <1128000>; regulator-max-microvolt = <1128000>; }; vreg_l1c_1p304: ldo1 { regulator-name = "vreg_l1c_1p304"; regulator-min-microvolt = <1304000>; regulator-max-microvolt = <1304000>; regulator-initial-mode = ; }; vreg_l2c_1p808: ldo2 { regulator-name = "vreg_l2c_1p808"; regulator-min-microvolt = <1704000>; regulator-max-microvolt = <2928000>; regulator-initial-mode = ; }; vreg_l5c_1p2: ldo5 { regulator-name = "vreg_l5c_1p2"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = ; regulator-allow-set-load; regulator-allowed-modes = ; }; vreg_l7c_1p8: ldo7 { regulator-name = "vreg_l7c_1p8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = ; }; vreg_l8c_1p2: ldo8 { regulator-name = "vreg_l8c_1p2"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = ; regulator-allow-set-load; regulator-allowed-modes = ; }; vreg_l10c_3p3: ldo10 { regulator-name = "vreg_l10c_3p3"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3312000>; regulator-initial-mode = ; }; vreg_l11c_0p8: ldo11 { regulator-name = "vreg_l11c_0p8"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <800000>; regulator-initial-mode = ; }; vreg_l12c_1p808: ldo12 { regulator-name = "vreg_l12c_1p808"; regulator-min-microvolt = <1704000>; regulator-max-microvolt = <2928000>; regulator-initial-mode = ; }; vreg_l13c_2p96: ldo13 { regulator-name = "vreg_l13c_2p96"; regulator-min-microvolt = <2504000>; regulator-max-microvolt = <2960000>; regulator-initial-mode = ; }; vreg_l15c_1p9: ldo15 { regulator-name = "vreg_l15c_1p9"; regulator-min-microvolt = <1704000>; regulator-max-microvolt = <2928000>; regulator-initial-mode = ; }; vreg_l16c_3p008: ldo16 { regulator-name = "vreg_l16c_3p008"; regulator-min-microvolt = <3008000>; regulator-max-microvolt = <3008000>; regulator-initial-mode = ; }; vreg_l18c_0p88: ldo18 { regulator-name = "vreg_l18c_0p88"; regulator-min-microvolt = <880000>; regulator-max-microvolt = <880000>; regulator-initial-mode = ; }; }; }; ðernet { status = "okay"; snps,reset-gpio = <&tlmm 79 GPIO_ACTIVE_LOW>; snps,reset-active-low; snps,reset-delays-us = <0 11000 70000>; snps,mtl-rx-config = <&mtl_rx_setup>; snps,mtl-tx-config = <&mtl_tx_setup>; pinctrl-names = "default"; pinctrl-0 = <ðernet_defaults>; phy-handle = <&rgmii_phy>; phy-mode = "rgmii"; max-speed = <1000>; mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; /* Micrel KSZ9031RNZ PHY */ rgmii_phy: phy@7 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0x7>; interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>; device_type = "ethernet-phy"; }; }; mtl_rx_setup: rx-queues-config { snps,rx-queues-to-use = <1>; snps,rx-sched-sp; queue0 { snps,dcb-algorithm; snps,map-to-dma-channel = <0x0>; snps,route-up; snps,priority = <0x1>; }; }; mtl_tx_setup: tx-queues-config { snps,tx-queues-to-use = <1>; snps,tx-sched-wrr; queue0 { snps,weight = <0x10>; snps,dcb-algorithm; snps,priority = <0x0>; }; }; }; &qupv3_id_1 { status = "okay"; }; &remoteproc_adsp { status = "okay"; firmware-name = "qcom/sa8155p/adsp.mdt"; }; &remoteproc_cdsp { status = "okay"; firmware-name = "qcom/sa8155p/cdsp.mdt"; }; &sdhc_2 { status = "okay"; cd-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc2_on>; pinctrl-1 = <&sdc2_off>; vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */ vmmc-supply = <&vreg_l17a_2p96>; /* Card power line */ bus-width = <4>; no-sdio; no-mmc; }; &uart2 { status = "okay"; }; &uart9 { status = "okay"; }; &ufs_mem_hc { status = "okay"; reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; vcc-supply = <&vreg_l10a_2p96>; vcc-max-microamp = <750000>; vccq-supply = <&vreg_l5c_1p2>; vccq-max-microamp = <700000>; vccq2-supply = <&vreg_s4a_1p8>; vccq2-max-microamp = <750000>; }; &ufs_mem_phy { status = "okay"; vdda-phy-supply = <&vreg_l8c_1p2>; vdda-pll-supply = <&vreg_l5a_0p88>; }; &usb_1 { status = "okay"; }; &usb_1_dwc3 { dr_mode = "host"; pinctrl-names = "default"; pinctrl-0 = <&usb2phy_ac_en1_default>; }; &usb_1_hsphy { status = "okay"; vdda-pll-supply = <&vdd_usb_hs_core>; vdda33-supply = <&vdda_usb_hs_3p1>; vdda18-supply = <&vdda_usb_hs_1p8>; }; &usb_1_qmpphy { status = "disabled"; }; &usb_2 { status = "okay"; }; &usb_2_dwc3 { dr_mode = "host"; pinctrl-names = "default"; pinctrl-0 = <&usb2phy_ac_en2_default>; }; &usb_2_hsphy { status = "okay"; vdda-pll-supply = <&vdd_usb_hs_core>; vdda33-supply = <&vdda_usb_hs_3p1>; vdda18-supply = <&vdda_usb_hs_1p8>; }; &usb_2_qmpphy { status = "okay"; vdda-phy-supply = <&vreg_l8c_1p2>; vdda-pll-supply = <&vdda_usb_ss_dp_core_1>; }; &pcie0 { status = "okay"; }; &pcie0_phy { status = "okay"; vdda-phy-supply = <&vreg_l18c_0p88>; vdda-pll-supply = <&vreg_l8c_1p2>; }; &pcie1_phy { vdda-phy-supply = <&vreg_l18c_0p88>; vdda-pll-supply = <&vreg_l8c_1p2>; }; &tlmm { gpio-reserved-ranges = <0 4>; sdc2_on: sdc2-on-state { clk-pins { pins = "sdc2_clk"; bias-disable; /* No pull */ drive-strength = <16>; /* 16 MA */ }; cmd-pins { pins = "sdc2_cmd"; bias-pull-up; /* pull up */ drive-strength = <16>; /* 16 MA */ }; data-pins { pins = "sdc2_data"; bias-pull-up; /* pull up */ drive-strength = <16>; /* 16 MA */ }; sd-cd-pins { pins = "gpio96"; function = "gpio"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; sdc2_off: sdc2-off-state { clk-pins { pins = "sdc2_clk"; bias-disable; /* No pull */ drive-strength = <2>; /* 2 MA */ }; cmd-pins { pins = "sdc2_cmd"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; data-pins { pins = "sdc2_data"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; sd-cd-pins { pins = "gpio96"; function = "gpio"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; usb2phy_ac_en1_default: usb2phy-ac-en1-default-state { pins = "gpio113"; function = "usb2phy_ac"; bias-disable; drive-strength = <2>; }; usb2phy_ac_en2_default: usb2phy-ac-en2-default-state { pins = "gpio123"; function = "usb2phy_ac"; bias-disable; drive-strength = <2>; }; ethernet_defaults: ethernet-defaults-state { mdc-pins { pins = "gpio7"; function = "rgmii"; bias-pull-up; }; mdio-pins { pins = "gpio59"; function = "rgmii"; bias-pull-up; }; rgmii-rx-pins { pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116"; function = "rgmii"; bias-disable; drive-strength = <2>; }; rgmii-tx-pins { pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121"; function = "rgmii"; bias-pull-up; drive-strength = <16>; }; phy-intr-pins { pins = "gpio124"; function = "emac_phy"; bias-disable; drive-strength = <8>; }; pps-pins { pins = "gpio81"; function = "emac_pps"; bias-disable; drive-strength = <8>; }; phy-reset-pins { pins = "gpio79"; function = "gpio"; bias-pull-up; drive-strength = <16>; }; }; };