| // SPDX-License-Identifier: BSD-3-Clause |
| /* |
| * Copyright (c) 2021, The Linux Foundation. All rights reserved. |
| * Copyright (c) 2022, Linaro Limited |
| */ |
| |
| /dts-v1/; |
| |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/regulator/qcom,rpmh-regulator.h> |
| #include <dt-bindings/spmi/spmi.h> |
| |
| #include "sa8540p.dtsi" |
| #include "sa8540p-pmics.dtsi" |
| |
| / { |
| model = "Qualcomm SA8295P ADP"; |
| compatible = "qcom,sa8295p-adp", "qcom,sa8540p"; |
| |
| aliases { |
| serial0 = &uart17; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| |
| dp2-connector { |
| compatible = "dp-connector"; |
| label = "DP2"; |
| type = "mini"; |
| |
| hpd-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| dp2_connector_in: endpoint { |
| remote-endpoint = <&mdss1_dp0_phy_out>; |
| }; |
| }; |
| }; |
| |
| dp3-connector { |
| compatible = "dp-connector"; |
| label = "DP3"; |
| type = "mini"; |
| |
| hpd-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| dp3_connector_in: endpoint { |
| remote-endpoint = <&mdss1_dp1_phy_out>; |
| }; |
| }; |
| }; |
| |
| edp0-connector { |
| compatible = "dp-connector"; |
| label = "EDP0"; |
| type = "mini"; |
| |
| hpd-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| edp0_connector_in: endpoint { |
| remote-endpoint = <&mdss0_dp2_phy_out>; |
| }; |
| }; |
| }; |
| |
| edp1-connector { |
| compatible = "dp-connector"; |
| label = "EDP1"; |
| type = "mini"; |
| |
| hpd-gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| edp1_connector_in: endpoint { |
| remote-endpoint = <&mdss0_dp3_phy_out>; |
| }; |
| }; |
| }; |
| |
| edp2-connector { |
| compatible = "dp-connector"; |
| label = "EDP2"; |
| type = "mini"; |
| |
| hpd-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| edp2_connector_in: endpoint { |
| remote-endpoint = <&mdss1_dp2_phy_out>; |
| }; |
| }; |
| }; |
| |
| edp3-connector { |
| compatible = "dp-connector"; |
| label = "EDP3"; |
| type = "mini"; |
| |
| hpd-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| edp3_connector_in: endpoint { |
| remote-endpoint = <&mdss1_dp3_phy_out>; |
| }; |
| }; |
| }; |
| |
| reserved-memory { |
| gpu_mem: gpu-mem@8bf00000 { |
| reg = <0 0x8bf00000 0 0x2000>; |
| no-map; |
| }; |
| }; |
| }; |
| |
| &apps_rsc { |
| regulators-0 { |
| compatible = "qcom,pm8150-rpmh-regulators"; |
| qcom,pmic-id = "a"; |
| |
| vreg_l3a: ldo3 { |
| regulator-name = "vreg_l3a"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1208000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l5a: ldo5 { |
| regulator-name = "vreg_l5a"; |
| regulator-min-microvolt = <912000>; |
| regulator-max-microvolt = <912000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l7a: ldo7 { |
| regulator-name = "vreg_l7a"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l13a: ldo13 { |
| regulator-name = "vreg_l13a"; |
| regulator-min-microvolt = <3072000>; |
| regulator-max-microvolt = <3072000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l11a: ldo11 { |
| regulator-name = "vreg_l11a"; |
| regulator-min-microvolt = <880000>; |
| regulator-max-microvolt = <880000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| }; |
| |
| regulators-1 { |
| compatible = "qcom,pm8150-rpmh-regulators"; |
| qcom,pmic-id = "c"; |
| |
| vreg_l1c: ldo1 { |
| regulator-name = "vreg_l1c"; |
| regulator-min-microvolt = <912000>; |
| regulator-max-microvolt = <912000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l2c: ldo2 { |
| regulator-name = "vreg_l2c"; |
| regulator-min-microvolt = <3072000>; |
| regulator-max-microvolt = <3072000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l3c: ldo3 { |
| regulator-name = "vreg_l3c"; |
| 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_l4c: ldo4 { |
| regulator-name = "vreg_l4c"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1208000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l6c: ldo6 { |
| regulator-name = "vreg_l6c"; |
| 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: ldo7 { |
| regulator-name = "vreg_l7c"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l10c: ldo10 { |
| regulator-name = "vreg_l10c"; |
| regulator-min-microvolt = <2504000>; |
| regulator-max-microvolt = <2504000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| regulator-allow-set-load; |
| regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM |
| RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l17c: ldo17 { |
| regulator-name = "vreg_l17c"; |
| regulator-min-microvolt = <2504000>; |
| regulator-max-microvolt = <2504000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| regulator-allow-set-load; |
| regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM |
| RPMH_REGULATOR_MODE_HPM>; |
| }; |
| }; |
| |
| regulators-2 { |
| compatible = "qcom,pm8150-rpmh-regulators"; |
| qcom,pmic-id = "g"; |
| |
| vreg_l3g: ldo3 { |
| regulator-name = "vreg_l3g"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1200000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l7g: ldo7 { |
| regulator-name = "vreg_l7g"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l8g: ldo8 { |
| regulator-name = "vreg_l8g"; |
| regulator-min-microvolt = <912000>; |
| regulator-max-microvolt = <912000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| |
| vreg_l11g: ldo11 { |
| regulator-name = "vreg_l11g"; |
| regulator-min-microvolt = <912000>; |
| regulator-max-microvolt = <912000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| }; |
| }; |
| }; |
| |
| &dispcc0 { |
| status = "okay"; |
| }; |
| |
| &dispcc1 { |
| status = "okay"; |
| }; |
| |
| &i2c12 { |
| pinctrl-0 = <&qup1_i2c4_state>; |
| pinctrl-names = "default"; |
| |
| status = "okay"; |
| |
| vdd_gfx: regulator@39 { |
| compatible = "maxim,max20411"; |
| reg = <0x39>; |
| |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <800000>; |
| |
| enable-gpios = <&pmm8540a_gpios 2 GPIO_ACTIVE_HIGH>; |
| |
| pinctrl-0 = <&max20411_en>; |
| pinctrl-names = "default"; |
| }; |
| }; |
| |
| &gpucc { |
| vdd-gfx-supply = <&vdd_gfx>; |
| status = "okay"; |
| }; |
| |
| &gmu { |
| status = "okay"; |
| }; |
| |
| &gpu { |
| status = "okay"; |
| |
| zap-shader { |
| memory-region = <&gpu_mem>; |
| firmware-name = "qcom/sa8295p/a690_zap.mbn"; |
| }; |
| }; |
| |
| &gpu_smmu { |
| status = "okay"; |
| }; |
| |
| &mdss0 { |
| status = "okay"; |
| }; |
| |
| &mdss0_dp2 { |
| data-lanes = <0 1 2 3>; |
| |
| status = "okay"; |
| |
| ports { |
| port@1 { |
| reg = <1>; |
| mdss0_dp2_phy_out: endpoint { |
| remote-endpoint = <&edp0_connector_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &mdss0_dp2_phy { |
| vdda-phy-supply = <&vreg_l8g>; |
| vdda-pll-supply = <&vreg_l3g>; |
| |
| status = "okay"; |
| }; |
| |
| &mdss0_dp3 { |
| data-lanes = <0 1 2 3>; |
| |
| status = "okay"; |
| |
| ports { |
| port@1 { |
| reg = <1>; |
| mdss0_dp3_phy_out: endpoint { |
| remote-endpoint = <&edp1_connector_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &mdss0_dp3_phy { |
| vdda-phy-supply = <&vreg_l8g>; |
| vdda-pll-supply = <&vreg_l3g>; |
| |
| status = "okay"; |
| }; |
| |
| &mdss1 { |
| status = "okay"; |
| }; |
| |
| &mdss1_dp0 { |
| data-lanes = <0 1 2 3>; |
| |
| status = "okay"; |
| |
| ports { |
| port@1 { |
| reg = <1>; |
| mdss1_dp0_phy_out: endpoint { |
| remote-endpoint = <&dp2_connector_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &mdss1_dp0_phy { |
| vdda-phy-supply = <&vreg_l11g>; |
| vdda-pll-supply = <&vreg_l3g>; |
| |
| status = "okay"; |
| }; |
| |
| &mdss1_dp1 { |
| data-lanes = <0 1 2 3>; |
| |
| status = "okay"; |
| |
| ports { |
| port@1 { |
| reg = <1>; |
| mdss1_dp1_phy_out: endpoint { |
| remote-endpoint = <&dp3_connector_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &mdss1_dp1_phy { |
| vdda-phy-supply = <&vreg_l11g>; |
| vdda-pll-supply = <&vreg_l3g>; |
| |
| status = "okay"; |
| }; |
| |
| &mdss1_dp2 { |
| data-lanes = <0 1 2 3>; |
| |
| status = "okay"; |
| |
| ports { |
| port@1 { |
| reg = <1>; |
| mdss1_dp2_phy_out: endpoint { |
| remote-endpoint = <&edp2_connector_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &mdss1_dp2_phy { |
| vdda-phy-supply = <&vreg_l11g>; |
| vdda-pll-supply = <&vreg_l3g>; |
| |
| status = "okay"; |
| }; |
| |
| &mdss1_dp3 { |
| data-lanes = <0 1 2 3>; |
| |
| status = "okay"; |
| |
| ports { |
| port@1 { |
| reg = <1>; |
| mdss1_dp3_phy_out: endpoint { |
| remote-endpoint = <&edp3_connector_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &mdss1_dp3_phy { |
| vdda-phy-supply = <&vreg_l11g>; |
| vdda-pll-supply = <&vreg_l3g>; |
| |
| status = "okay"; |
| }; |
| |
| &pcie2a { |
| perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>; |
| wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pcie2a_default>; |
| |
| status = "okay"; |
| }; |
| |
| &pcie2a_phy { |
| vdda-phy-supply = <&vreg_l11a>; |
| vdda-pll-supply = <&vreg_l3a>; |
| |
| status = "okay"; |
| }; |
| |
| &pcie3a { |
| num-lanes = <2>; |
| |
| perst-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>; |
| wake-gpios = <&tlmm 56 GPIO_ACTIVE_LOW>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pcie3a_default>; |
| |
| status = "okay"; |
| }; |
| |
| &pcie3a_phy { |
| vdda-phy-supply = <&vreg_l11a>; |
| vdda-pll-supply = <&vreg_l3a>; |
| |
| status = "okay"; |
| }; |
| |
| &pcie3b { |
| perst-gpios = <&tlmm 153 GPIO_ACTIVE_LOW>; |
| wake-gpios = <&tlmm 130 GPIO_ACTIVE_LOW>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pcie3b_default>; |
| |
| status = "okay"; |
| }; |
| |
| &pcie3b_phy { |
| vdda-phy-supply = <&vreg_l11a>; |
| vdda-pll-supply = <&vreg_l3a>; |
| |
| status = "okay"; |
| }; |
| |
| &pcie4 { |
| perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>; |
| wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pcie4_default>; |
| |
| status = "okay"; |
| }; |
| |
| &pcie4_phy { |
| vdda-phy-supply = <&vreg_l11a>; |
| vdda-pll-supply = <&vreg_l3a>; |
| |
| status = "okay"; |
| }; |
| |
| &qup1 { |
| status = "okay"; |
| }; |
| |
| &qup2 { |
| status = "okay"; |
| }; |
| |
| &remoteproc_adsp { |
| firmware-name = "qcom/sa8540p/adsp.mbn"; |
| status = "okay"; |
| }; |
| |
| &remoteproc_nsp0 { |
| firmware-name = "qcom/sa8540p/cdsp.mbn"; |
| status = "okay"; |
| }; |
| |
| &remoteproc_nsp1 { |
| firmware-name = "qcom/sa8540p/cdsp1.mbn"; |
| status = "okay"; |
| }; |
| |
| &uart17 { |
| compatible = "qcom,geni-debug-uart"; |
| status = "okay"; |
| }; |
| |
| &ufs_mem_hc { |
| reset-gpios = <&tlmm 228 GPIO_ACTIVE_LOW>; |
| |
| vcc-supply = <&vreg_l17c>; |
| vcc-max-microamp = <800000>; |
| vccq-supply = <&vreg_l6c>; |
| vccq-max-microamp = <900000>; |
| |
| status = "okay"; |
| }; |
| |
| &ufs_mem_phy { |
| vdda-phy-supply = <&vreg_l8g>; |
| vdda-pll-supply = <&vreg_l3g>; |
| |
| status = "okay"; |
| }; |
| |
| &ufs_card_hc { |
| reset-gpios = <&tlmm 229 GPIO_ACTIVE_LOW>; |
| |
| vcc-supply = <&vreg_l10c>; |
| vcc-max-microamp = <800000>; |
| vccq-supply = <&vreg_l3c>; |
| vccq-max-microamp = <900000>; |
| |
| status = "okay"; |
| }; |
| |
| &ufs_card_phy { |
| vdda-phy-supply = <&vreg_l8g>; |
| vdda-pll-supply = <&vreg_l3g>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_0 { |
| status = "okay"; |
| }; |
| |
| &usb_0_dwc3 { |
| /* TODO: Define USB-C connector properly */ |
| dr_mode = "peripheral"; |
| }; |
| |
| &usb_0_hsphy { |
| vdda-pll-supply = <&vreg_l5a>; |
| vdda18-supply = <&vreg_l7a>; |
| vdda33-supply = <&vreg_l13a>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_0_qmpphy { |
| vdda-phy-supply = <&vreg_l3a>; |
| vdda-pll-supply = <&vreg_l5a>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_1 { |
| status = "okay"; |
| }; |
| |
| &usb_1_dwc3 { |
| /* TODO: Define USB-C connector properly */ |
| dr_mode = "host"; |
| }; |
| |
| &usb_1_hsphy { |
| vdda-pll-supply = <&vreg_l1c>; |
| vdda18-supply = <&vreg_l7c>; |
| vdda33-supply = <&vreg_l2c>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_1_qmpphy { |
| vdda-phy-supply = <&vreg_l4c>; |
| vdda-pll-supply = <&vreg_l1c>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_2_hsphy0 { |
| vdda-pll-supply = <&vreg_l5a>; |
| vdda18-supply = <&vreg_l7g>; |
| vdda33-supply = <&vreg_l13a>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_2_hsphy1 { |
| vdda-pll-supply = <&vreg_l5a>; |
| vdda18-supply = <&vreg_l7g>; |
| vdda33-supply = <&vreg_l13a>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_2_hsphy2 { |
| vdda-pll-supply = <&vreg_l5a>; |
| vdda18-supply = <&vreg_l7g>; |
| vdda33-supply = <&vreg_l13a>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_2_hsphy3 { |
| vdda-pll-supply = <&vreg_l5a>; |
| vdda18-supply = <&vreg_l7g>; |
| vdda33-supply = <&vreg_l13a>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_2_qmpphy0 { |
| vdda-phy-supply = <&vreg_l3a>; |
| vdda-pll-supply = <&vreg_l5a>; |
| |
| status = "okay"; |
| }; |
| |
| &usb_2_qmpphy1 { |
| vdda-phy-supply = <&vreg_l3a>; |
| vdda-pll-supply = <&vreg_l5a>; |
| |
| status = "okay"; |
| }; |
| |
| &xo_board_clk { |
| clock-frequency = <38400000>; |
| }; |
| |
| /* PINCTRL */ |
| |
| &pmm8540a_gpios { |
| max20411_en: max20411-en-state { |
| pins = "gpio2"; |
| function = "normal"; |
| output-enable; |
| }; |
| }; |
| |
| &tlmm { |
| pcie2a_default: pcie2a-default-state { |
| clkreq-n-pins { |
| pins = "gpio142"; |
| function = "pcie2a_clkreq"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| |
| perst-n-pins { |
| pins = "gpio143"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-down; |
| }; |
| |
| wake-n-pins { |
| pins = "gpio145"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| }; |
| |
| pcie3a_default: pcie3a-default-state { |
| clkreq-n-pins { |
| pins = "gpio150"; |
| function = "pcie3a_clkreq"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| |
| perst-n-pins { |
| pins = "gpio151"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-down; |
| }; |
| |
| wake-n-pins { |
| pins = "gpio56"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| }; |
| |
| pcie3b_default: pcie3b-default-state { |
| clkreq-n-pins { |
| pins = "gpio152"; |
| function = "pcie3b_clkreq"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| |
| perst-n-pins { |
| pins = "gpio153"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-down; |
| }; |
| |
| wake-n-pins { |
| pins = "gpio130"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| }; |
| |
| pcie4_default: pcie4-default-state { |
| clkreq-n-pins { |
| pins = "gpio140"; |
| function = "pcie4_clkreq"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| |
| perst-n-pins { |
| pins = "gpio141"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-down; |
| }; |
| |
| wake-n-pins { |
| pins = "gpio139"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| }; |
| |
| qup1_i2c4_state: qup1-i2c4-state { |
| pins = "gpio0", "gpio1"; |
| function = "qup12"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| }; |