// SPDX-License-Identifier: BSD-3-Clause
/*
 * sc7280 IDP board device tree source (common between SKU1 and SKU2)
 *
 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
 */

#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
#include <dt-bindings/input/linux-event-codes.h>
#include "sc7280.dtsi"
#include "pm7325.dtsi"
#include "pm8350c.dtsi"
#include "pmk8350.dtsi"

#include "sc7280-chrome-common.dtsi"
#include "sc7280-herobrine-lte-sku.dtsi"

/ {
	aliases {
		bluetooth0 = &bluetooth;
		serial1 = &uart7;
		wifi0 = &wifi;
	};

	max98360a: audio-codec-0 {
		compatible = "maxim,max98360a";
		pinctrl-names = "default";
		pinctrl-0 = <&amp_en>;
		sdmode-gpios = <&tlmm 63 GPIO_ACTIVE_HIGH>;
		#sound-dai-cells = <0>;
	};

	wcd9385: audio-codec-1 {
		compatible = "qcom,wcd9385-codec";
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&wcd_reset_n>;
		pinctrl-1 = <&wcd_reset_n_sleep>;

		reset-gpios = <&tlmm 83 GPIO_ACTIVE_LOW>;

		qcom,rx-device = <&wcd_rx>;
		qcom,tx-device = <&wcd_tx>;

		vdd-rxtx-supply = <&vreg_l18b_1p8>;
		vdd-io-supply = <&vreg_l18b_1p8>;
		vdd-buck-supply = <&vreg_l17b_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>;
		#sound-dai-cells = <1>;
	};

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

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

		key-volume-up {
			label = "volume_up";
			gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <KEY_VOLUMEUP>;
			wakeup-source;
			debounce-interval = <15>;
			linux,can-disable;
		};
	};

	nvme_3v3_regulator: nvme-3v3-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VLDO_3V3";

		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&nvme_pwren>;
	};

	sound: sound {
		compatible = "google,sc7280-herobrine";
		model = "sc7280-wcd938x-max98360a-1mic";

		audio-routing =
			"IN1_HPHL", "HPHL_OUT",
			"IN2_HPHR", "HPHR_OUT",
			"AMIC1", "MIC BIAS1",
			"AMIC2", "MIC BIAS2",
			"VA DMIC0", "MIC BIAS3",
			"VA DMIC1", "MIC BIAS3",
			"VA DMIC2", "MIC BIAS1",
			"VA DMIC3", "MIC BIAS1",
			"TX SWR_ADC0", "ADC1_OUTPUT",
			"TX SWR_ADC1", "ADC2_OUTPUT",
			"TX SWR_ADC2", "ADC3_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";

		#address-cells = <1>;
		#size-cells = <0>;

		dai-link@0 {
			link-name = "MAX98360A";
			reg = <0>;

			cpu {
				sound-dai = <&lpass_cpu MI2S_SECONDARY>;
			};

			codec {
				sound-dai = <&max98360a>;
			};
		};

		dai-link@1 {
			link-name = "DisplayPort";
			reg = <1>;

			cpu {
				sound-dai = <&lpass_cpu LPASS_DP_RX>;
			};

			codec {
				sound-dai = <&mdss_dp>;
			};
		};

		dai-link@2 {
			link-name = "WCD9385 Playback";
			reg = <2>;

			cpu {
				sound-dai = <&lpass_cpu LPASS_CDC_DMA_RX0>;
			};

			codec {
				sound-dai = <&wcd9385 0>, <&swr0 0>, <&lpass_rx_macro 0>;
			};
		};

		dai-link@3 {
			link-name = "WCD9385 Capture";
			reg = <3>;

			cpu {
				sound-dai = <&lpass_cpu LPASS_CDC_DMA_TX3>;
			};

			codec {
				sound-dai = <&wcd9385 1>, <&swr1 0>, <&lpass_tx_macro 0>;
			};
		};

		dai-link@4 {
			link-name = "DMIC";
			reg = <4>;

			cpu {
				sound-dai = <&lpass_cpu LPASS_CDC_DMA_VA_TX0>;
			};

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

&apps_rsc {
	regulators-0 {
		compatible = "qcom,pm7325-rpmh-regulators";
		qcom,pmic-id = "b";

		vreg_s1b_1p8: smps1 {
			regulator-min-microvolt = <1856000>;
			regulator-max-microvolt = <2040000>;
		};

		vreg_s7b_0p9: smps7 {
			regulator-min-microvolt = <535000>;
			regulator-max-microvolt = <1120000>;
		};

		vreg_s8b_1p2: smps8 {
			regulator-min-microvolt = <1256000>;
			regulator-max-microvolt = <1500000>;
		};

		vreg_l1b_0p8: ldo1 {
			regulator-min-microvolt = <825000>;
			regulator-max-microvolt = <925000>;
		};

		vreg_l2b_3p0: ldo2 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3544000>;
		};

		vreg_l6b_1p2: ldo6 {
			regulator-min-microvolt = <1140000>;
			regulator-max-microvolt = <1260000>;
		};

		vreg_l7b_2p9: ldo7 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2960000>;
		};

		vreg_l8b_0p9: ldo8 {
			regulator-min-microvolt = <870000>;
			regulator-max-microvolt = <970000>;
		};

		vreg_l9b_1p2: ldo9 {
			regulator-min-microvolt = <1080000>;
			regulator-max-microvolt = <1304000>;
		};

		vreg_l11b_1p7: ldo11 {
			regulator-min-microvolt = <1504000>;
			regulator-max-microvolt = <2000000>;
		};

		vreg_l12b_0p8: ldo12 {
			regulator-min-microvolt = <751000>;
			regulator-max-microvolt = <824000>;
		};

		vreg_l13b_0p8: ldo13 {
			regulator-min-microvolt = <530000>;
			regulator-max-microvolt = <824000>;
		};

		vreg_l14b_1p2: ldo14 {
			regulator-min-microvolt = <1080000>;
			regulator-max-microvolt = <1304000>;
		};

		vreg_l15b_0p8: ldo15 {
			regulator-min-microvolt = <765000>;
			regulator-max-microvolt = <1020000>;
		};

		vreg_l16b_1p2: ldo16 {
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1300000>;
		};

		vreg_l17b_1p8: ldo17 {
			regulator-min-microvolt = <1700000>;
			regulator-max-microvolt = <1900000>;
		};

		vreg_l18b_1p8: ldo18 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2000000>;
		};

		vreg_l19b_1p8: ldo19 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
	};

	regulators-1 {
		compatible = "qcom,pm8350c-rpmh-regulators";
		qcom,pmic-id = "c";

		vreg_s1c_2p2: smps1 {
			regulator-min-microvolt = <2190000>;
			regulator-max-microvolt = <2210000>;
		};

		vreg_s9c_1p0: smps9 {
			regulator-min-microvolt = <1010000>;
			regulator-max-microvolt = <1170000>;
		};

		vreg_l1c_1p8: ldo1 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1980000>;
		};

		vreg_l2c_1p8: ldo2 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <1980000>;
		};

		vreg_l3c_3p0: ldo3 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <3540000>;
		};

		vreg_l4c_1p8: ldo4 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <3300000>;
		};

		vreg_l5c_1p8: ldo5 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <3300000>;
		};

		vreg_l6c_2p9: ldo6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};

		vreg_l7c_3p0: ldo7 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3544000>;
		};

		vreg_l8c_1p8: ldo8 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <2000000>;
		};

		vreg_l9c_2p9: ldo9 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2960000>;
		};

		vreg_l10c_0p8: ldo10 {
			regulator-min-microvolt = <720000>;
			regulator-max-microvolt = <1050000>;
		};

		vreg_l11c_2p8: ldo11 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <3544000>;
		};

		vreg_l12c_1p8: ldo12 {
			regulator-min-microvolt = <1650000>;
			regulator-max-microvolt = <2000000>;
		};

		vreg_l13c_3p0: ldo13 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3544000>;
		};

		vreg_bob: bob {
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3960000>;
		};
	};
};

