// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2019, Linaro Ltd.
 */

/dts-v1/;

#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6asm.h>
#include "sdm845.dtsi"
#include "sdm845-wcd9340.dtsi"
#include "pm8998.dtsi"
#include "pmi8998.dtsi"

/ {
	model = "Thundercomm Dragonboard 845c";
	compatible = "thundercomm,db845c", "qcom,sdm845";
	qcom,msm-id = <341 0x20001>;
	qcom,board-id = <8 0>;

	aliases {
		serial0 = &uart9;
		serial1 = &uart6;
	};

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

	/* Fixed crystal oscillator dedicated to MCP2517FD */
	clk40M: can-clock {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <40000000>;
	};

	dc12v: dc12v-regulator {
		compatible = "regulator-fixed";
		regulator-name = "DC12V";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		regulator-always-on;
	};

	gpio-keys {
		compatible = "gpio-keys";
		autorepeat;

		pinctrl-names = "default";
		pinctrl-0 = <&vol_up_pin_a>;

		key-vol-up {
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
		};
	};

	leds {
		compatible = "gpio-leds";

		led-0 {
			label = "green:user4";
			function = LED_FUNCTION_INDICATOR;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&pm8998_gpios 13 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			panic-indicator;
		};

		led-1 {
			label = "yellow:wlan";
			function = LED_FUNCTION_WLAN;
			color = <LED_COLOR_ID_YELLOW>;
			gpios = <&pm8998_gpios 9 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "phy0tx";
			default-state = "off";
		};

		led-2 {
			label = "blue:bt";
			function = LED_FUNCTION_BLUETOOTH;
			color = <LED_COLOR_ID_BLUE>;
			gpios = <&pm8998_gpios 5 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "bluetooth-power";
			default-state = "off";
		};
	};

	hdmi-out {
		compatible = "hdmi-connector";
		type = "a";

		port {
			hdmi_con: endpoint {
				remote-endpoint = <&lt9611_out>;
			};
		};
	};

	reserved-memory {
		/* Cont splash region set up by the bootloader */
		cont_splash_mem: framebuffer@9d400000 {
			reg = <0x0 0x9d400000 0x0 0x2400000>;
			no-map;
		};
	};

	lt9611_1v8: lt9611-vdd18-regulator {
		compatible = "regulator-fixed";
		regulator-name = "LT9611_1V8";

		vin-supply = <&vdc_5v>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	lt9611_3v3: lt9611-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "LT9611_3V3";

		vin-supply = <&vdc_3v3>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		/*
		 * TODO: make it possible to drive same GPIO from two clients
		 * gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>;
		 * enable-active-high;
		 */
	};

	pcie0_1p05v: pcie-0-1p05v-regulator {
		compatible = "regulator-fixed";
		regulator-name = "PCIE0_1.05V";

		vin-supply = <&vbat>;
		regulator-min-microvolt = <1050000>;
		regulator-max-microvolt = <1050000>;

		/*
		 * TODO: make it possible to drive same GPIO from two clients
		 * gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>;
		 * enable-active-high;
		 */
	};

	cam0_dvdd_1v2: cam0-dvdd-1v2-regulator {
		compatible = "regulator-fixed";
		regulator-name = "CAM0_DVDD_1V2";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
		enable-active-high;
		gpio = <&pm8998_gpios 12 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam0_dvdd_1v2_en_default>;
		vin-supply = <&vbat>;
	};

	cam0_avdd_2v8: cam0-avdd-2v8-regulator {
		compatible = "regulator-fixed";
		regulator-name = "CAM0_AVDD_2V8";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		enable-active-high;
		gpio = <&pm8998_gpios 10 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam0_avdd_2v8_en_default>;
		vin-supply = <&vbat>;
	};

	/* This regulator is enabled when the VREG_LVS1A_1P8 trace is enabled */
	cam3_avdd_2v8: cam3-avdd-2v8-regulator {
		compatible = "regulator-fixed";
		regulator-name = "CAM3_AVDD_2V8";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		regulator-always-on;
		vin-supply = <&vbat>;
	};

	pcie0_3p3v_dual: vldo-3v3-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VLDO_3V3";

		vin-supply = <&vbat>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>;
		enable-active-high;

		pinctrl-names = "default";
		pinctrl-0 = <&pcie0_pwren_state>;
	};

	v5p0_hdmiout: v5p0-hdmiout-regulator {
		compatible = "regulator-fixed";
		regulator-name = "V5P0_HDMIOUT";

		vin-supply = <&vdc_5v>;
		regulator-min-microvolt = <500000>;
		regulator-max-microvolt = <500000>;

		/*
		 * TODO: make it possible to drive same GPIO from two clients
		 * gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>;
		 * enable-active-high;
		 */
	};

	vbat: vbat-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VBAT";

		vin-supply = <&dc12v>;
		regulator-min-microvolt = <4200000>;
		regulator-max-microvolt = <4200000>;
		regulator-always-on;
	};

	vbat_som: vbat-som-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VBAT_SOM";

		vin-supply = <&dc12v>;
		regulator-min-microvolt = <4200000>;
		regulator-max-microvolt = <4200000>;
		regulator-always-on;
	};

	vdc_3v3: vdc-3v3-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VDC_3V3";
		vin-supply = <&dc12v>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	vdc_5v: vdc-5v-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VDC_5V";

		vin-supply = <&dc12v>;
		regulator-min-microvolt = <500000>;
		regulator-max-microvolt = <500000>;
		regulator-always-on;
	};

	vreg_s4a_1p8: vreg-s4a-1p8 {
		compatible = "regulator-fixed";
		regulator-name = "vreg_s4a_1p8";

		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";

		vin-supply = <&vbat_som>;
	};
};

