// 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/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6asm.h>
#include <dt-bindings/gpio/gpio.h>
#include "sm8250.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
#include "pm8150l.dtsi"
#include "pm8009.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. SM8250 MTP";
	compatible = "qcom,sm8250-mtp", "qcom,sm8250";
	chassis-type = "handset";

	aliases {
		serial0 = &uart12;
	};

	wcd938x: audio-codec {
		compatible = "qcom,wcd9380-codec";

		reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;

		vdd-buck-supply = <&vreg_s4a_1p8>;
		vdd-rxtx-supply = <&vreg_s4a_1p8>;
		vdd-io-supply = <&vreg_s4a_1p8>;
		vdd-mic-bias-supply = <&vreg_bob>;

		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>;

		#sound-dai-cells = <1>;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	thermal-zones {
		camera-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm8150l_adc_tm 0>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		conn-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm8150b_adc_tm 0>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		mmw-pa1-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm8150_adc_tm 2>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		mmw-pa2-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm8150l_adc_tm 2>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		skin-msm-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm8150l_adc_tm 1>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		skin-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm8150_adc_tm 1>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		xo-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm8150_adc_tm 0>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};
	};

	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>;
	};

	vreg_s6c_0p88: smpc6-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vreg_s6c_0p88";

		regulator-min-microvolt = <880000>;
		regulator-max-microvolt = <880000>;
		regulator-always-on;
		vin-supply = <&vph_pwr>;
	};
};

&adsp {
	status = "okay";
	firmware-name = "qcom/sm8250/adsp.mbn";
};