&gpi_dma0 {
	status = "okay";
};

&gpi_dma1 {
	status = "okay";
};

&lpass_cpu {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&mi2s1_data0>, <&mi2s1_sclk>, <&mi2s1_ws>;

	dai-link@1 {
		reg = <MI2S_SECONDARY>;
		qcom,playback-sd-lines = <0>;
	};

	dai-link@5 {
		reg = <LPASS_DP_RX>;
	};

	dai-link@6 {
		reg = <LPASS_CDC_DMA_RX0>;
	};

	dai-link@19 {
		reg = <LPASS_CDC_DMA_TX3>;
	};

	dai-link@25 {
		reg = <LPASS_CDC_DMA_VA_TX0>;
	};
};

&lpass_rx_macro {
	status = "okay";
};

&lpass_tx_macro {
	status = "okay";
};

&lpass_va_macro {
	status = "okay";
	vdd-micb-supply = <&vreg_bob>;
};

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

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

	pinctrl-names = "default";
	pinctrl-0 = <&pcie1_reset_n>, <&pcie1_wake_n>;
};

&pcie1_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l10c_0p8>;
	vdda-pll-supply = <&vreg_l6b_1p2>;
};

&pmk8350_vadc {
	pmk8350-die-temp@3 {
		reg = <PMK8350_ADC7_DIE_TEMP>;
		label = "pmk8350_die_temp";
		qcom,pre-scaling = <1 1>;
	};
};

