linux-loongson/arch/arm64/boot/dts/qcom/sm8650-hdk.dts
Neil Armstrong 56cf5ad39a arm64: dts: qcom: sm8650: add iris DT node
Add DT entries for the sm8650 iris decoder.

Since the firmware is required to be signed, only enable
on Qualcomm development boards where the firmware is
available.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20250613-topic-sm8x50-upstream-iris-8650-dt-v4-1-35ea7952f2d2@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2025-06-18 16:24:29 -05:00

1348 lines
30 KiB
Plaintext

// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2024, Linaro Limited
*/
/dts-v1/;
#include <dt-bindings/leds/common.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm8650.dtsi"
#include "pm8010.dtsi"
#include "pm8550.dtsi"
#include "pm8550b.dtsi"
#define PMK8550VE_SID 8
#include "pm8550ve.dtsi"
#include "pm8550vs.dtsi"
#include "pmk8550.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SM8650 HDK";
compatible = "qcom,sm8650-hdk", "qcom,sm8650";
chassis-type = "embedded";
aliases {
serial0 = &uart15;
serial1 = &uart14;
};
chosen {
stdout-path = "serial0:115200n8";
};
hdmi-out {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_connector_out: endpoint {
remote-endpoint = <&lt9611_out>;
};
};
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&volume_up_n>;
pinctrl-names = "default";
key-volume-up {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
debounce-interval = <15>;
linux,can-disable;
wakeup-source;
};
};
leds {
compatible = "gpio-leds";
led-0 {
function = LED_FUNCTION_BLUETOOTH;
color = <LED_COLOR_ID_BLUE>;
gpios = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "bluetooth-power";
default-state = "off";
};
led-1 {
function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_GREEN>;
gpios = <&pm8550b_gpios 9 GPIO_ACTIVE_HIGH>;
default-state = "off";
panic-indicator;
};
led-2 {
function = LED_FUNCTION_WLAN;
color = <LED_COLOR_ID_ORANGE>;
gpios = <&pm8550b_gpios 10 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tx";
default-state = "off";
};
};
pmic-glink {
compatible = "qcom,sm8650-pmic-glink",
"qcom,sm8550-pmic-glink",
"qcom,pmic-glink";
#address-cells = <1>;
#size-cells = <0>;
orientation-gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>;
connector@0 {
compatible = "usb-c-connector";
reg = <0>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_glink_hs_in: endpoint {
remote-endpoint = <&usb_1_dwc3_hs>;
};
};
port@1 {
reg = <1>;
pmic_glink_ss_in: endpoint {
remote-endpoint = <&usb_dp_qmpphy_out>;
};
};
port@2 {
reg = <2>;
pmic_glink_sbu: endpoint {
remote-endpoint = <&wcd_usbss_sbu_mux>;
};
};
};
};
};
lt9611_1v2: regulator-lt9611-1v2 {
compatible = "regulator-fixed";
regulator-name = "LT9611_1V2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
vin-supply = <&vph_pwr>;
gpio = <&tlmm 79 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
lt9611_3v3: regulator-lt9611-3v3 {
compatible = "regulator-fixed";
regulator-name = "LT9611_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vreg_bob_3v3>;
gpio = <&tlmm 78 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
sound {
compatible = "qcom,sm8650-sndcard", "qcom,sm8450-sndcard";
model = "SM8650-HDK";
audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
"SpkrRight IN", "WSA_SPK2 OUT",
"IN1_HPHL", "HPHL_OUT",
"IN2_HPHR", "HPHR_OUT",
"AMIC1", "MIC BIAS1",
"AMIC2", "MIC BIAS2",
"AMIC5", "MIC BIAS4",
"TX SWR_INPUT0", "ADC1_OUTPUT",
"TX SWR_INPUT1", "ADC2_OUTPUT",
"TX SWR_INPUT3", "ADC4_OUTPUT";
wcd-playback-dai-link {
link-name = "WCD Playback";
cpu {
sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
};
codec {
sound-dai = <&wcd939x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
wcd-capture-dai-link {
link-name = "WCD Capture";
cpu {
sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
};
codec {
sound-dai = <&wcd939x 1>, <&swr2 0>, <&lpass_txmacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
wsa-dai-link {
link-name = "WSA Playback";
cpu {
sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
};
codec {
sound-dai = <&north_spkr>, <&south_spkr>, <&swr0 0>, <&lpass_wsamacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
};
vph_pwr: regulator-vph-pwr {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
regulator-always-on;
regulator-boot-on;
};
vreg_bob_3v3: regulator-vreg-bob-3v3 {
compatible = "regulator-fixed";
regulator-name = "VREG_BOB_3P3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vph_pwr>;
};
wcd939x: audio-codec {
compatible = "qcom,wcd9395-codec", "qcom,wcd9390-codec";
pinctrl-0 = <&wcd_default>;
pinctrl-names = "default";
qcom,micbias1-microvolt = <1800000>;
qcom,micbias2-microvolt = <1800000>;
qcom,micbias3-microvolt = <1800000>;
qcom,micbias4-microvolt = <1800000>;
qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
qcom,rx-device = <&wcd_rx>;
qcom,tx-device = <&wcd_tx>;
reset-gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
vdd-buck-supply = <&vreg_l15b_1p8>;
vdd-rxtx-supply = <&vreg_l15b_1p8>;
vdd-io-supply = <&vreg_l15b_1p8>;
vdd-mic-bias-supply = <&vreg_bob1>;
#sound-dai-cells = <1>;
};
wcn7850-pmu {
compatible = "qcom,wcn7850-pmu";
pinctrl-names = "default";
pinctrl-0 = <&wlan_en>, <&bt_default>;
wlan-enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
bt-enable-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vreg_s4i_0p85>;
vddio-supply = <&vreg_l15b_1p8>;
vddio1p2-supply = <&vreg_l3c_1p2>;
vddaon-supply = <&vreg_s2c_0p8>;
vdddig-supply = <&vreg_s3c_0p9>;
vddrfa1p2-supply = <&vreg_s1c_1p2>;
vddrfa1p8-supply = <&vreg_s6c_1p8>;
clocks = <&rpmhcc RPMH_RF_CLK1>;
regulators {
vreg_pmu_rfa_cmn: ldo0 {
regulator-name = "vreg_pmu_rfa_cmn";
};
vreg_pmu_aon_0p59: ldo1 {
regulator-name = "vreg_pmu_aon_0p59";
};
vreg_pmu_wlcx_0p8: ldo2 {
regulator-name = "vreg_pmu_wlcx_0p8";
};
vreg_pmu_wlmx_0p85: ldo3 {
regulator-name = "vreg_pmu_wlmx_0p85";
};
vreg_pmu_btcmx_0p85: ldo4 {
regulator-name = "vreg_pmu_btcmx_0p85";
};
vreg_pmu_rfa_0p8: ldo5 {
regulator-name = "vreg_pmu_rfa_0p8";
};
vreg_pmu_rfa_1p2: ldo6 {
regulator-name = "vreg_pmu_rfa_1p2";
};
vreg_pmu_rfa_1p8: ldo7 {
regulator-name = "vreg_pmu_rfa_1p8";
};
vreg_pmu_pcie_0p9: ldo8 {
regulator-name = "vreg_pmu_pcie_0p9";
};
vreg_pmu_pcie_1p8: ldo9 {
regulator-name = "vreg_pmu_pcie_1p8";
};
};
};
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pm8550-rpmh-regulators";
vdd-bob1-supply = <&vph_pwr>;
vdd-bob2-supply = <&vph_pwr>;
vdd-l2-l13-l14-supply = <&vreg_bob1>;
vdd-l3-supply = <&vreg_s1c_1p2>;
vdd-l5-l16-supply = <&vreg_bob1>;
vdd-l6-l7-supply = <&vreg_bob1>;
vdd-l8-l9-supply = <&vreg_bob1>;
vdd-l11-supply = <&vreg_s1c_1p2>;
vdd-l12-supply = <&vreg_s6c_1p8>;
vdd-l15-supply = <&vreg_s6c_1p8>;
vdd-l17-supply = <&vreg_bob2>;
qcom,pmic-id = "b";
vreg_bob1: bob1 {
regulator-name = "vreg_bob1";
regulator-min-microvolt = <3296000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob2: bob2 {
regulator-name = "vreg_bob2";
regulator-min-microvolt = <2720000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2b_3p0: ldo2 {
regulator-name = "vreg_l2b_3p0";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5b_3p1: ldo5 {
regulator-name = "vreg_l5b_3p1";
regulator-min-microvolt = <3104000>;
regulator-max-microvolt = <3104000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b_1p8: ldo6 {
regulator-name = "vreg_l6b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7b_1p8: ldo7 {
regulator-name = "vreg_l7b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8b_1p8: ldo8 {
regulator-name = "vreg_l8b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9b_2p9: ldo9 {
regulator-name = "vreg_l9b_2p9";
regulator-min-microvolt = <2960000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11b_1p2: ldo11 {
regulator-name = "vreg_l11b_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1504000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12b_1p8: ldo12 {
regulator-name = "vreg_l12b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13b_3p0: ldo13 {
regulator-name = "vreg_l13b_3p0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l14b_3p2: ldo14 {
regulator-name = "vreg_l14b_3p2";
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l15b_1p8: ldo15 {
regulator-name = "vreg_l15b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l16b_2p8: ldo16 {
regulator-name = "vreg_l16b_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l17b_2p5: ldo17 {
regulator-name = "vreg_l17b_2p5";
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-1 {
compatible = "qcom,pm8550vs-rpmh-regulators";
vdd-l1-supply = <&vreg_s1c_1p2>;
vdd-l2-supply = <&vreg_s1c_1p2>;
vdd-l3-supply = <&vreg_s1c_1p2>;
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>;
qcom,pmic-id = "c";
vreg_s1c_1p2: smps1 {
regulator-name = "vreg_s1c_1p2";
regulator-min-microvolt = <1256000>;
regulator-max-microvolt = <1348000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s2c_0p8: smps2 {
regulator-name = "vreg_s2c_0p8";
regulator-min-microvolt = <852000>;
regulator-max-microvolt = <1036000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s3c_0p9: smps3 {
regulator-name = "vreg_s3c_0p9";
regulator-min-microvolt = <976000>;
regulator-max-microvolt = <1064000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s4c_1p2: smps4 {
regulator-name = "vreg_s4c_1p2";
regulator-min-microvolt = <1224000>;
regulator-max-microvolt = <1280000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s5c_0p7: smps5 {
regulator-name = "vreg_s5c_0p7";
regulator-min-microvolt = <752000>;
regulator-max-microvolt = <900000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s6c_1p8: smps6 {
regulator-name = "vreg_s6c_1p8";
regulator-min-microvolt = <1856000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1c_1p2: ldo1 {
regulator-name = "vreg_l1c_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_l3c_1p2: ldo3 {
regulator-name = "vreg_l3c_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>;
};
};
regulators-2 {
compatible = "qcom,pm8550vs-rpmh-regulators";
vdd-l1-supply = <&vreg_s3c_0p9>;
qcom,pmic-id = "d";
vreg_l1d_0p88: ldo1 {
regulator-name = "vreg_l1d_0p88";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-3 {
compatible = "qcom,pm8550vs-rpmh-regulators";
vdd-l3-supply = <&vreg_s3c_0p9>;
qcom,pmic-id = "e";
vreg_l3e_0p9: ldo3 {
regulator-name = "vreg_l3e_0p9";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-4 {
compatible = "qcom,pm8550vs-rpmh-regulators";
vdd-l1-supply = <&vreg_s3c_0p9>;
vdd-l3-supply = <&vreg_s3c_0p9>;
qcom,pmic-id = "g";
vreg_l1g_0p91: ldo1 {
regulator-name = "vreg_l1g_0p91";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3g_0p91: ldo3 {
regulator-name = "vreg_l3g_0p91";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-5 {
compatible = "qcom,pm8550ve-rpmh-regulators";
vdd-l1-supply = <&vreg_s3c_0p9>;
vdd-l2-supply = <&vreg_s3c_0p9>;
vdd-l3-supply = <&vreg_s1c_1p2>;
vdd-s4-supply = <&vph_pwr>;
qcom,pmic-id = "i";
vreg_s4i_0p85: smps4 {
regulator-name = "vreg_s4i_0p85";
regulator-min-microvolt = <852000>;
regulator-max-microvolt = <1004000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1i_0p88: ldo1 {
regulator-name = "vreg_l1i_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2i_0p88: ldo2 {
regulator-name = "vreg_l2i_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3i_1p2: ldo3 {
regulator-name = "vreg_l3i_0p91";
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>;
};
};
regulators-6 {
compatible = "qcom,pm8010-rpmh-regulators";
qcom,pmic-id = "m";
vdd-l1-l2-supply = <&vreg_s1c_1p2>;
vdd-l3-l4-supply = <&vreg_bob2>;
vdd-l5-supply = <&vreg_s6c_1p8>;
vdd-l6-supply = <&vreg_bob1>;
vdd-l7-supply = <&vreg_bob1>;
vreg_l1m_1p1: ldo1 {
regulator-name = "vreg_l1m_1p1";
regulator-min-microvolt = <1104000>;
regulator-max-microvolt = <1104000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2m_1p056: ldo2 {
regulator-name = "vreg_l2m_1p056";
regulator-min-microvolt = <1056000>;
regulator-max-microvolt = <1056000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3m_2p8: ldo3 {
regulator-name = "vreg_l3m_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4m_2p8: ldo4 {
regulator-name = "vreg_l4m_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5m_1p8: ldo5 {
regulator-name = "vreg_l5m_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6m_2p8: ldo6 {
regulator-name = "vreg_l6m_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7m_2p96: ldo7 {
regulator-name = "vreg_l7m_2p96";
regulator-min-microvolt = <2960000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-7 {
compatible = "qcom,pm8010-rpmh-regulators";
qcom,pmic-id = "n";
vdd-l1-l2-supply = <&vreg_s1c_1p2>;
vdd-l3-l4-supply = <&vreg_s6c_1p8>;
vdd-l5-supply = <&vreg_bob2>;
vdd-l6-supply = <&vreg_bob2>;
vdd-l7-supply = <&vreg_bob1>;
vreg_l1n_1p1: ldo1 {
regulator-name = "vreg_l1n_1p1";
regulator-min-microvolt = <1104000>;
regulator-max-microvolt = <1104000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2n_1p056: ldo2 {
regulator-name = "vreg_l2n_1p056";
regulator-min-microvolt = <1056000>;
regulator-max-microvolt = <1056000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3n_1p8: ldo3 {
regulator-name = "vreg_l3n_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4n_1p8: ldo4 {
regulator-name = "vreg_l4n_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5n_2p8: ldo5 {
regulator-name = "vreg_l5n_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6n_2p8: ldo6 {
regulator-name = "vreg_l6n_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7n_3p3: ldo7 {
regulator-name = "vreg_l7n_3p3";
regulator-min-microvolt = <3304000>;
regulator-max-microvolt = <3304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
};
&gpi_dma1 {
status = "okay";
};
&i2c3 {
status = "okay";
wcd_usbss: typec-mux@e {
compatible = "qcom,wcd9395-usbss", "qcom,wcd9390-usbss";
reg = <0xe>;
vdd-supply = <&vreg_l15b_1p8>;
reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>;
mode-switch;
orientation-switch;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
wcd_usbss_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_sbu>;
};
};
};
};
};
&i2c6 {
clock-frequency = <400000>;
status = "okay";
lt9611_codec: hdmi-bridge@2b {
compatible = "lontium,lt9611uxc";
reg = <0x2b>;
interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
vdd-supply = <&lt9611_1v2>;
vcc-supply = <&lt9611_3v3>;
pinctrl-0 = <&lt9611_irq_pin>, <&lt9611_rst_pin>;
pinctrl-names = "default";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
lt9611_a: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
port@2 {
reg = <2>;
lt9611_out: endpoint {
remote-endpoint = <&hdmi_connector_out>;
};
};
};
};
};
&ipa {
qcom,gsi-loader = "self";
memory-region = <&ipa_fw_mem>;
firmware-name = "qcom/sm8650/ipa_fws.mbn";
status = "okay";
};
&iris {
status = "okay";
};
&gpu {
status = "okay";
zap-shader {
firmware-name = "qcom/sm8650/gen70900_zap.mbn";
};
};
&lpass_tlmm {
spkr_1_sd_n_active: spkr-1-sd-n-active-state {
pins = "gpio21";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-low;
};
};
&mdss {
status = "okay";
};
&mdss_dsi0 {
vdda-supply = <&vreg_l3i_1p2>;
status = "okay";
};
&mdss_dsi0_out {
remote-endpoint = <&lt9611_a>;
data-lanes = <0 1 2 3>;
};
&mdss_dsi0_phy {
vdds-supply = <&vreg_l1i_0p88>;
status = "okay";
};
&mdss_dp0 {
status = "okay";
};
&mdss_dp0_out {
data-lanes = <0 1>;
};
&pcie0 {
wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&pcie0_default_state>;
pinctrl-names = "default";
status = "okay";
};
&pcieport0 {
wifi@0 {
compatible = "pci17cb,1107";
reg = <0x10000 0x0 0x0 0x0 0x0>;
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddaon-supply = <&vreg_pmu_aon_0p59>;
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
};
};
&pcie0_phy {
vdda-phy-supply = <&vreg_l1i_0p88>;
vdda-pll-supply = <&vreg_l3i_1p2>;
status = "okay";
};
&pcie1 {
wake-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
perst-gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&pcie1_default_state>;
pinctrl-names = "default";
status = "okay";
};
&pcie1_phy {
vdda-phy-supply = <&vreg_l3e_0p9>;
vdda-pll-supply = <&vreg_l3i_1p2>;
vdda-qref-supply = <&vreg_l1i_0p88>;
status = "okay";
};
&pm8550_gpios {
sdc2_card_det_n: sdc2-card-det-state {
pins = "gpio12";
function = "normal";
bias-pull-up;
input-enable;
output-disable;
power-source = <1>; /* 1.8 V */
};
volume_up_n: volume-up-n-state {
pins = "gpio6";
function = "normal";
bias-pull-up;
input-enable;
power-source = <1>;
};
};
/* The RGB signals are routed to 3 separate LEDs on the HDK8650 */
&pm8550_pwm {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
led@1 {
reg = <1>;
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_RED>;
default-state = "off";
};
led@2 {
reg = <2>;
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
default-state = "off";
};
led@3 {
reg = <3>;
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_BLUE>;
default-state = "off";
};
};
&pm8550b_eusb2_repeater {
vdd18-supply = <&vreg_l15b_1p8>;
vdd3-supply = <&vreg_l5b_3p1>;
};
&pmk8550_rtc {
status = "okay";
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&qup_i2c3_data_clk {
/* Use internal I2C pull-up */
bias-pull-up = <2200>;
};
&qupv3_id_0 {
iommus = <&apps_smmu 0xa3 0x3>;
status = "okay";
};
&qupv3_id_1 {
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/sm8650/adsp.mbn",
"qcom/sm8650/adsp_dtb.mbn";
status = "okay";
};
&remoteproc_cdsp {
firmware-name = "qcom/sm8650/cdsp.mbn",
"qcom/sm8650/cdsp_dtb.mbn";
status = "okay";
};
&remoteproc_mpss {
firmware-name = "qcom/sm8650/modem.mbn",
"qcom/sm8650/modem_dtb.mbn";
status = "okay";
};
&sdhc_2 {
cd-gpios = <&pm8550_gpios 12 GPIO_ACTIVE_HIGH>;
vmmc-supply = <&vreg_l9b_2p9>;
vqmmc-supply = <&vreg_l8b_1p8>;
bus-width = <4>;
no-sdio;
no-mmc;
pinctrl-0 = <&sdc2_default>, <&sdc2_card_det_n>;
pinctrl-1 = <&sdc2_sleep>, <&sdc2_card_det_n>;
pinctrl-names = "default", "sleep";
status = "okay";
};
&sleep_clk {
clock-frequency = <32764>;
};
&swr0 {
status = "okay";
/* WSA8845, Speaker North */
north_spkr: speaker@0,0 {
compatible = "sdw20217020400";
reg = <0 0>;
pinctrl-0 = <&spkr_1_sd_n_active>;
pinctrl-names = "default";
powerdown-gpios = <&lpass_tlmm 21 GPIO_ACTIVE_LOW>;
#sound-dai-cells = <0>;
sound-name-prefix = "SpkrLeft";
vdd-1p8-supply = <&vreg_l15b_1p8>;
vdd-io-supply = <&vreg_l3c_1p2>;
/*
* WSA8845 Port 1 (DAC) <=> SWR0 Port 1 (SPKR_L)
* WSA8845 Port 2 (COMP) <=> SWR0 Port 2 (SPKR_L_COMP)
* WSA8845 Port 3 (BOOST) <=> SWR0 Port 3 (SPKR_L_BOOST)
* WSA8845 Port 4 (PBR) <=> SWR0 Port 7 (PBR)
* WSA8845 Port 5 (VISENSE) <=> SWR0 Port 10 (SPKR_L_VI)
* WSA8845 Port 6 (CPS) <=> SWR0 Port 13 (CPS)
*/
qcom,port-mapping = <1 2 3 7 10 13>;
};
/* WSA8845, Speaker South */
south_spkr: speaker@0,1 {
compatible = "sdw20217020400";
reg = <0 1>;
pinctrl-0 = <&spkr_2_sd_n_active>;
pinctrl-names = "default";
powerdown-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
#sound-dai-cells = <0>;
sound-name-prefix = "SpkrRight";
vdd-1p8-supply = <&vreg_l15b_1p8>;
vdd-io-supply = <&vreg_l3c_1p2>;
/*
* WSA8845 Port 1 (DAC) <=> SWR0 Port 4 (SPKR_R)
* WSA8845 Port 2 (COMP) <=> SWR0 Port 5 (SPKR_R_COMP)
* WSA8845 Port 3 (BOOST) <=> SWR0 Port 6 (SPKR_R_BOOST)
* WSA8845 Port 4 (PBR) <=> SWR0 Port 7 (PBR)
* WSA8845 Port 5 (VISENSE) <=> SWR0 Port 11 (SPKR_R_VI)
* WSA8845 Port 6 (CPS) <=> SWR0 Port 13 (CPS)
*/
qcom,port-mapping = <4 5 6 7 11 13>;
};
};
&swr1 {
status = "okay";
/* WCD9395 RX */
wcd_rx: codec@0,4 {
compatible = "sdw20217010e00";
reg = <0 4>;
/*
* WCD9395 RX Port 1 (HPH_L/R) <=> SWR1 Port 1 (HPH_L/R)
* WCD9395 RX Port 2 (CLSH) <=> SWR1 Port 2 (CLSH)
* WCD9395 RX Port 3 (COMP_L/R) <=> SWR1 Port 3 (COMP_L/R)
* WCD9395 RX Port 4 (LO) <=> SWR1 Port 4 (LO)
* WCD9395 RX Port 5 (DSD_L/R) <=> SWR1 Port 5 (DSD_L/R)
* WCD9395 RX Port 6 (HIFI_PCM_L/R) <=> SWR1 Port 9 (HIFI_PCM_L/R)
*/
qcom,rx-port-mapping = <1 2 3 4 5 9>;
};
};
&swr2 {
status = "okay";
/* WCD9395 TX */
wcd_tx: codec@0,3 {
compatible = "sdw20217010e00";
reg = <0 3>;
/*
* WCD9395 TX Port 1 (ADC1,2,3,4) <=> SWR2 Port 2 (TX SWR_INPUT 0,1,2,3)
* WCD9395 TX Port 2 (ADC3,4 & DMIC0,1) <=> SWR2 Port 2 (TX SWR_INPUT 0,1,2,3)
* WCD9395 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3 (TX SWR_INPUT 4,5,6,7)
* WCD9395 TX Port 4 (DMIC4,5,6,7) <=> SWR2 Port 4 (TX SWR_INPUT 8,9,10,11)
*/
qcom,tx-port-mapping = <2 2 3 4>;
};
};
&tlmm {
/* Reserved I/Os for NFC */
gpio-reserved-ranges = <32 8>, <74 1>;
bt_default: bt-default-state {
bt-en-pins {
pins = "gpio17";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
sw-ctrl-pins {
pins = "gpio18";
function = "gpio";
bias-pull-down;
};
};
lt9611_irq_pin: lt9611-irq-state {
pins = "gpio85";
function = "gpio";
bias-disable;
};
lt9611_rst_pin: lt9611-rst-state {
pins = "gpio28";
function = "gpio";
output-high;
};
spkr_2_sd_n_active: spkr-2-sd-n-active-state {
pins = "gpio77";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-low;
};
wcd_default: wcd-reset-n-active-state {
pins = "gpio107";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-low;
};
wlan_en: wlan-en-state {
pins = "gpio16";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
};
&uart14 {
status = "okay";
bluetooth {
compatible = "qcom,wcn7850-bt";
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddaon-supply = <&vreg_pmu_aon_0p59>;
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
max-speed = <3200000>;
};
};
&uart15 {
status = "okay";
};
&ufs_mem_hc {
reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l17b_2p5>;
vcc-max-microamp = <1300000>;
vccq-supply = <&vreg_l1c_1p2>;
vccq-max-microamp = <1200000>;
status = "okay";
};
&ufs_mem_phy {
vdda-phy-supply = <&vreg_l1d_0p88>;
vdda-pll-supply = <&vreg_l3i_1p2>;
status = "okay";
};
/*
* DPAUX -> WCD9395 -> USB_SBU -> USB-C
* eUSB2 DP/DM -> PM85550HS -> eUSB2 DP/DM -> WCD9395 -> USB-C
* USB SS -> USB-C
*/
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "otg";
usb-role-switch;
};
&usb_1_dwc3_hs {
remote-endpoint = <&pmic_glink_hs_in>;
};
&usb_1_hsphy {
vdd-supply = <&vreg_l1i_0p88>;
vdda12-supply = <&vreg_l3i_1p2>;
phys = <&pm8550b_eusb2_repeater>;
status = "okay";
};
&usb_dp_qmpphy {
vdda-phy-supply = <&vreg_l3i_1p2>;
vdda-pll-supply = <&vreg_l3g_0p91>;
status = "okay";
};
&usb_dp_qmpphy_out {
remote-endpoint = <&pmic_glink_ss_in>;
};
&xo_board {
clock-frequency = <76800000>;
};