Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
170998 views
// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>

#include "hamoa.dtsi"
#include "hamoa-pmics.dtsi"

/ {
	model = "Lenovo IdeaCentre Mini 01Q8X10";
	compatible = "lenovo,ideacentre-mini-01q8x10", "qcom,x1e80100";
	chassis-type = "desktop";

	aliases {
		serial0 = &uart14;
	};

	wcd938x: audio-codec {
		compatible = "qcom,wcd9385-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 191 GPIO_ACTIVE_LOW>;
		mux-controls = <&us_euro_mux_ctrl>;

		vdd-buck-supply = <&vreg_l15b>;
		vdd-rxtx-supply = <&vreg_l15b>;
		vdd-io-supply = <&vreg_l15b>;
		vdd-mic-bias-supply = <&vreg_bob1>;

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

	dp-connector {
		compatible = "dp-connector";
		type = "full-size";

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

		port {
			dp_port_in: endpoint {
				remote-endpoint = <&usb_1_ss1_qmpphy_out_dp>;
			};
		};
	};

	hdmi-bridge {
		compatible = "parade,ps185hdm";

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

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

			port@0 {
				reg = <0>;

				hdmi_bridge_in: endpoint {
					remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
				};
			};

			port@1 {
				reg = <1>;

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

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

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

	us_euro_mux_ctrl: mux-controller {
		compatible = "gpio-mux";
		pinctrl-0 = <&us_euro_hs_sel>;
		pinctrl-names = "default";
		mux-supply = <&vreg_l16b>;
		#mux-control-cells = <0>;
		mux-gpios = <&tlmm 68 GPIO_ACTIVE_HIGH>;
	};

	pmic-glink {
		compatible = "qcom,x1e80100-pmic-glink",
			     "qcom,sm8550-pmic-glink",
			     "qcom,pmic-glink";
		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;

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

		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_port0_hs_in: endpoint {
						remote-endpoint = <&usb_1_ss0_dwc3_hs>;
					};
				};

				port@1 {
					reg = <1>;

					pmic_glink_port0_ss_in: endpoint {
						remote-endpoint = <&usb0_retimer_out>;
					};
				};

				port@2 {
					reg = <2>;

					pmic_glink_port0_sbu_in: endpoint {
						remote-endpoint = <&usb0_retimer_sbu_out>;
					};
				};
			};
		};
	};

	vreg_nvme1_3p3: regulator-nvme1-3p3 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_NVME1_3P3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

		regulator-boot-on;
	};

	vreg_nvme2_3p3: regulator-nvme2-3p3 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_NVME2_3P3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

		regulator-boot-on;
	};

	vreg_v0p9: regulator-v0p9 {
		compatible = "regulator-fixed";

		regulator-name = "V0P9";
		regulator-min-microvolt = <906000>;
		regulator-max-microvolt = <906000>;

		gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

		regulator-boot-on;
	};

	vreg_vdd1v8: regulator-vdd1v8 {
		compatible = "regulator-fixed";

		regulator-name = "VDD1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		vin-supply = <&vreg_l15b>;

		gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

		regulator-boot-on;
	};

	vreg_vdd33_rtmr: regulator-vdd33-rtmr {
		compatible = "regulator-fixed";

		regulator-name = "VDD33_RTMR";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

		regulator-boot-on;
	};

	vreg_wcn_0p95: regulator-wcn-0p95 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_WCN_0P95";
		regulator-min-microvolt = <950000>;
		regulator-max-microvolt = <950000>;

		vin-supply = <&vreg_wifi_3v3>;
	};

	vreg_wifi_3v3: regulator-wcn-3p3 {
		compatible = "regulator-fixed";

		regulator-name = "WIFI_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

	vreg_wifi_1v8: regulator-wifi-1v8 {
		compatible = "regulator-fixed";

		regulator-name = "WIFI_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		vin-supply = <&vreg_l15b>;
	};

	reserved-memory {
		linux,cma {
			compatible = "shared-dma-pool";
			size = <0x0 0x8000000>;
			reusable;
			linux,cma-default;
		};
	};

	sound {
		compatible = "qcom,x1e80100-sndcard";
		model = "X1E80100-LENOVO-IdeaCentre-Mini";
		audio-routing = "IN1_HPHL", "HPHL_OUT",
				"IN2_HPHR", "HPHR_OUT",
				"AMIC2", "MIC BIAS2",
				"TX SWR_INPUT1", "ADC2_OUTPUT";

		wcd-playback-dai-link {
			link-name = "WCD Playback";

			cpu {
				sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
			};

			codec {
				sound-dai = <&wcd938x 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 = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
			};

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

		displayport-0-dai-link {
			link-name = "DisplayPort0 Playback";

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

			cpu {
				sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
			};

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

		displayport-1-dai-link {
			link-name = "DisplayPort1 Playback";

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

			cpu {
				sound-dai = <&q6apmbedai DISPLAY_PORT_RX_1>;
			};

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

		displayport-2-dai-link {
			link-name = "DisplayPort2 Playback";

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

			cpu {
				sound-dai = <&q6apmbedai DISPLAY_PORT_RX_2>;
			};

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

	wcn7850-pmu {
		compatible = "qcom,wcn7850-pmu";

		vdd-supply = <&vreg_wcn_0p95>;
		vddio-supply = <&vreg_l15b>;
		vddaon-supply = <&vreg_wcn_0p95>;
		vdddig-supply = <&vreg_wcn_0p95>;
		vddrfa1p2-supply = <&vreg_wifi_1v8>;
		vddrfa1p8-supply = <&vreg_wifi_1v8>;

		wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
		bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;

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

		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";
		qcom,pmic-id = "b";

		vreg_bob1: bob1 {
			regulator-name = "vreg_bob1";
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

		vreg_l4b: ldo4 {
			regulator-name = "VREG_L4B";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l13b: ldo13 {
			regulator-name = "VREG_L13B";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l15b: ldo15 {
			regulator-name = "VREG_L15B";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-always-on;
		};

		vreg_l16b: ldo16 {
			regulator-name = "VREG_L16B";
			regulator-min-microvolt = <2504000>;
			regulator-max-microvolt = <2504000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

	};

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

		vreg_l3c: ldo3 {
			regulator-name = "VREG_L3C";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <912000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-2 {
		compatible = "qcom,pmc8380-rpmh-regulators";
		qcom,pmic-id = "d";

		vreg_l1d: ldo1 {
			regulator-name = "VREG_L1D";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2d: ldo2 {
			regulator-name = "VREG_L2D";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <912000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3d: ldo3 {
			regulator-name = "VREG_L3D";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-3 {
		compatible = "qcom,pmc8380-rpmh-regulators";
		qcom,pmic-id = "e";

		vreg_l2e: ldo2 {
			regulator-name = "VREG_L2E";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3e: ldo3 {
			regulator-name = "VREG_L3E";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-4 {
		compatible = "qcom,pm8550ve-rpmh-regulators";
		qcom,pmic-id = "i";

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

	regulators-5 {
		compatible = "qcom,pm8550ve-rpmh-regulators";
		qcom,pmic-id = "j";

		vreg_l1j: ldo1 {
			regulator-name = "VREG_L1J";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <912000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2j: ldo2 {
			regulator-name = "VREG_L2J";
			regulator-min-microvolt = <1256000>;
			regulator-max-microvolt = <1256000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3j: ldo3 {
			regulator-name = "VREG_L3J";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};
};

&i2c3 {
	clock-frequency = <400000>;

	status = "okay";

	typec-mux@8 {
		compatible = "parade,ps8833", "parade,ps8830";
		reg = <0x08>;

		clocks = <&rpmhcc RPMH_RF_CLK3>;

		vdd-supply = <&vreg_v0p9>;
		vdd33-supply = <&vreg_vdd33_rtmr>;
		vdd33-cap-supply = <&vreg_vdd33_rtmr>;
		vddar-supply = <&vreg_v0p9>;
		vddat-supply = <&vreg_v0p9>;
		vddio-supply = <&vreg_vdd1v8>;

		reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;

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

		retimer-switch;
		orientation-switch;

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

			port@0 {
				reg = <0>;

				usb0_retimer_out: endpoint {
					remote-endpoint = <&pmic_glink_port0_ss_in>;
				};
			};

			port@1 {
				reg = <1>;

				usb0_retimer_in: endpoint {
					remote-endpoint = <&usb_1_ss0_qmpphy_out>;
				};
			};

			port@2 {
				reg = <2>;

				usb0_retimer_sbu_out: endpoint {
					remote-endpoint = <&pmic_glink_port0_sbu_in>;
				};
			};
		};
	};
};

&i2c5 {
	clock-frequency = <400000>;

	status = "okay";

	eusb3_repeater: redriver@47 {
		compatible = "nxp,ptn3222";
		reg = <0x47>;
		#phy-cells = <0>;

		vdd3v3-supply = <&vreg_l13b>;
		vdd1v8-supply = <&vreg_l4b>;

		reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;

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

	eusb6_repeater: redriver@4f {
		compatible = "nxp,ptn3222";
		reg = <0x4f>;
		#phy-cells = <0>;

		vdd3v3-supply = <&vreg_l13b>;
		vdd1v8-supply = <&vreg_l4b>;

		reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;

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

&iris {
	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcvss8380.mbn";

	status = "okay";
};

&gpu {
	status = "okay";
};

&gpu_zap_shader {
	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcdxkmsuc8380.mbn";
};

&mdss {
	status = "okay";
};

&mdss_dp0 {
	status = "okay";
};

&mdss_dp0_out {
	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};

&mdss_dp1 {
	status = "okay";
};

&mdss_dp1_out {
	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};

&mdss_dp2 {
	status = "okay";
};

&mdss_dp2_out {
	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};

&pcie3 {
	pinctrl-0 = <&pcie3_default>;
	pinctrl-names = "default";

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

	status = "okay";
};

&pcie3_phy {
	vdda-phy-supply = <&vreg_l3c>;
	vdda-pll-supply = <&vreg_l3e>;

	status = "okay";
};

&pcie3_port0 {
	reset-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
};

&pcie4 {
	pinctrl-0 = <&pcie4_default>;
	pinctrl-names = "default";

	status = "okay";
};

&pcie4_phy {
	vdda-phy-supply = <&vreg_l3i>;
	vdda-pll-supply = <&vreg_l3e>;

	status = "okay";
};

&pcie4_port0 {
	reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;

	wifi@0 {
		compatible = "pci17cb,1107";
		reg = <0x10000 0x0 0x0 0x0 0x0>;

		vddaon-supply = <&vreg_pmu_aon_0p59>;
		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
		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>;
	};
};

&pcie5 {
	pinctrl-0 = <&pcie5_default>;
	pinctrl-names = "default";

	status = "okay";
};

&pcie5_phy {
	vdda-phy-supply = <&vreg_l3i>;
	vdda-pll-supply = <&vreg_l3e>;

	status = "okay";
};

&pcie5_port0 {
	reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
};

&pcie6a {
	vddpe-3v3-supply = <&vreg_nvme1_3p3>;

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

	status = "okay";
};

&pcie6a_phy {
	vdda-phy-supply = <&vreg_l1d>;
	vdda-pll-supply = <&vreg_l2j>;

	status = "okay";
};

&pcie6a_port0 {
	reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
};

&pmc8380_5_gpios {
	usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
		pins = "gpio8";
		function = "normal";
		power-source = <1>;
		bias-disable;
		input-disable;
		output-enable;
	};
};

&pm8550_gpios {
	usb0_reset_n: usb0-reset-n-state {
		pins = "gpio10";
		function = "normal";
		power-source = <1>;
		bias-disable;
		input-disable;
		output-enable;
	};

	usb0_3p3_reg_en: usb0-3p3-reg-en-state {
		pins = "gpio11";
		function = "normal";
		power-source = <1>;
		bias-disable;
		input-disable;
		output-enable;
	};
};

&pm8550ve_9_gpios {
	usb0_1p8_reg_en: usb0-1p8-reg-en-state {
		pins = "gpio8";
		function = "normal";
		power-source = <1>;
		bias-disable;
		input-disable;
		output-enable;
	};
};

&qupv3_0 {
	status = "okay";
};

&qupv3_1 {
	status = "okay";
};

&qupv3_2 {
	status = "okay";
};

&remoteproc_adsp {
	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcadsp8380.mbn",
			"qcom/x1e80100/LENOVO/91B6/adsp_dtbs.elf";

	status = "okay";
};

&remoteproc_cdsp {
	firmware-name = "qcom/x1e80100/LENOVO/91B6/qccdsp8380.mbn",
			"qcom/x1e80100/LENOVO/91B6/cdsp_dtbs.elf";

	status = "okay";
};

&smb2360_0 {
	status = "okay";
};

&smb2360_0_eusb2_repeater {
	vdd18-supply = <&vreg_l3d>;
	vdd3-supply = <&vreg_l2b>;
};

&swr1 {
	status = "okay";

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

&swr2 {
	status = "okay";

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

&tlmm {
	gpio-reserved-ranges = <44 4>,  /* SPI11 (TPM) */
			       <76 4>,  /* SPI19 (TZ Protected) */
			       <238 1>; /* UFS Reset */

	eusb3_reset_n: eusb3-reset-n-state {
		pins = "gpio6";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-low;
	};

	nvme_reg_en: nvme-reg-en-state {
		pins = "gpio18";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	us_euro_hs_sel: us-euro-hs-sel-state {
		pins = "gpio68";
		function = "gpio";
		bias-pull-down;
		drive-strength = <2>;
	};

	wcn_wlan_bt_en: wcn-wlan-bt-en-state {
		pins = "gpio116", "gpio117";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	usb1_dp_hot_plug_detect: ub1-dp-hot-plug-detect-state {
		pins = "gpio124";
		function = "usb1_dp";
		bias-disable;
	};

	usb2_dp_hot_plug_detect: usb2-dp-hot-plug-detect-state {
		pins = "gpio126";
		function = "usb2_dp";
		bias-disable;
	};

	pcie3_default: pcie3-default-state {
		clkreq-n-pins {
			pins = "gpio144";
			function = "pcie3_clk";
			drive-strength = <2>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio143";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-down;
		};

		wake-n-pins {
			pins = "gpio145";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie4_default: pcie4-default-state {
		clkreq-n-pins {
			pins = "gpio147";
			function = "pcie4_clk";
			drive-strength = <2>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio146";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};

		wake-n-pins {
			pins = "gpio148";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie5_default: pcie5-default-state {
		clkreq-n-pins {
			pins = "gpio150";
			function = "pcie5_clk";
			drive-strength = <2>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio149";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};

		wake-n-pins {
			pins = "gpio151";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie6a_default: pcie6a-default-state {
		clkreq-n-pins {
			pins = "gpio153";
			function = "pcie6a_clk";
			drive-strength = <2>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio152";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};

		wake-n-pins {
			pins = "gpio154";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	eusb6_reset_n: eusb6-reset-n-state {
		pins = "gpio184";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-low;
	};

	wcd_default: wcd-reset-n-active-state {
		pins = "gpio191";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
		output-low;
	};

	wcn_sw_en: wcn-sw-en-state {
		pins = "gpio214";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};

&uart14 {
	status = "okay";

	bluetooth {
		compatible = "qcom,wcn7850-bt";
		max-speed = <3200000>;

		vddaon-supply = <&vreg_pmu_aon_0p59>;
		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
		vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
		vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
		vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
	};
};

&usb_1_ss0 {
	dr_mode = "host";

	status = "okay";
};

&usb_1_ss0_dwc3_hs {
	remote-endpoint = <&pmic_glink_port0_hs_in>;
};

&usb_1_ss0_hsphy {
	vdd-supply = <&vreg_l3j>;
	vdda12-supply = <&vreg_l2j>;

	phys = <&smb2360_0_eusb2_repeater>;

	status = "okay";
};

&usb_1_ss0_qmpphy {
	vdda-phy-supply = <&vreg_l2j>;
	vdda-pll-supply = <&vreg_l1j>;

	status = "okay";
};

&usb_1_ss0_qmpphy_out {
	remote-endpoint = <&usb0_retimer_in>;
};

&usb_1_ss1_qmpphy {
	vdda-phy-supply = <&vreg_l2j>;
	vdda-pll-supply = <&vreg_l2d>;

	/delete-property/ mode-switch;
	/delete-property/ orientation-switch;

	status = "okay";

	ports {
		port@0 {
			#address-cells = <1>;
			#size-cells = <0>;

			/delete-node/ endpoint;

			usb_1_ss1_qmpphy_out_dp: endpoint@0 {
				reg = <0>;

				data-lanes = <3 2 1 0>;
				remote-endpoint = <&dp_port_in>;
			};
		};
	};
};

&usb_1_ss2_qmpphy {
	vdda-phy-supply = <&vreg_l2j>;
	vdda-pll-supply = <&vreg_l2d>;

	/delete-property/ mode-switch;
	/delete-property/ orientation-switch;

	status = "okay";

	ports {
		port@0 {
			#address-cells = <1>;
			#size-cells = <0>;

			/delete-node/ endpoint;

			usb_1_ss2_qmpphy_out_dp: endpoint@0 {
				reg = <0>;

				data-lanes = <3 2 1 0>;
				remote-endpoint = <&hdmi_bridge_in>;
			};
		};
	};
};

&usb_mp {
	status = "okay";
};

&usb_mp_hsphy0 {
	vdd-supply = <&vreg_l2e>;
	vdda12-supply = <&vreg_l3e>;

	phys = <&eusb3_repeater>;

	status = "okay";
};

&usb_mp_hsphy1 {
	vdd-supply = <&vreg_l2e>;
	vdda12-supply = <&vreg_l3e>;

	phys = <&eusb6_repeater>;

	status = "okay";
};

&usb_mp_qmpphy0 {
	vdda-phy-supply = <&vreg_l3e>;
	vdda-pll-supply = <&vreg_l3c>;

	status = "okay";
};

&usb_mp_qmpphy1 {
	vdda-phy-supply = <&vreg_l3e>;
	vdda-pll-supply = <&vreg_l3c>;

	status = "okay";
};