&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_s6c_0p88>;
		vdd-l2-l10-supply = <&vreg_bob>;
		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p95>;
		vdd-l6-l9-supply = <&vreg_s8c_1p3>;
		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
		vdd-l13-l16-l17-supply = <&vreg_bob>;

		vreg_s5a_1p9: smps5 {
			regulator-name = "vreg_s5a_1p9";
			regulator-min-microvolt = <1904000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s6a_0p95: smps6 {
			regulator-name = "vreg_s6a_0p95";
			regulator-min-microvolt = <920000>;
			regulator-max-microvolt = <1128000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2a_3p1: ldo2 {
			regulator-name = "vreg_l2a_3p1";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3a_0p9: ldo3 {
			regulator-name = "vreg_l3a_0p9";
			regulator-min-microvolt = <928000>;
			regulator-max-microvolt = <932000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5a_0p875: ldo5 {
			regulator-name = "vreg_l5a_0p875";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6a_1p2: ldo6 {
			regulator-name = "vreg_l6a_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7a_1p7: ldo7 {
			regulator-name = "vreg_l7a_1p7";
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9a_1p2: ldo9 {
			regulator-name = "vreg_l9a_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10a_1p8: ldo10 {
			regulator-name = "vreg_l10a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		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_ts_3p0: ldo13 {
			regulator-name = "vreg_l13a_ts_3p0";
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l14a_1p8: ldo14 {
			regulator-name = "vreg_l14a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l15a_11ad_io_1p8: ldo15 {
			regulator-name = "vreg_l15a_11ad_io_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			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_3p0: ldo17 {
			regulator-name = "vreg_l17a_3p0";
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l18a_0p9: ldo18 {
			regulator-name = "vreg_l18a_0p9";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <912000>;
			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>;

		vreg_bob: bob {
			regulator-name = "vreg_bob";
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <4000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
		};

		vreg_s8c_1p3: smps8 {
			regulator-name = "vreg_s8c_1p3";
			regulator-min-microvolt = <1352000>;
			regulator-max-microvolt = <1352000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l1c_1p8: ldo1 {
			regulator-name = "vreg_l1c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2c_1p2: ldo2 {
			regulator-name = "vreg_l2c_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3c_0p92: ldo3 {
			regulator-name = "vreg_l3c_0p92";
			regulator-min-microvolt = <920000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4c_1p7: ldo4 {
			regulator-name = "vreg_l4c_1p7";
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <2928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5c_1p8: ldo5 {
			regulator-name = "vreg_l5c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6c_2p9: ldo6 {
			regulator-name = "vreg_l6c_2p9";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7c_cam_vcm0_2p85: ldo7 {
			regulator-name = "vreg_l7c_cam_vcm0_2p85";
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <3104000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8c_1p8: ldo8 {
			regulator-name = "vreg_l8c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9c_2p9: ldo9 {
			regulator-name = "vreg_l9c_2p9";
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10c_3p0: ldo10 {
			regulator-name = "vreg_l10c_3p0";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11c_3p3: ldo11 {
			regulator-name = "vreg_l11c_3p3";
			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>;
		vdd-l7-supply = <&vreg_s4a_1p8>;

		vreg_l1f_cam_dvdd1_1p1: ldo1 {
			regulator-name = "vreg_l1f_cam_dvdd1_1p1";
			regulator-min-microvolt = <1104000>;
			regulator-max-microvolt = <1104000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2f_cam_dvdd0_1p2: ldo2 {
			regulator-name = "vreg_l2f_cam_dvdd0_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3f_cam_dvdd2_1p05: ldo3 {
			regulator-name = "vreg_l3f_cam_dvdd2_1p05";
			regulator-min-microvolt = <1056000>;
			regulator-max-microvolt = <1056000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5f_cam_avdd0_2p85: ldo5 {
			regulator-name = "vreg_l5f_cam_avdd0_2p85";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6f_cam_avdd1_2p85: ldo6 {
			regulator-name = "vreg_l6f_cam_avdd1_2p85";
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <2856000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7f_1p8: ldo7 {
			regulator-name = "vreg_l7f_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};
};

&cdsp {
	status = "okay";
	firmware-name = "qcom/sm8250/cdsp.mbn";
};

&gmu {
	status = "okay";
};

&gpu {
	status = "okay";

	zap-shader {
		memory-region = <&gpu_mem>;
		firmware-name = "qcom/sm8250/a650_zap.mbn";
	};
};

&i2c1 {
	status = "okay";
	clock-frequency = <1000000>;

	/* NQ NFC chip @28 */
};

&i2c13 {
	status = "okay";

	/* st,stmfts @ 49 */
};

&i2c15 {
	status = "okay";

	/* smb1390 @ 10 */
	/* rtc6226 @ 64 */
};

&pm8150_adc {
	channel@4c {
		reg = <ADC5_XO_THERM_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		label = "xo_therm";
	};

	channel@4d {
		reg = <ADC5_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		label = "skin_therm";
	};

	channel@4e {
		reg = <ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		label = "pa_therm1";
	};
};

&pm8150_adc_tm {
	status = "okay";

	xo-therm@0 {
		reg = <0>;
		io-channels = <&pm8150_adc ADC5_XO_THERM_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	skin-therm@1 {
		reg = <1>;
		io-channels = <&pm8150_adc ADC5_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	pa-therm1@2 {
		reg = <2>;
		io-channels = <&pm8150_adc ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};
};

&pm8150b_adc {
	channel@4f {
		reg = <ADC5_AMUX_THM3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		label = "conn_therm";
	};
};

&pm8150b_adc_tm {
	status = "okay";

	conn-therm@0 {
		reg = <0>;
		io-channels = <&pm8150b_adc ADC5_AMUX_THM3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};
};

&pm8150l_adc_tm {
	status = "okay";

	camera-flash-therm@0 {
		reg = <0>;
		io-channels = <&pm8150l_adc ADC5_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	skin-msm-therm@1 {
		reg = <1>;
		io-channels = <&pm8150l_adc ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	pa-therm2@2 {
		reg = <2>;
		io-channels = <&pm8150l_adc ADC5_AMUX_THM3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};
};

&pm8150l_adc {
	channel@4d {
		reg = <ADC5_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		label = "camera_flash_therm";
	};

	channel@4e {
		reg = <ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		label = "skin_msm_therm";
	};

	channel@4f {
		reg = <ADC5_AMUX_THM3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		label = "pa_therm2";
	};
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&qupv3_id_2 {
	status = "okay";
};

&rxmacro {
	status = "okay";
};

&slpi {
	status = "okay";
	firmware-name = "qcom/sm8250/slpi.mbn";
};

&sound {
	compatible = "qcom,sm8250-sndcard";
	model = "SM8250-MTP-WCD9380-WSA8810-VA-DMIC";
	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",
		"AMIC3", "MIC BIAS3",
		"AMIC4", "MIC BIAS3",
		"AMIC5", "MIC BIAS4",
		"TX SWR_ADC0", "ADC1_OUTPUT",
		"TX SWR_ADC1", "ADC2_OUTPUT",
		"TX SWR_ADC2", "ADC3_OUTPUT",
		"TX SWR_ADC3", "ADC4_OUTPUT",
		"TX SWR_DMIC0", "DMIC1_OUTPUT",
		"TX SWR_DMIC1", "DMIC2_OUTPUT",
		"TX SWR_DMIC2", "DMIC3_OUTPUT",
		"TX SWR_DMIC3", "DMIC4_OUTPUT",
		"TX SWR_DMIC4", "DMIC5_OUTPUT",
		"TX SWR_DMIC5", "DMIC6_OUTPUT",
		"TX SWR_DMIC6", "DMIC7_OUTPUT",
		"TX SWR_DMIC7", "DMIC8_OUTPUT";

	mm1-dai-link {
		link-name = "MultiMedia1";
		cpu {
			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
		};
	};

	mm2-dai-link {
		link-name = "MultiMedia2";
		cpu {
			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
		};
	};

	mm3-dai-link {
		link-name = "MultiMedia3";
		cpu {
			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
		};
	};

	wcd-playback-dai-link {
		link-name = "WCD Playback";
		cpu {
			sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
		};
		codec {
			sound-dai = <&wcd938x 0>, <&swr1 0>, <&rxmacro 0>;
		};
		platform {
			sound-dai = <&q6routing>;
		};
	};

	wcd-capture-dai-link {
		link-name = "WCD Capture";
		cpu {
			sound-dai = <&q6afedai TX_CODEC_DMA_TX_3>;
		};

		codec {
			sound-dai = <&wcd938x 1>, <&swr2 0>, <&txmacro 0>;
		};
		platform {
			sound-dai = <&q6routing>;
		};
	};

	wsa-dai-link {
		link-name = "WSA Playback";
		cpu {
			sound-dai = <&q6afedai WSA_CODEC_DMA_RX_0>;
		};

		codec {
			sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro 0>;
		};
		platform {
			sound-dai = <&q6routing>;
		};
	};

	va-dai-link {
		link-name = "VA Capture";
		cpu {
			sound-dai = <&q6afedai VA_CODEC_DMA_TX_0>;
		};

		platform {
			sound-dai = <&q6routing>;
		};

		codec {
			sound-dai = <&vamacro 0>;
		};
	};
};

&swr0 {
	status = "okay";

	left_spkr: speaker@0,3 {
		compatible = "sdw10217211000";
		reg = <0 3>;
		powerdown-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>;
		#thermal-sensor-cells = <0>;
		sound-name-prefix = "SpkrLeft";
		#sound-dai-cells = <0>;
	};

	right_spkr: speaker@0,4 {
		compatible = "sdw10217211000";
		reg = <0 4>;
		powerdown-gpios = <&tlmm 127 GPIO_ACTIVE_LOW>;
		#thermal-sensor-cells = <0>;
		sound-name-prefix = "SpkrRight";
		#sound-dai-cells = <0>;
	};
};

&swr1 {
	status = "okay";

	wcd_rx: wcd9380-rx@0,4 {
		compatible = "sdw20217010d00";
		reg = <0 4>;
		qcom,rx-port-mapping = <1 2 3 4 5>;
	};
};

&swr2 {
	status = "okay";

	wcd_tx: wcd9380-tx@0,3 {
		compatible = "sdw20217010d00";
		reg = <0 3>;
		qcom,tx-port-mapping = <2 3 4 5>;
	};
};

&tlmm {
	gpio-reserved-ranges = <28 4>, <40 4>;

	wcd938x_reset_default: wcd938x-reset-default-state {
		pins = "gpio32";
		function = "gpio";
		drive-strength = <16>;
		output-high;
	};

	wcd938x_reset_sleep: wcd938x-reset-sleep-state {
		pins = "gpio32";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
		output-low;
	};
};

&txmacro {
	status = "okay";
};

&uart12 {
	status = "okay";
};

&ufs_mem_hc {
	status = "okay";

	vcc-supply = <&vreg_l17a_3p0>;
	vcc-max-microamp = <750000>;
	vccq-supply = <&vreg_l6a_1p2>;
	vccq-max-microamp = <700000>;
	vccq2-supply = <&vreg_s4a_1p8>;
	vccq2-max-microamp = <750000>;
};

&ufs_mem_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l5a_0p875>;
	vdda-pll-supply = <&vreg_l9a_1p2>;
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	dr_mode = "host";
};

&usb_1_hsphy {
	status = "okay";

	vdda-pll-supply = <&vreg_l5a_0p875>;
	vdda18-supply = <&vreg_l12a_1p8>;
	vdda33-supply = <&vreg_l2a_3p1>;
};

&usb_1_qmpphy {
	status = "okay";

	vdda-phy-supply = <&vreg_l9a_1p2>;
	vdda-pll-supply = <&vreg_l18a_0p9>;
};

&usb_2 {
	status = "okay";
};

&usb_2_dwc3 {
	dr_mode = "host";
};

&usb_2_hsphy {
	status = "okay";

	vdda-pll-supply = <&vreg_l5a_0p875>;
	vdda18-supply = <&vreg_l12a_1p8>;
	vdda33-supply = <&vreg_l2a_3p1>;
};

&usb_2_qmpphy {
	status = "okay";

	vdda-phy-supply = <&vreg_l9a_1p2>;
	vdda-pll-supply = <&vreg_l18a_0p9>;
};

&venus {
	status = "okay";
};

&wsamacro {
	status = "okay";
};