// SPDX-License-Identifier: BSD-3-Clause
/*
 * Lenovo Yoga C630
 *
 * Copyright (c) 2019, Linaro Ltd.
 */

/dts-v1/;

#include <dt-bindings/gpio/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 "pm8998.dtsi"

/ {
	model = "Lenovo Yoga C630";
	compatible = "lenovo,yoga-c630", "qcom,sdm845";

	aliases {
		hsuart0 = &uart6;
	};
};

&adsp_pas {
	firmware-name = "qcom/LENOVO/81JL/qcadsp850.mbn";
	status = "okay";
};

&apps_rsc {
	pm8998-rpmh-regulators {
		compatible = "qcom,pm8998-rpmh-regulators";
		qcom,pmic-id = "a";

		vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;

		vreg_s2a_1p125: smps2 {
		};

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

		vreg_s4a_1p8: smps4 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s5a_2p04: smps5 {
			regulator-min-microvolt = <2040000>;
			regulator-max-microvolt = <2040000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s7a_1p025: smps7 {
		};

		vdd_qusb_hs0:
		vdda_hp_pcie_core:
		vdda_mipi_csi0_0p9:
		vdda_mipi_csi1_0p9:
		vdda_mipi_csi2_0p9:
		vdda_mipi_dsi0_pll:
		vdda_mipi_dsi1_pll:
		vdda_qlink_lv:
		vdda_qlink_lv_ck:
		vdda_qrefs_0p875:
		vdda_pcie_core:
		vdda_pll_cc_ebi01:
		vdda_pll_cc_ebi23:
		vdda_sp_sensor:
		vdda_ufs1_core:
		vdda_ufs2_core:
		vdda_usb1_ss_core:
		vdda_usb2_ss_core:
		vreg_l1a_0p875: ldo1 {
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vddpx_10:
		vreg_l2a_1p2: ldo2 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-always-on;
		};

		vreg_l3a_1p0: ldo3 {
		};

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

		vddpx_13:
		vreg_l6a_1p8: ldo6 {
			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_l8a_1p2: ldo8 {
		};

		vreg_l9a_1p8: ldo9 {
		};

		vreg_l10a_1p8: ldo10 {
		};

		vreg_l11a_1p0: ldo11 {
		};

		vdd_qfprom:
		vdd_qfprom_sp:
		vdda_apc1_cs_1p8:
		vdda_gfx_cs_1p8:
		vdda_qrefs_1p8:
		vdda_qusb_hs0_1p8:
		vddpx_11:
		vreg_l12a_1p8: ldo12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vddpx_2:
		vreg_l13a_2p95: ldo13 {
		};

		vreg_l14a_1p88: ldo14 {
			regulator-min-microvolt = <1880000>;
			regulator-max-microvolt = <1880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-always-on;
		};

		vreg_l15a_1p8: ldo15 {
		};

		vreg_l16a_2p7: ldo16 {
		};

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

		vreg_l18a_2p7: ldo18 {
		};

		vreg_l19a_3p0: ldo19 {
			regulator-min-microvolt = <3100000>;
			regulator-max-microvolt = <3108000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

		vreg_l21a_2p95: ldo21 {
		};

		vreg_l22a_2p85: ldo22 {
		};

		vreg_l23a_3p3: ldo23 {
		};

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

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

		vdda_hp_pcie_1p2:
		vdda_hv_ebi0:
		vdda_hv_ebi1:
		vdda_hv_ebi2:
		vdda_hv_ebi3:
		vdda_mipi_csi_1p25:
		vdda_mipi_dsi0_1p2:
		vdda_mipi_dsi1_1p2:
		vdda_pcie_1p2:
		vdda_ufs1_1p2:
		vdda_ufs2_1p2:
		vdda_usb1_ss_1p2:
		vdda_usb2_ss_1p2:
		vreg_l26a_1p2: ldo26 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1208000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l28a_3p0: ldo28 {
		};

		vreg_lvs1a_1p8: lvs1 {
		};

		vreg_lvs2a_1p8: lvs2 {
		};
	};
};

&apps_smmu {
	/* TODO: Figure out how to survive booting with this enabled */
	status = "disabled";
};

&cdsp_pas {
	firmware-name = "qcom/LENOVO/81JL/qccdsp850.mbn";
	status = "okay";
};

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

&gpu {
	zap-shader {
		memory-region = <&gpu_mem>;
		firmware-name = "qcom/LENOVO/81JL/qcdxkmsuc850.mbn";
	};
};

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

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

	hid@15 {
		compatible = "hid-over-i2c";
		reg = <0x15>;
		hid-descr-addr = <0x1>;

		interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
	};

	hid@2c {
		compatible = "hid-over-i2c";
		reg = <0x2c>;
		hid-descr-addr = <0x20>;

		interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;

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

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

	hid@10 {
		compatible = "hid-over-i2c";
		reg = <0x10>;
		hid-descr-addr = <0x1>;

		interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;

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

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

	hid@5c {
		compatible = "hid-over-i2c";
		reg = <0x5c>;
		hid-descr-addr = <0x1>;

		interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>;

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

&mss_pil {
	firmware-name = "qcom/LENOVO/81JL/qcdsp1v2850.mbn", "qcom/LENOVO/81JL/qcdsp2850.mbn";
};

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

&qup_uart6_default {
	pinmux {
		 pins = "gpio45", "gpio46", "gpio47", "gpio48";
		 function = "qup6";
	};

	cts {
		pins = "gpio45";
		bias-pull-down;
	};

	rts-tx {
		pins = "gpio46", "gpio47";
		drive-strength = <2>;
		bias-disable;
	};

	rx {
		pins = "gpio48";
		bias-pull-up;
	};
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

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

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

&sound {
	compatible = "qcom,db845c-sndcard";
	model = "Lenovo-YOGA-C630-13Q50";

	audio-routing =
		"RX_BIAS", "MCLK",
		"AMIC2", "MIC BIAS2",
		"SpkrLeft IN", "SPK1 OUT",
		"SpkrRight IN", "SPK2 OUT",
		"MM_DL1",  "MultiMedia1 Playback",
		"MultiMedia2 Capture", "MM_UL2";

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

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

&tlmm {
	gpio-reserved-ranges = <0 4>, <81 4>;

	i2c2_hid_active: i2c2-hid-active {
		pins = <37>;
		function = "gpio";

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

	i2c6_hid_active: i2c6-hid-active {
		pins = <125>;
		function = "gpio";

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

	i2c12_hid_active: i2c12-hid-active {
		pins = <92>;
		function = "gpio";

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

	wcd_intr_default: wcd_intr_default {
		pins = <54>;
		function = "gpio";

		input-enable;
		bias-pull-down;
		drive-strength = <2>;
	};
};

&uart6 {
	status = "okay";

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

&ufs_mem_hc {
	status = "okay";

	reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;

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

&ufs_mem_phy {
	status = "okay";

	vdda-phy-supply = <&vdda_ufs1_core>;
	vdda-pll-supply = <&vdda_ufs1_1p2>;
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	dr_mode = "host";
};

&usb_1_hsphy {
	status = "okay";

	vdd-supply = <&vdda_usb1_ss_core>;
	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;

	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 = <&vdda_usb1_ss_1p2>;
	vdda-pll-supply = <&vdda_usb1_ss_core>;
};

&usb_2 {
	status = "okay";
};

&usb_2_dwc3 {
	dr_mode = "host";
};

&usb_2_hsphy {
	status = "okay";

	vdd-supply = <&vdda_usb2_ss_core>;
	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;

	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 = <&vdda_usb2_ss_1p2>;
	vdda-pll-supply = <&vdda_usb2_ss_core>;
};

&wcd9340{
	pinctrl-0 = <&wcd_intr_default>;
	pinctrl-names = "default";
	clock-names = "extclk";
	clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
	reset-gpios = <&tlmm 64 0>;
	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: swm@c85 {
		left_spkr: wsa8810-left{
			compatible = "sdw10217211000";
			reg = <0 3>;
			powerdown-gpios = <&wcdgpio 2 GPIO_ACTIVE_HIGH>;
			#thermal-sensor-cells = <0>;
			sound-name-prefix = "SpkrLeft";
			#sound-dai-cells = <0>;
		};

		right_spkr: wsa8810-right{
			compatible = "sdw10217211000";
			powerdown-gpios = <&wcdgpio 3 GPIO_ACTIVE_HIGH>;
			reg = <0 4>;
			#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;
};
