// SPDX-License-Identifier: BSD-3-Clause

/dts-v1/;

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

#include "sc7180.dtsi"

#include "pm6150.dtsi"
#include "pm6150l.dtsi"

/delete-node/ &tz_mem;
/delete-node/ &ipa_fw_mem;

/ {
	model = "Acer Aspire 1";
	compatible = "acer,aspire1", "qcom,sc7180";
	chassis-type = "laptop";

	aliases {
		bluetooth0 = &bluetooth;
		hsuart0 = &uart3;
		serial0 = &uart8;
		wifi0 = &wifi;
	};

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

	reserved-memory {
		zap_mem: zap-shader@80840000 {
			reg = <0x0 0x80840000 0 0x2000>;
			no-map;
		};

		venus_mem: venus@85b00000 {
			reg = <0x0 0x85b00000 0 0x500000>;
			no-map;
		};

		mpss_mem: mpss@86000000 {
			reg = <0x0 0x86000000 0x0 0x2000000>;
			no-map;
		};

		adsp_mem: adsp@8e400000 {
			reg = <0x0 0x8e400000 0x0 0x2800000>;
			no-map;
		};

		wlan_mem: wlan@93900000 {
			reg = <0x0 0x93900000 0x0 0x200000>;
			no-map;
		};
	};

	max98357a: audio-codec {
		compatible = "maxim,max98357a";
		sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;

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

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

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&sn65dsi86_bridge 1000000>;
		enable-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;

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

	reg_brij_1p2: bridge-1p2-regulator {
		compatible = "regulator-fixed";
		regulator-name = "brij_1p2";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;

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

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

	reg_brij_1p8: bridge-regulator {
		compatible = "regulator-fixed";
		regulator-name = "brij_1p8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		vin-supply = <&vreg_l8c_1p8>;

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

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

	reg_codec_3p3: codec-regulator {
		compatible = "regulator-fixed";
		regulator-name = "codec_3p3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

	reg_lcm_3p3: panel-regulator {
		compatible = "regulator-fixed";
		regulator-name = "lcm_3p3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

	sound: sound {
		compatible = "qcom,sc7180-qdsp6-sndcard";
		pinctrl-0 = <&pri_mi2s_active>, <&pri_mi2s_mclk_active>, <&ter_mi2s_active>;
		pinctrl-names = "default";
		model = "Acer-Aspire-1";

		audio-routing =
			"Headphone Jack", "HPOL",
			"Headphone Jack", "HPOR";

		multimedia1-dai-link {
			link-name = "MultiMedia1";

			cpu {
				sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
			};
		};

		multimedia2-dai-link {
			link-name = "MultiMedia2";

			cpu {
				sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
			};
		};

		multimedia3-dai-link {
			link-name = "MultiMedia3";

			cpu {
				sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
			};
		};

		multimedia4-dai-link {
			link-name = "MultiMedia4";

			cpu {
				sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
			};
		};

		primary-rx-dai-link {
			link-name = "Primary MI2S Playback";

			cpu {
				sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
			};

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

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

		primary-tx-dai-link {
			link-name = "Primary MI2S Capture";

			cpu {
				sound-dai = <&q6afedai PRIMARY_MI2S_TX>;
			};

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

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

		tertiary-rx-dai-link {
			link-name = "Tertiary MI2S Playback";

			cpu {
				sound-dai = <&q6afedai TERTIARY_MI2S_RX>;
			};

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

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

		displayport-rx-dai-link {
			link-name = "DisplayPort Playback";

			cpu {
				sound-dai = <&q6afedai DISPLAY_PORT_RX>;
			};

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

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

	reg_tp_3p3: touchpad-regulator {
		compatible = "regulator-fixed";
		regulator-name = "tp_3p3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

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

	/* embedded-controller@76 */
};

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

	/*
	 * NOTE: DSDT defines two possible touchpads, other one is
	 *
	 * reg = <0x15>;
	 * hid-descr-addr = <0x1>;
	 */

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

		vdd-supply = <&reg_tp_3p3>;

		interrupts-extended = <&tlmm 94 IRQ_TYPE_LEVEL_LOW>;

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

		wakeup-source;
	};

	keyboard@3a {
		compatible = "hid-over-i2c";
		reg = <0x3a>;
		hid-descr-addr = <0x1>;

		interrupts-extended = <&tlmm 33 IRQ_TYPE_LEVEL_LOW>;

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

		wakeup-source;
	};
};

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

	alc5682: codec@1a {
		compatible = "realtek,rt5682i";
		reg = <0x1a>;

		#sound-dai-cells = <1>;

		interrupt-parent = <&tlmm>;
		interrupts = <28 IRQ_TYPE_EDGE_BOTH>;

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

		AVDD-supply = <&vreg_l15a_1p8>;
		MICVDD-supply = <&reg_codec_3p3>;
		VBAT-supply = <&reg_codec_3p3>;
		DBVDD-supply = <&vreg_l15a_1p8>;
		LDO1-IN-supply = <&vreg_l15a_1p8>;

		/*
		 * NOTE: The board has a path from this codec to the
		 * DMIC microphones in the lid, however some of the option
		 * resistors are absent and the microphones are connected
		 * to the SoC instead.
		 *
		 * If the resistors were to be changed by the user to
		 * connect the codec, the following could be used:
		 *
		 * realtek,dmic1-data-pin = <1>;
		 * realtek,dmic1-clk-pin = <1>;
		 */

		realtek,jd-src = <1>;
	};
};

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

	sn65dsi86_bridge: bridge@2c {
		compatible = "ti,sn65dsi86";
		reg = <0x2c>;
		gpio-controller;
		#gpio-cells = <2>;
		#pwm-cells = <1>;

		interrupt-parent = <&tlmm>;
		interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;

		enable-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
		suspend-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;

		pinctrl-0 = <&bridge_en_default>,
			    <&edp_bridge_irq_default>,
			    <&bridge_suspend_default>;
		pinctrl-names = "default";

		vpll-supply = <&reg_brij_1p8>;
		vccio-supply = <&reg_brij_1p8>;
		vcca-supply = <&reg_brij_1p2>;
		vcc-supply = <&reg_brij_1p2>;

		clocks = <&rpmhcc RPMH_LN_BB_CLK3>;
		clock-names = "refclk";

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

			port@0 {
				reg = <0>;

				sn65dsi86_in: endpoint {
					remote-endpoint = <&mdss_dsi0_out>;
				};
			};

			port@1 {
				reg = <1>;

				sn65dsi86_out: endpoint {
					data-lanes = <0 1>;
					remote-endpoint = <&panel_in_edp>;
				};
			};
		};

		aux-bus {
			panel: panel {
				compatible = "edp-panel";
				power-supply = <&reg_lcm_3p3>;
				backlight = <&backlight>;
				hpd-absent-delay-ms = <200>;

				port {
					panel_in_edp: endpoint {
						remote-endpoint = <&sn65dsi86_out>;
					};
				};
			};
		};
	};
};

&gpu {
	status = "okay";

	zap-shader {
		memory-region = <&zap_mem>;
		firmware-name = "qcom/sc7180/acer/aspire1/qcdxkmsuc7180.mbn";
	};
};

&mdss {
	status = "okay";
};

&mdss_dsi0 {
	vdda-supply = <&vreg_l3c_1p2>;
	status = "okay";
};

&mdss_dsi0_out {
	remote-endpoint = <&sn65dsi86_in>;
	data-lanes = <0 1 2 3>;
};

&mdss_dsi0_phy {
	vdds-supply = <&vreg_l4a_0p8>;
	status = "okay";
};

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

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

&pm6150_adc_tm {
	status = "okay";

	charger-thermistor@0 {
		reg = <0>;
		io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	thermistor@1 {
		reg = <1>;
		io-channels = <&pm6150_adc ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};
};

&pm6150_pon {
	status = "disabled";
};

&pm6150_rtc {
	status = "okay";
};

&q6afedai {
	dai@16 {
		reg = <PRIMARY_MI2S_RX>;
		qcom,sd-lines = <1>;
	};

	dai@17 {
		reg = <PRIMARY_MI2S_TX>;
		qcom,sd-lines = <0>;
	};

	dai@20 {
		reg = <TERTIARY_MI2S_RX>;
		qcom,sd-lines = <0>;
	};

	dai@104 {
		reg = <DISPLAY_PORT_RX>;
	};
};

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

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

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

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

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&remoteproc_adsp {
	memory-region = <&adsp_mem>;
	firmware-name = "qcom/sc7180/acer/aspire1/qcadsp7180.mbn";
	status = "okay";
};

&remoteproc_mpss {
	firmware-name = "qcom/sc7180/acer/aspire1/qcmpss7180_nm.mbn";
	status = "okay";
};

&sdhc_1 {
	pinctrl-0 = <&sdc1_default>;
	pinctrl-1 = <&sdc1_sleep>;
	pinctrl-names = "default", "sleep";
	vmmc-supply = <&vreg_l19a_2p9>;
	vqmmc-supply = <&vreg_l12a_1p8>;

	status = "okay";
};

&uart3 {
	/delete-property/interrupts;
	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
			      <&tlmm 41 IRQ_TYPE_EDGE_FALLING>;

	pinctrl-1 = <&qup_uart3_sleep>;
	pinctrl-names = "default", "sleep";

	status = "okay";

	bluetooth: bluetooth {
		compatible = "qcom,wcn3991-bt";
		vddio-supply = <&vreg_l10a_1p8>;
		vddxo-supply = <&vreg_l1c_1p8>;
		vddrf-supply = <&vreg_l2c_1p3>;
		vddch0-supply = <&vreg_l10c_3p3>;
		max-speed = <3200000>;
	};
};

&uart8 {
	status = "okay";
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	dr_mode = "host";
	#address-cells = <1>;
	#size-cells = <0>;

	usb_hub_2_x: hub@1 {
		compatible = "usbbda,5411";
		reg = <1>;
		peer-hub = <&usb_hub_3_x>;
	};

	usb_hub_3_x: hub@2 {
		compatible = "usbbda,411";
		reg = <2>;
		peer-hub = <&usb_hub_2_x>;
	};
};

&usb_1_hsphy {
	vdd-supply = <&vreg_l4a_0p8>;
	vdda-pll-supply = <&vreg_l11a_1p8>;
	vdda-phy-dpdm-supply = <&vreg_l17a_3p0>;
	qcom,imp-res-offset-value = <8>;
	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
	qcom,bias-ctrl-value = <0x22>;
	qcom,charge-ctrl-value = <3>;
	qcom,hsdisc-trim-value = <0>;

	status = "okay";
};

&usb_1_qmpphy {
	vdda-phy-supply = <&vreg_l3c_1p2>;
	vdda-pll-supply = <&vreg_l4a_0p8>;

	status = "okay";
};

&venus {
	firmware-name = "qcom/sc7180/acer/aspire1/qcvss7180.mbn";
};

&wifi {
	vdd-0.8-cx-mx-supply = <&vreg_l9a_0p6>;
	vdd-1.8-xo-supply = <&vreg_l1c_1p8>;
	vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
	vdd-3.3-ch0-supply = <&vreg_l10c_3p3>;
	vdd-3.3-ch1-supply = <&vreg_l11c_3p3>;

	status = "okay";
};

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

		vreg_s1a_1p1: smps1 {
			regulator-min-microvolt = <1128000>;
			regulator-max-microvolt = <1128000>;
		};

		vreg_l4a_0p8: ldo4 {
			regulator-min-microvolt = <824000>;
			regulator-max-microvolt = <928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9a_0p6: ldo9 {
			regulator-min-microvolt = <488000>;
			regulator-max-microvolt = <800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10a_1p8: ldo10 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-always-on;
			regulator-boot-on;
		};

		vreg_l11a_1p8: ldo11 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			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_l13a_1p8: ldo13 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

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

		vreg_l16a_2p7: ldo16 {
			regulator-min-microvolt = <2496000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l17a_3p0: ldo17 {
			regulator-min-microvolt = <2920000>;
			regulator-max-microvolt = <3232000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l18a_2p8: ldo18 {
			regulator-min-microvolt = <2496000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

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

		vreg_s8c_1p3: smps8 {
			regulator-min-microvolt = <1120000>;
			regulator-max-microvolt = <1408000>;
		};

		vreg_l1c_1p8: ldo1 {
			regulator-min-microvolt = <1616000>;
			regulator-max-microvolt = <1984000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2c_1p3: ldo2 {
			regulator-min-microvolt = <1168000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3c_1p2: ldo3 {
			regulator-min-microvolt = <1144000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4c_1p8: ldo4 {
			regulator-min-microvolt = <1648000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l5c_1p8: ldo5 {
			regulator-min-microvolt = <1648000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

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

		vreg_l7c_3p0: ldo7 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3312000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

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

		vreg_l9c_2p9: ldo9 {
			regulator-min-microvolt = <2952000>;
			regulator-max-microvolt = <2952000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10c_3p3: ldo10 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3400000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11c_3p3: ldo11 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3400000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

&qup_i2c2_default {
	drive-strength = <2>;

	/* Has external pullup */
	bias-disable;
};

&qup_i2c4_default {
	drive-strength = <2>;

	/* Has external pullup */
	bias-disable;
};

&qup_i2c9_default {
	drive-strength = <2>;

	/* Has external pullup */
	bias-disable;
};

&qup_i2c10_default {
	drive-strength = <2>;

	/* Has external pullup */
	bias-disable;
};

&tlmm {
	/*
	 * The TZ seem to protect those because some boards can have
	 * fingerprint sensor connected to this range. Not connected
	 * on this board
	 */
	gpio-reserved-ranges = <58 5>;

	amp_sd_mode_default: amp-sd-mode-deault-state {
		pins = "gpio23";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
	};

	bridge_en_default: bridge-en-default-state {
		pins = "gpio51";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
	};

	bridge_suspend_default: bridge-suspend-default-state {
		pins = "gpio22";
		function = "gpio";
		drive-strength = <16>;
		bias-pull-up;
	};

	codec_irq_default: codec-irq-deault-state {
		pins = "gpio28";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	edp_bridge_irq_default: edp-bridge-irq-default-state {
		pins = "gpio11";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-down;
	};

	hid_keyboard_default: hid-keyboard-default-state {
		pins = "gpio33";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	hid_touchpad_default: hid-touchpad-default-state {
		pins = "gpio94";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	qup_uart3_sleep: qup-uart3-sleep-state {
		cts-pins {
			/*
			 * Configure a pull-down on CTS to match the pull of
			 * the Bluetooth module.
			 */
			pins = "gpio38";
			function = "gpio";
			bias-pull-down;
		};

		rts-pins {
			/*
			 * 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).
			 */
			pins = "gpio39";
			function = "gpio";
			bias-pull-down;
		};

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

		rx-pins {
			/*
			 * 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.
			 */
			pins = "gpio41";
			function = "gpio";
			bias-pull-up;
		};
	};

	reg_edp_1p2_en_default: reg-edp-1p2-en-deault-state {
		pins = "gpio19";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
	};

	reg_edp_1p8_en_default: reg-edp-1p8-en-deault-state {
		pins = "gpio20";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
	};

	reg_lcm_en_default: reg-lcm-en-deault-state {
		pins = "gpio26";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
	};

	reg_audio_en_default: reg-audio-en-deault-state {
		pins = "gpio83";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	reg_tp_en_default: reg-tp-en-deault-state {
		pins = "gpio25";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	soc_bkoff_default: soc-bkoff-deault-state {
		pins = "gpio10";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
	};

	sdc1_default: sdc1-default-state {
		clk-pins {
			pins = "sdc1_clk";
			drive-strength = <16>;
			bias-disable;
		};

		cmd-pins {
			pins = "sdc1_cmd";
			drive-strength = <16>;
			bias-pull-up;
		};

		data-pins {
			pins = "sdc1_data";
			drive-strength = <16>;
			bias-pull-up;
		};

		rclk-pins {
			pins = "sdc1_rclk";
			bias-pull-down;
		};
	};

	sdc1_sleep: sdc1-sleep-state {
		clk-pins {
			pins = "sdc1_clk";
			drive-strength = <2>;
			bias-disable;
		};

		cmd-pins {
			pins = "sdc1_cmd";
			drive-strength = <2>;
			bias-pull-up;
		};

		data-pins {
			pins = "sdc1_data";
			drive-strength = <2>;
			bias-pull-up;
		};

		rclk-pins {
			pins = "sdc1_rclk";
			bias-pull-down;
		};
	};
};