&qfprom {
	vcc-supply = <&vreg_l1c_1p8>;
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&sdhc_1 {
	status = "okay";

	non-removable;
	no-sd;
	no-sdio;

	vmmc-supply = <&vreg_l7b_2p9>;
	vqmmc-supply = <&vreg_l19b_1p8>;
};

&sdhc_2 {
	status = "okay";

	pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>;
	pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>;

	vmmc-supply = <&vreg_l9c_2p9>;
	vqmmc-supply = <&vreg_l6c_2p9>;

	cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
};

&swr0 {
	status = "okay";

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

&swr1 {
	status = "okay";

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

&uart5 {
	compatible = "qcom,geni-debug-uart";
	status = "okay";
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	dr_mode = "host";
};

&usb_1_hsphy {
	status = "okay";

	vdda-pll-supply = <&vreg_l10c_0p8>;
	vdda33-supply = <&vreg_l2b_3p0>;
	vdda18-supply = <&vreg_l1c_1p8>;
	qcom,hs-rise-fall-time-bp = <0>;
	qcom,squelch-detector-bp = <(-2090)>;
	qcom,hs-disconnect-bp = <1743>;
	qcom,hs-amplitude-bp = <1780>;
	qcom,hs-crossover-voltage-microvolt = <(-31000)>;
	qcom,hs-output-impedance-micro-ohms = <2600000>;
};

&usb_1_qmpphy {
	status = "okay";

	vdda-phy-supply = <&vreg_l6b_1p2>;
	vdda-pll-supply = <&vreg_l1b_0p8>;
};

&uart7 {
	status = "okay";

	/delete-property/interrupts;
	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
				<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
	pinctrl-names = "default", "sleep";
	pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;

	bluetooth: bluetooth {
		compatible = "qcom,wcn6750-bt";
		pinctrl-names = "default";
		pinctrl-0 = <&bt_en>, <&sw_ctrl>;
		enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
		swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
		vddaon-supply = <&vreg_s7b_0p9>;
		vddbtcxmx-supply = <&vreg_s7b_0p9>;
		vddrfacmn-supply = <&vreg_s7b_0p9>;
		vddrfa0p8-supply = <&vreg_s7b_0p9>;
		vddrfa1p7-supply = <&vreg_s1b_1p8>;
		vddrfa1p2-supply = <&vreg_s8b_1p2>;
		vddrfa2p2-supply = <&vreg_s1c_2p2>;
		vddasd-supply = <&vreg_l11c_2p8>;
		max-speed = <3200000>;
	};
};

/* PINCTRL - additions to nodes defined in sc7280.dtsi */

&dp_hot_plug_det {
	bias-disable;
};

&lpass_dmic01_clk {
	drive-strength = <8>;
	bias-disable;
};

&lpass_dmic01_data {
	bias-pull-down;
};

&lpass_dmic23_clk {
	drive-strength = <8>;
	bias-disable;
};

&lpass_dmic23_data {
	bias-pull-down;
};

&lpass_rx_swr_clk {
	drive-strength = <2>;
	slew-rate = <1>;
	bias-disable;
};

&lpass_rx_swr_data {
	drive-strength = <2>;
	slew-rate = <1>;
	bias-bus-hold;
};

&lpass_tx_swr_clk {
	drive-strength = <2>;
	slew-rate = <1>;
	bias-disable;
};

&lpass_tx_swr_data {
	drive-strength = <2>;
	slew-rate = <1>;
	bias-bus-hold;
};

&mi2s1_data0 {
	drive-strength = <6>;
	bias-disable;
};

&mi2s1_sclk {
	drive-strength = <6>;
	bias-disable;
};

&mi2s1_ws {
	drive-strength = <6>;
};

&pm7325_gpios {
	key_vol_up_default: key-vol-up-state {
		pins = "gpio6";
		function = "normal";
		input-enable;
		bias-pull-up;
		power-source = <0>;
		qcom,drive-strength = <3>;
	};
};

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

&qspi_cs0 {
	bias-disable;		/* External pullup */
};

&qspi_clk {
	bias-pull-down;		/* No external pulls or external pulldown */
};

&qspi_data0 {
	bias-pull-down;		/* No external pulls or external pulldown */
};

&qspi_data1 {
	bias-pull-down;		/* No external pulls or external pulldown */
};

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

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

&qup_uart7_cts {
	/*
	 * Configure a bias-bus-hold on CTS to lower power
	 * usage when Bluetooth is turned off. Bus hold will
	 * maintain a low power state regardless of whether
	 * the Bluetooth module drives the pin in either
	 * direction or leaves the pin fully unpowered.
	 */
	bias-bus-hold;
};

&qup_uart7_rts {
	/* We'll drive RTS, so no pull */
	drive-strength = <2>;
	bias-disable;
};

&qup_uart7_tx {
	/* We'll drive TX, so no pull */
	drive-strength = <2>;
	bias-disable;
};

&qup_uart7_rx {
	/*
	 * Configure a pull-up on RX. This is needed to avoid
	 * garbage data when the TX pin of the Bluetooth module is
	 * in tri-state (module powered off or not driving the
	 * signal yet).
	 */
	bias-pull-up;
};

&sdc1_clk {
	bias-disable;
	drive-strength = <16>;
};

&sdc1_cmd {
	bias-pull-up;
	drive-strength = <10>;
};

&sdc1_data {
	bias-pull-up;
	drive-strength = <10>;
};

&sdc1_rclk {
	bias-pull-down;
};

&sdc2_clk {
	bias-disable;
	drive-strength = <16>;
};

&sdc2_cmd {
	bias-pull-up;
	drive-strength = <10>;
};

&sdc2_data {
	bias-pull-up;
	drive-strength = <10>;
};

&tlmm {
	amp_en: amp-en-state {
		pins = "gpio63";
		function = "gpio";
		bias-pull-down;
		drive-strength = <2>;
	};

	bt_en: bt-en-state {
		pins = "gpio85";
		function = "gpio";
		output-low;
		bias-disable;
	};

	nvme_pwren: nvme-pwren-state {
		function = "gpio";
	};

	pcie1_reset_n: pcie1-reset-n-state {
		pins = "gpio2";
		function = "gpio";

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

	pcie1_wake_n: pcie1-wake-n-state {
		pins = "gpio3";
		function = "gpio";

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

	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
		pins = "gpio28";
		function = "gpio";
		/*
		 * Configure a bias-bus-hold on CTS to lower power
		 * usage when Bluetooth is turned off. Bus hold will
		 * maintain a low power state regardless of whether
		 * the Bluetooth module drives the pin in either
		 * direction or leaves the pin fully unpowered.
		 */
		bias-bus-hold;
	};

	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
		pins = "gpio29";
		function = "gpio";
		/*
		 * Configure pull-down on RTS. As RTS is active low
		 * signal, pull it low to indicate the BT SoC that it
		 * can wakeup the system anytime from suspend state by
		 * pulling RX low (by sending wakeup bytes).
		 */
		bias-pull-down;
	};

	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
		pins = "gpio30";
		function = "gpio";
		/*
		 * Configure pull-up on TX when it isn't actively driven
		 * to prevent BT SoC from receiving garbage during sleep.
		 */
		bias-pull-up;
	};

	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
		pins = "gpio31";
		function = "gpio";
		/*
		 * Configure a pull-up on RX. This is needed to avoid
		 * garbage data when the TX pin of the Bluetooth module
		 * is floating which may cause spurious wakeups.
		 */
		bias-pull-up;
	};

	sd_cd: sd-cd-state {
		pins = "gpio91";
		function = "gpio";
		bias-pull-up;
	};

	sw_ctrl: sw-ctrl-state {
		pins = "gpio86";
		function = "gpio";
		bias-pull-down;
	};

	wcd_reset_n: wcd-reset-n-state {
		pins = "gpio83";
		function = "gpio";
		drive-strength = <8>;
	};

	wcd_reset_n_sleep: wcd-reset-n-sleep-state {
		pins = "gpio83";
		function = "gpio";
		drive-strength = <8>;
		bias-disable;
	};
};
