// SPDX-License-Identifier: BSD-3-Clause /* * Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2022, Linaro Limited */ /dts-v1/; #include #include #include #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 = ; }; vreg_l5a: ldo5 { regulator-name = "vreg_l5a"; regulator-min-microvolt = <912000>; regulator-max-microvolt = <912000>; regulator-initial-mode = ; }; vreg_l7a: ldo7 { regulator-name = "vreg_l7a"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = ; }; vreg_l13a: ldo13 { regulator-name = "vreg_l13a"; regulator-min-microvolt = <3072000>; regulator-max-microvolt = <3072000>; regulator-initial-mode = ; }; vreg_l11a: ldo11 { regulator-name = "vreg_l11a"; regulator-min-microvolt = <880000>; regulator-max-microvolt = <880000>; regulator-initial-mode = ; }; }; 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 = ; }; vreg_l2c: ldo2 { regulator-name = "vreg_l2c"; regulator-min-microvolt = <3072000>; regulator-max-microvolt = <3072000>; regulator-initial-mode = ; }; vreg_l3c: ldo3 { regulator-name = "vreg_l3c"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = ; regulator-allow-set-load; regulator-allowed-modes = ; }; vreg_l4c: ldo4 { regulator-name = "vreg_l4c"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1208000>; regulator-initial-mode = ; }; vreg_l6c: ldo6 { regulator-name = "vreg_l6c"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = ; regulator-allow-set-load; regulator-allowed-modes = ; }; vreg_l7c: ldo7 { regulator-name = "vreg_l7c"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = ; }; vreg_l10c: ldo10 { regulator-name = "vreg_l10c"; regulator-min-microvolt = <2504000>; regulator-max-microvolt = <2504000>; regulator-initial-mode = ; regulator-allow-set-load; regulator-allowed-modes = ; }; vreg_l17c: ldo17 { regulator-name = "vreg_l17c"; regulator-min-microvolt = <2504000>; regulator-max-microvolt = <2504000>; regulator-initial-mode = ; regulator-allow-set-load; regulator-allowed-modes = ; }; }; 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 = ; }; vreg_l7g: ldo7 { regulator-name = "vreg_l7g"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = ; }; vreg_l8g: ldo8 { regulator-name = "vreg_l8g"; regulator-min-microvolt = <912000>; regulator-max-microvolt = <912000>; regulator-initial-mode = ; }; vreg_l11g: ldo11 { regulator-name = "vreg_l11g"; regulator-min-microvolt = <912000>; regulator-max-microvolt = <912000>; regulator-initial-mode = ; }; }; }; &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; }; };