blob: 6cb6f503fdac95c7b0ff902c7662830b9d27efd8 [file] [log] [blame]
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
*/
/dts-v1/;
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/usb/pd.h>
#include "sm8150.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
#include "pm8150l.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SM8150 HDK";
compatible = "qcom,sm8150-hdk", "qcom,sm8150";
chassis-type = "embedded";
aliases {
serial0 = &uart2;
};
chosen {
stdout-path = "serial0:115200n8";
};
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
};
vreg_s4a_1p8: pm8150-s4 {
compatible = "regulator-fixed";
regulator-name = "vreg_s4a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&vph_pwr>;
};
gpio-keys {
compatible = "gpio-keys";
key-vol-up {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
};
};
hdmi-out {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con: endpoint {
remote-endpoint = <&lt9611_out>;
};
};
};
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pm8150-rpmh-regulators";
qcom,pmic-id = "a";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-s9-supply = <&vph_pwr>;
vdd-s10-supply = <&vph_pwr>;
vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
vdd-l2-l10-supply = <&vreg_bob>;
vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
vdd-l6-l9-supply = <&vreg_s8c_1p3>;
vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;
vdd-l13-l16-l17-supply = <&vreg_bob>;
vreg_s5a_2p0: smps5 {
regulator-min-microvolt = <1904000>;
regulator-max-microvolt = <2000000>;
};
vreg_s6a_0p9: smps6 {
regulator-min-microvolt = <920000>;
regulator-max-microvolt = <1128000>;
};
vdda_wcss_pll:
vreg_l1a_0p75: ldo1 {
regulator-min-microvolt = <752000>;
regulator-max-microvolt = <752000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdd_pdphy:
vdda_usb_hs_3p1:
vreg_l2a_3p1: ldo2 {
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3a_0p8: ldo3 {
regulator-min-microvolt = <480000>;
regulator-max-microvolt = <932000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdd_usb_hs_core:
vdda_csi_0_0p9:
vdda_csi_1_0p9:
vdda_csi_2_0p9:
vdda_csi_3_0p9:
vdda_dsi_0_0p9:
vdda_dsi_1_0p9:
vdda_dsi_0_pll_0p9:
vdda_dsi_1_pll_0p9:
vdda_pcie_1ln_core:
vdda_pcie_2ln_core:
vdda_pll_hv_cc_ebi01:
vdda_pll_hv_cc_ebi23:
vdda_qrefs_0p875_5:
vdda_sp_sensor:
vdda_ufs_2ln_core_1:
vdda_ufs_2ln_core_2:
vdda_qlink_lv:
vdda_qlink_lv_ck:
vreg_l5a_0p875: ldo5 {
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6a_1p2: ldo6 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7a_1p8: ldo7 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vddpx_10:
vreg_l9a_1p2: ldo9 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10a_2p5: ldo10 {
regulator-min-microvolt = <2504000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11a_0p8: ldo11 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdd_qfprom:
vdd_qfprom_sp:
vdda_apc_cs_1p8:
vdda_gfx_cs_1p8:
vdda_usb_hs_1p8:
vdda_qrefs_vref_1p8:
vddpx_10_a:
vreg_l12a_1p8: ldo12 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13a_2p7: ldo13 {
regulator-min-microvolt = <2704000>;
regulator-max-microvolt = <2704000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l14a_1p8: ldo14 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l15a_1p7: ldo15 {
regulator-min-microvolt = <1704000>;
regulator-max-microvolt = <1704000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l16a_2p7: ldo16 {
regulator-min-microvolt = <2704000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l17a_3p0: ldo17 {
regulator-min-microvolt = <2856000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l18a_0p8: ldo18 {
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
compatible = "qcom,pm8150l-rpmh-regulators";
qcom,pmic-id = "c";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-l1-l8-supply = <&vreg_s4a_1p8>;
vdd-l2-l3-supply = <&vreg_s8c_1p3>;
vdd-l4-l5-l6-supply = <&vreg_bob>;
vdd-l7-l11-supply = <&vreg_bob>;
vdd-l9-l10-supply = <&vreg_bob>;
vdd-bob-supply = <&vph_pwr>;
vdd-flash-supply = <&vreg_bob>;
vdd-rgb-supply = <&vreg_bob>;
vreg_bob: bob {
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <4000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
regulator-allow-bypass;
};
vreg_s8c_1p3: smps8 {
regulator-min-microvolt = <1352000>;
regulator-max-microvolt = <1352000>;
};
vreg_l1c_1p8: ldo1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdda_wcss_adcdac_1:
vdda_wcss_adcdac_22:
vreg_l2c_1p3: ldo2 {
regulator-min-microvolt = <1304000>;
regulator-max-microvolt = <1304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdda_hv_ebi0:
vdda_hv_ebi1:
vdda_hv_ebi2:
vdda_hv_ebi3:
vdda_hv_refgen0:
vdda_qlink_hv_ck:
vreg_l3c_1p2: ldo3 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vddpx_5:
vreg_l4c_1p8: ldo4 {
regulator-min-microvolt = <1704000>;
regulator-max-microvolt = <2928000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vddpx_6:
vreg_l5c_1p8: ldo5 {
regulator-min-microvolt = <1704000>;
regulator-max-microvolt = <2928000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vddpx_2:
vreg_l6c_2p9: ldo6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7c_3p0: ldo7 {
regulator-min-microvolt = <2856000>;
regulator-max-microvolt = <3104000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c_1p8: ldo8 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9c_2p9: ldo9 {
regulator-min-microvolt = <2704000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10c_3p3: ldo10 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3312000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11c_3p3: ldo11 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3312000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-2 {
compatible = "qcom,pm8009-rpmh-regulators";
qcom,pmic-id = "f";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vreg_bob>;
vdd-l2-supply = <&vreg_s8c_1p3>;
vdd-l5-l6-supply = <&vreg_bob>;
vreg_l2f_1p2: ldo2 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5f_2p85: ldo5 {
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6f_2p85: ldo6 {
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-min-microvolt = <2856000>;
regulator-max-microvolt = <2856000>;
};
};
};
&gmu {
status = "okay";
};
&gpi_dma0 {
status = "okay";
};
&gpi_dma1 {
status = "okay";
};
&gpu {
status = "okay";
};
&i2c4 {
clock-frequency = <100000>;
status = "okay";
typec-mux@42 {
compatible = "fcs,fsa4480";
reg = <0x42>;
interrupts-extended = <&tlmm 152 IRQ_TYPE_LEVEL_LOW>;
vcc-supply = <&vreg_bob>;
mode-switch;
orientation-switch;
port {
fsa4480_sbu_mux: endpoint {
remote-endpoint = <&pm8150b_typec_sbu_out>;
};
};
};
};
&i2c9 {
status = "okay";
clock-frequency = <400000>;
lt9611_codec: hdmi-bridge@3b {
compatible = "lontium,lt9611";
reg = <0x3b>;
#sound-dai-cells = <1>;
interrupts-extended = <&tlmm 9 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vreg_s4a_1p8>;
vcc-supply = <&vreg_bob>;
pinctrl-names = "default";
pinctrl-0 = <&lt9611_irq_pin>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
lt9611_a: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
port@1 {
reg = <1>;
lt9611_b: endpoint {
remote-endpoint = <&mdss_dsi1_out>;
};
};
port@2 {
reg = <2>;
lt9611_out: endpoint {
remote-endpoint = <&hdmi_con>;
};
};
};
};
};
&mdss {
status = "okay";
};
&mdss_dp {
status = "okay";
};
&mdss_dp_out {
data-lanes = <0 1>;
remote-endpoint = <&usb_1_qmpphy_dp_in>;
};
&mdss_dsi0 {
status = "okay";
vdda-supply = <&vreg_l3c_1p2>;
qcom,dual-dsi-mode;
qcom,master-dsi;
ports {
port@1 {
endpoint {
remote-endpoint = <&lt9611_a>;
data-lanes = <0 1 2 3>;
};
};
};
};
&mdss_dsi0_phy {
status = "okay";
vdds-supply = <&vreg_l5a_0p875>;
};
&mdss_dsi1 {
vdda-supply = <&vreg_l3c_1p2>;
qcom,dual-dsi-mode;
/* DSI1 is slave, so use DSI0 clocks */
assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
status = "okay";
ports {
port@1 {
endpoint {
remote-endpoint = <&lt9611_b>;
data-lanes = <0 1 2 3>;
};
};
};
};
&mdss_dsi1_phy {
vdds-supply = <&vreg_l5a_0p875>;
status = "okay";
};
&pm8150b_vbus {
regulator-min-microamp = <500000>;
regulator-max-microamp = <3000000>;
status = "okay";
};
&pm8150b_typec {
status = "okay";
vdd-pdphy-supply = <&vreg_l2a_3p1>;
connector {
compatible = "usb-c-connector";
power-role = "source";
data-role = "dual";
self-powered;
source-pdos = <PDO_FIXED(5000, 3000,
PDO_FIXED_DUAL_ROLE |
PDO_FIXED_USB_COMM |
PDO_FIXED_DATA_SWAP)>;
altmodes {
displayport {
svid = /bits/ 16 <0xff01>;
vdo = <0x00001c46>;
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pm8150b_role_switch_in: endpoint {
remote-endpoint = <&usb_1_dwc3_hs>;
};
};
port@1 {
reg = <1>;
pm8150b_typec_mux_in: endpoint {
remote-endpoint = <&usb_1_qmpphy_out>;
};
};
port@2 {
reg = <2>;
pm8150b_typec_sbu_out: endpoint {
remote-endpoint = <&fsa4480_sbu_mux>;
};
};
};
};
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
status = "okay";
linux,code = <KEY_VOLUMEDOWN>;
};
&qupv3_id_0 {
status = "okay";
};
&qupv3_id_1 {
status = "okay";
};
&remoteproc_adsp {
status = "okay";
firmware-name = "qcom/sm8150/adsp.mbn";
};
&remoteproc_cdsp {
status = "okay";
firmware-name = "qcom/sm8150/cdsp.mbn";
};
&remoteproc_mpss {
firmware-name = "qcom/sm8150/modem.mbn";
status = "okay";
};
&remoteproc_slpi {
status = "okay";
firmware-name = "qcom/sm8150/slpi.mbn";
};
&tlmm {
gpio-reserved-ranges = <0 4>, <126 4>;
lt9611_irq_pin: lt9611-irq-state {
pins = "gpio9";
function = "gpio";
bias-disable;
};
};
&uart2 {
status = "okay";
};
&ufs_mem_hc {
status = "okay";
reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l10a_2p5>;
vcc-max-microamp = <750000>;
vccq-supply = <&vreg_l9a_1p2>;
vccq-max-microamp = <700000>;
vccq2-supply = <&vreg_s4a_1p8>;
vccq2-max-microamp = <750000>;
};
&ufs_mem_phy {
status = "okay";
vdda-phy-supply = <&vdda_ufs_2ln_core_1>;
vdda-pll-supply = <&vreg_l3c_1p2>;
};
&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_2_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 = "okay";
vdda-phy-supply = <&vreg_l3c_1p2>;
vdda-pll-supply = <&vreg_l18a_0p8>;
orientation-switch;
};
&usb_1_qmpphy_dp_in {
remote-endpoint = <&mdss_dp_out>;
};
&usb_1_qmpphy_out {
remote-endpoint = <&pm8150b_typec_mux_in>;
};
&usb_1_qmpphy_usb_ss_in {
remote-endpoint = <&usb_1_dwc3_ss>;
};
&usb_2_qmpphy {
status = "okay";
vdda-phy-supply = <&vreg_l3c_1p2>;
vdda-pll-supply = <&vreg_l5a_0p875>;
};
&usb_1 {
status = "okay";
};
&usb_2 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "otg";
usb-role-switch;
};
&usb_1_dwc3_hs {
remote-endpoint = <&pm8150b_role_switch_in>;
};
&usb_1_dwc3_ss {
remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
};
&usb_2_dwc3 {
dr_mode = "host";
};
&wifi {
status = "okay";
vdd-0.8-cx-mx-supply = <&vreg_l1a_0p75>;
vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
qcom,ath10k-calibration-variant = "Qualcomm_sm8150hdk";
};