blob: 5e4287f8c8cd19c84181b9533b9476eb0f7927ca [file] [log] [blame]
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2021, Linaro Limited
*/
/dts-v1/;
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/gpio/gpio.h>
#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 = <RPMH_REGULATOR_MODE_HPM>;
};
vdda_usb_hs_3p1:
vreg_l2a_3p072: ldo2 {
regulator-name = "vreg_l2a_3p072";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3a_0p8: ldo3 {
regulator-name = "vreg_l3a_0p8";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
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 = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7a_1p8: ldo7 {
regulator-name = "vreg_l7a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10a_2p96: ldo10 {
regulator-name = "vreg_l10a_2p96";
regulator-min-microvolt = <2504000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11a_0p8: ldo11 {
regulator-name = "vreg_l11a_0p8";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdda_usb_hs_1p8:
vreg_l12a_1p8: ldo12 {
regulator-name = "vreg_l12a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13a_2p7: ldo13 {
regulator-name = "vreg_l13a_2p7";
regulator-min-microvolt = <2704000>;
regulator-max-microvolt = <2704000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l15a_1p7: ldo15 {
regulator-name = "vreg_l15a_1p7";
regulator-min-microvolt = <1704000>;
regulator-max-microvolt = <1704000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l16a_2p7: ldo16 {
regulator-name = "vreg_l16a_2p7";
regulator-min-microvolt = <2704000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l17a_2p96: ldo17 {
regulator-name = "vreg_l17a_2p96";
regulator-min-microvolt = <2504000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
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 = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2c_1p808: ldo2 {
regulator-name = "vreg_l2c_1p808";
regulator-min-microvolt = <1704000>;
regulator-max-microvolt = <2928000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5c_1p2: ldo5 {
regulator-name = "vreg_l5c_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7c_1p8: ldo7 {
regulator-name = "vreg_l7c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c_1p2: ldo8 {
regulator-name = "vreg_l8c_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10c_3p3: ldo10 {
regulator-name = "vreg_l10c_3p3";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3312000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11c_0p8: ldo11 {
regulator-name = "vreg_l11c_0p8";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12c_1p808: ldo12 {
regulator-name = "vreg_l12c_1p808";
regulator-min-microvolt = <1704000>;
regulator-max-microvolt = <2928000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13c_2p96: ldo13 {
regulator-name = "vreg_l13c_2p96";
regulator-min-microvolt = <2504000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l15c_1p9: ldo15 {
regulator-name = "vreg_l15c_1p9";
regulator-min-microvolt = <1704000>;
regulator-max-microvolt = <2928000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l16c_3p008: ldo16 {
regulator-name = "vreg_l16c_3p008";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l18c_0p88: ldo18 {
regulator-name = "vreg_l18c_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
};
&ethernet {
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 = <&ethernet_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>;
};
};
};