&adsp_pas {
	status = "okay";

	firmware-name = "qcom/sdm845/adsp.mbn";
};

&apps_rsc {
	regulators-0 {
		compatible = "qcom,pm8998-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-s11-supply = <&vph_pwr>;
		vdd-s12-supply = <&vph_pwr>;
		vdd-s13-supply = <&vph_pwr>;
		vdd-l1-l27-supply = <&vreg_s7a_1p025>;
		vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
		vdd-l3-l11-supply = <&vreg_s7a_1p025>;
		vdd-l4-l5-supply = <&vreg_s7a_1p025>;
		vdd-l6-supply = <&vph_pwr>;
		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
		vdd-l9-supply = <&vreg_bob>;
		vdd-l10-l23-l25-supply = <&vreg_bob>;
		vdd-l13-l19-l21-supply = <&vreg_bob>;
		vdd-l16-l28-supply = <&vreg_bob>;
		vdd-l18-l22-supply = <&vreg_bob>;
		vdd-l20-l24-supply = <&vreg_bob>;
		vdd-l26-supply = <&vreg_s3a_1p35>;
		vin-lvs-1-2-supply = <&vreg_s4a_1p8>;

		vreg_s3a_1p35: smps3 {
			regulator-min-microvolt = <1352000>;
			regulator-max-microvolt = <1352000>;
		};

		vreg_s5a_2p04: smps5 {
			regulator-min-microvolt = <1904000>;
			regulator-max-microvolt = <2040000>;
		};

		vreg_s7a_1p025: smps7 {
			regulator-min-microvolt = <900000>;
			regulator-max-microvolt = <1028000>;
		};

		vreg_l1a_0p875: ldo1 {
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5a_0p8: ldo5 {
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l12a_1p8: ldo12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			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>;
		};

		vreg_l13a_2p95: ldo13 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l17a_1p3: ldo17 {
			regulator-min-microvolt = <1304000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l20a_2p95: ldo20 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2968000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l21a_2p95: ldo21 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2968000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l24a_3p075: ldo24 {
			regulator-min-microvolt = <3088000>;
			regulator-max-microvolt = <3088000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l25a_3p3: ldo25 {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3312000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l26a_1p2: ldo26 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_lvs1a_1p8: lvs1 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-always-on;
		};

		vreg_lvs2a_1p8: lvs2 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-always-on;
		};
	};

	regulators-1 {
		compatible = "qcom,pmi8998-rpmh-regulators";
		qcom,pmic-id = "b";

		vdd-bob-supply = <&vph_pwr>;

		vreg_bob: bob {
			regulator-min-microvolt = <3312000>;
			regulator-max-microvolt = <3600000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
			regulator-allow-bypass;
		};
	};
};

&camss {
	status = "okay";

	vdda-phy-supply = <&vreg_l1a_0p875>;
	vdda-pll-supply = <&vreg_l26a_1p2>;
};

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

&gcc {
	protected-clocks = <GCC_QSPI_CORE_CLK>,
			   <GCC_QSPI_CORE_CLK_SRC>,
			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
			   <GCC_LPASS_Q6_AXI_CLK>,
			   <GCC_LPASS_SWAY_CLK>;
};

&gmu {
	status = "okay";
};

&gpi_dma0 {
	status = "okay";
};

&gpi_dma1 {
	status = "okay";
};

&gpu {
	status = "okay";
	zap-shader {
		memory-region = <&gpu_mem>;
		firmware-name = "qcom/sdm845/a630_zap.mbn";
	};
};

&i2c10 {
	status = "okay";
	clock-frequency = <400000>;

	lt9611_codec: hdmi-bridge@3b {
		compatible = "lontium,lt9611";
		reg = <0x3b>;
		#sound-dai-cells = <1>;

		interrupts-extended = <&tlmm 84 IRQ_TYPE_EDGE_FALLING>;

		reset-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;

		vdd-supply = <&lt9611_1v8>;
		vcc-supply = <&lt9611_3v3>;

		pinctrl-names = "default";
		pinctrl-0 = <&lt9611_irq_pin>, <&dsi_sw_sel>;

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

&i2c11 {
	/* On Low speed expansion */
	clock-frequency = <100000>;
	status = "okay";
};

&i2c14 {
	/* On Low speed expansion */
	clock-frequency = <100000>;
	status = "okay";
};

&mdss {
	memory-region = <&cont_splash_mem>;
	status = "okay";
};

&mdss_dsi0 {
	status = "okay";
	vdda-supply = <&vreg_l26a_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_l1a_0p875>;
};

&mdss_dsi1 {
	vdda-supply = <&vreg_l26a_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_l1a_0p875>;
	status = "okay";
};

&mss_pil {
	status = "okay";
	firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mbn";
};

&pcie0 {
	status = "okay";
	perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
	enable-gpio = <&tlmm 134 GPIO_ACTIVE_HIGH>;

	vddpe-3v3-supply = <&pcie0_3p3v_dual>;

	pinctrl-names = "default";
	pinctrl-0 = <&pcie0_default_state>;
};

&pcie0_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l1a_0p875>;
	vdda-pll-supply = <&vreg_l26a_1p2>;
};

&pcie1 {
	status = "okay";
	perst-gpios = <&tlmm 102 GPIO_ACTIVE_LOW>;

	pinctrl-names = "default";
	pinctrl-0 = <&pcie1_default_state>;
};

&pcie1_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l1a_0p875>;
	vdda-pll-supply = <&vreg_l26a_1p2>;
};

&pm8998_gpios {
	gpio-line-names =
		"NC",
		"NC",
		"WLAN_SW_CTRL",
		"NC",
		"PM_GPIO5_BLUE_BT_LED",
		"VOL_UP_N",
		"NC",
		"ADC_IN1",
		"PM_GPIO9_YEL_WIFI_LED",
		"CAM0_AVDD_EN",
		"NC",
		"CAM0_DVDD_EN",
		"PM_GPIO13_GREEN_U4_LED",
		"DIV_CLK2",
		"NC",
		"NC",
		"NC",
		"SMB_STAT",
		"NC",
		"NC",
		"ADC_IN2",
		"OPTION1",
		"WCSS_PWR_REQ",
		"PM845_GPIO24",
		"OPTION2",
		"PM845_SLB";

	cam0_dvdd_1v2_en_default: cam0-dvdd-1v2-en-state {
		pins = "gpio12";
		function = "normal";

		bias-pull-up;
		drive-push-pull;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
	};

	cam0_avdd_2v8_en_default: cam0-avdd-2v8-en-state {
		pins = "gpio10";
		function = "normal";

		bias-pull-up;
		drive-push-pull;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
	};

	vol_up_pin_a: vol-up-active-state {
		pins = "gpio6";
		function = "normal";
		input-enable;
		bias-pull-up;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
	};
};

&pm8998_resin {
	linux,code = <KEY_VOLUMEDOWN>;
	status = "okay";
};

&pmi8998_lpg {
	status = "okay";

	qcom,power-source = <1>;

	led@3 {
		reg = <3>;
		color = <LED_COLOR_ID_GREEN>;
		function = LED_FUNCTION_HEARTBEAT;
		function-enumerator = <3>;

		linux,default-trigger = "heartbeat";
		default-state = "on";
	};

	led@4 {
		reg = <4>;
		color = <LED_COLOR_ID_GREEN>;
		function = LED_FUNCTION_INDICATOR;
		function-enumerator = <2>;
	};

	led@5 {
		reg = <5>;
		color = <LED_COLOR_ID_GREEN>;
		function = LED_FUNCTION_INDICATOR;
		function-enumerator = <1>;
	};
};

/* QUAT I2S Uses 4 I2S SD Lines for audio on LT9611 HDMI Bridge */
&q6afedai {
	dai@22 {
		reg = <QUATERNARY_MI2S_RX>;
		qcom,sd-lines = <0 1 2 3>;
	};
};

&q6asmdai {
	dai@0 {
		reg = <0>;
	};

	dai@1 {
		reg = <1>;
	};

	dai@2 {
		reg = <2>;
	};

	dai@3 {
		reg = <3>;
		direction = <2>;
		is-compress-dai;
	};
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&sdhc_2 {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;

	vmmc-supply = <&vreg_l21a_2p95>;
	vqmmc-supply = <&vreg_l13a_2p95>;

	bus-width = <4>;
	cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
};

&sound {
	compatible = "qcom,db845c-sndcard", "qcom,sdm845-sndcard";
	pinctrl-0 = <&quat_mi2s_active
			 &quat_mi2s_sd0_active
			 &quat_mi2s_sd1_active
			 &quat_mi2s_sd2_active
			 &quat_mi2s_sd3_active>;
	pinctrl-names = "default";
	model = "DB845c";
	audio-routing =
		"RX_BIAS", "MCLK",
		"AMIC1", "MIC BIAS1",
		"AMIC2", "MIC BIAS2",
		"DMIC0", "MIC BIAS1",
		"DMIC1", "MIC BIAS1",
		"DMIC2", "MIC BIAS3",
		"DMIC3", "MIC BIAS3",
		"SpkrLeft IN", "SPK1 OUT",
		"SpkrRight IN", "SPK2 OUT",
		"MM_DL1",  "MultiMedia1 Playback",
		"MM_DL2",  "MultiMedia2 Playback",
		"MM_DL4",  "MultiMedia4 Playback",
		"MultiMedia3 Capture", "MM_UL3";

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

	mm4-dai-link {
		link-name = "MultiMedia4";
		cpu {
			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA4>;
		};
	};

	hdmi-dai-link {
		link-name = "HDMI Playback";
		cpu {
			sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
		};

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

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

	slim-dai-link {
		link-name = "SLIM Playback";
		cpu {
			sound-dai = <&q6afedai SLIMBUS_0_RX>;
		};

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

		codec {
			sound-dai = <&left_spkr>, <&right_spkr>, <&swm 0>, <&wcd9340 0>;
		};
	};

	slimcap-dai-link {
		link-name = "SLIM Capture";
		cpu {
			sound-dai = <&q6afedai SLIMBUS_0_TX>;
		};

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

		codec {
			sound-dai = <&wcd9340 1>;
		};
	};
};

&spi0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&qup_spi0_default>;
	cs-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;

	can@0 {
		compatible = "microchip,mcp2517fd";
		reg = <0>;
		clocks = <&clk40M>;
		interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
		spi-max-frequency = <10000000>;
		vdd-supply = <&vdc_5v>;
		xceiver-supply = <&vdc_5v>;
	};
};

&spi2 {
	/* On Low speed expansion */
	status = "okay";
};

&tlmm {
	cam0_default: cam0-default-state {
		rst-pins {
			pins = "gpio9";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
		};

		mclk0-pins {
			pins = "gpio13";
			function = "cam_mclk";

			drive-strength = <16>;
			bias-disable;
		};
	};

	cam3_default: cam3-default-state {
		rst-pins {
			function = "gpio";
			pins = "gpio21";

			drive-strength = <16>;
			bias-disable;
		};

		mclk3-pins {
			function = "cam_mclk";
			pins = "gpio16";

			drive-strength = <16>;
			bias-disable;
		};
	};

	dsi_sw_sel: dsi-sw-sel-state {
		pins = "gpio120";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
		output-high;
	};

	lt9611_irq_pin: lt9611-irq-state {
		pins = "gpio84";
		function = "gpio";
		bias-disable;
	};

	pcie0_default_state: pcie0-default-state {
		clkreq-pins {
			pins = "gpio36";
			function = "pci_e0";
			bias-pull-up;
		};

		reset-n-pins {
			pins = "gpio35";
			function = "gpio";

			drive-strength = <2>;
			output-low;
			bias-pull-down;
		};

		wake-n-pins {
			pins = "gpio37";
			function = "gpio";

			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie0_pwren_state: pcie0-pwren-state {
		pins = "gpio90";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	pcie1_default_state: pcie1-default-state {
		perst-n-pins {
			pins = "gpio102";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
		};

		clkreq-pins {
			pins = "gpio103";
			function = "pci_e1";
			bias-pull-up;
		};

		wake-n-pins {
			pins = "gpio11";
			function = "gpio";

			drive-strength = <2>;
			bias-pull-up;
		};

		reset-n-pins {
			pins = "gpio75";
			function = "gpio";

			drive-strength = <16>;
			bias-pull-up;
			output-high;
		};
	};

	sdc2_default_state: sdc2-default-state {
		clk-pins {
			pins = "sdc2_clk";
			bias-disable;

			/*
			 * It seems that mmc_test reports errors if drive
			 * strength is not 16 on clk, cmd, and data pins.
			 */
			drive-strength = <16>;
		};

		cmd-pins {
			pins = "sdc2_cmd";
			bias-pull-up;
			drive-strength = <10>;
		};

		data-pins {
			pins = "sdc2_data";
			bias-pull-up;
			drive-strength = <10>;
		};
	};

	sdc2_card_det_n: sd-card-det-n-state {
		pins = "gpio126";
		function = "gpio";
		bias-pull-up;
	};
};

&uart3 {
	label = "LS-UART0";
	pinctrl-0 = <&qup_uart3_4pin>;

	status = "disabled";
};

&uart6 {
	status = "okay";

	pinctrl-0 = <&qup_uart6_4pin>;

	bluetooth {
		compatible = "qcom,wcn3990-bt";

		vddio-supply = <&vreg_s4a_1p8>;
		vddxo-supply = <&vreg_l7a_1p8>;
		vddrf-supply = <&vreg_l17a_1p3>;
		vddch0-supply = <&vreg_l25a_3p3>;
		max-speed = <3200000>;
	};
};

&uart9 {
	label = "LS-UART1";
	status = "okay";
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	dr_mode = "peripheral";
};

&usb_1_hsphy {
	status = "okay";

	vdd-supply = <&vreg_l1a_0p875>;
	vdda-pll-supply = <&vreg_l12a_1p8>;
	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;

	qcom,imp-res-offset-value = <8>;
	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
};

&usb_1_qmpphy {
	status = "okay";

	vdda-phy-supply = <&vreg_l26a_1p2>;
	vdda-pll-supply = <&vreg_l1a_0p875>;
};

&usb_2 {
	status = "okay";
};

&usb_2_dwc3 {
	dr_mode = "host";
};

&usb_2_hsphy {
	status = "okay";

	vdd-supply = <&vreg_l1a_0p875>;
	vdda-pll-supply = <&vreg_l12a_1p8>;
	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;

	qcom,imp-res-offset-value = <8>;
	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
};

&usb_2_qmpphy {
	status = "okay";

	vdda-phy-supply = <&vreg_l26a_1p2>;
	vdda-pll-supply = <&vreg_l1a_0p875>;
};

&ufs_mem_hc {
	status = "okay";

	reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;

	vcc-supply = <&vreg_l20a_2p95>;
	vcc-max-microamp = <800000>;
};

&ufs_mem_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l1a_0p875>;
	vdda-pll-supply = <&vreg_l26a_1p2>;
};

&venus {
	status = "okay";
};

&wcd9340 {
	reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
	vdd-buck-supply = <&vreg_s4a_1p8>;
	vdd-buck-sido-supply = <&vreg_s4a_1p8>;
	vdd-tx-supply = <&vreg_s4a_1p8>;
	vdd-rx-supply = <&vreg_s4a_1p8>;
	vdd-io-supply = <&vreg_s4a_1p8>;

	swm: soundwire@c85 {
		left_spkr: speaker@0,1 {
			compatible = "sdw10217201000";
			reg = <0 1>;
			powerdown-gpios = <&wcdgpio 1 GPIO_ACTIVE_HIGH>;
			#thermal-sensor-cells = <0>;
			sound-name-prefix = "SpkrLeft";
			#sound-dai-cells = <0>;
		};

		right_spkr: speaker@0,2 {
			compatible = "sdw10217201000";
			powerdown-gpios = <&wcdgpio 1 GPIO_ACTIVE_HIGH>;
			reg = <0 2>;
			#thermal-sensor-cells = <0>;
			sound-name-prefix = "SpkrRight";
			#sound-dai-cells = <0>;
		};
	};
};

&wifi {
	status = "okay";

	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;

	qcom,snoc-host-cap-8bit-quirk;
	qcom,ath10k-calibration-variant = "Thundercomm_DB845C";
};

/* PINCTRL - additions to nodes defined in sdm845.dtsi */
&qup_spi2_default {
	drive-strength = <16>;
};

&qup_i2c10_default {
	drive-strength = <2>;
	bias-disable;
};

&qup_uart9_rx {
	drive-strength = <2>;
	bias-pull-up;
};

&qup_uart9_tx {
	drive-strength = <2>;
	bias-disable;
};

/* PINCTRL - additions to nodes defined in sdm845.dtsi */
&qup_spi0_default {
	drive-strength = <6>;
	bias-disable;
};
