// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Google Trogdor device tree source (common between revisions)
 *
 * Copyright 2019 Google LLC.
 */

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/sound/sc7180-lpass.h>

#include "sc7180.dtsi"
/* PMICs depend on spmi_bus label and so must come after sc7180.dtsi */
#include "pm6150.dtsi"
#include "pm6150l.dtsi"

/ {
	thermal-zones {
		charger_thermal: charger-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;

			thermal-sensors = <&pm6150_adc_tm 0>;

			trips {
				charger-crit {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};
	};
};

/*
 * Reserved memory changes
 *
 * Delete all unused memory nodes and define the peripheral memory regions
 * required by the board dts.
 */

/delete-node/ &hyp_mem;
/delete-node/ &ipa_fw_mem;
/delete-node/ &xbl_mem;
/delete-node/ &aop_mem;
/delete-node/ &sec_apps_mem;
/delete-node/ &tz_mem;

/* Increase the size from 2MB to 8MB */
&rmtfs_mem {
	reg = <0x0 0x94600000 0x0 0x800000>;
};

/ {
	reserved-memory {
		atf_mem: memory@80b00000 {
			reg = <0x0 0x80b00000 0x0 0x100000>;
			no-map;
		};

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

		venus_mem: memory@8f600000 {
			reg = <0 0x8f600000 0 0x500000>;
			no-map;
		};

		wlan_mem: memory@94100000 {
			reg = <0x0 0x94100000 0x0 0x200000>;
			no-map;
		};

		mba_mem: memory@94400000 {
			reg = <0x0 0x94400000 0x0 0x200000>;
			no-map;
		};

		mdata_mem: mpss-metadata {
			alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>;
			size = <0x0 0x4000>;
			no-map;
		};
	};

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

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

	/* FIXED REGULATORS - parents above children */

	/* This is the top level supply and variable voltage */
	ppvar_sys: ppvar-sys-regulator {
		compatible = "regulator-fixed";
		regulator-name = "ppvar_sys";
		regulator-always-on;
		regulator-boot-on;
	};

	/* This divides ppvar_sys by 2, so voltage is variable */
	src_vph_pwr: src-vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "src_vph_pwr";

		/* EC turns on with switchcap_on; always on for AP */
		regulator-always-on;
		regulator-boot-on;

		vin-supply = <&ppvar_sys>;
	};

	pp5000_a: pp5000-a-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp5000_a";

		/* EC turns on with en_pp5000_a; always on for AP */
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;

		vin-supply = <&ppvar_sys>;
	};

	pp3300_a: pp3300-a-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp3300_a";

		/* EC turns on with en_pp3300_a; always on for AP */
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		/*
		 * Actually should be pp3300 but that's practically an alias for
		 * pp3300_a so we use pp3300's vin-supply here to avoid one more
		 * node.
		 */
		vin-supply = <&ppvar_sys>;
	};

	pp1800_ec:
	pp1800_sensors:
	pp1800_ldo: pp1800-ldo-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp1800_ldo";

		/* EC turns on with hibernate_l; always on for AP */
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		/*
		 * Actually should be pp1800_h1 but we don't have any need to
		 * model that so we use the parent of pp1800_h1.
		 */
		vin-supply = <&pp3300_a>;
	};

	pp1800_uf_cam: pp1800-uf-cam-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp1800_uf_cam";
		status = "disabled";

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

		gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&uf_cam_en>;

		vin-supply = <&pp1800_ldo>;
		regulator-enable-ramp-delay = <1000>;
	};

	pp1800_wf_cam: pp1800-wf-cam-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp1800_wf_cam";
		status = "disabled";

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

		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&wf_cam_en>;

		vin-supply = <&pp1800_ldo>;
		regulator-enable-ramp-delay = <1000>;
	};

	pp2800_uf_cam: pp2800-uf-cam-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp2800_uf_cam";
		status = "disabled";

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

		gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		/*
		 * The pinconf can only be referenced once so we put it on the
		 * first regulator and comment it out here.
		 * pinctrl-names = "default";
		 * pinctrl-0 = <&uf_cam_en>;
		 */

		vin-supply = <&pp3300_a>;
	};

	pp2800_vcm_wf_cam:
	pp2800_wf_cam: pp2800-wf-cam-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp2800_wf_cam";
		status = "disabled";

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

		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		/*
		 * The pinconf can only be referenced once so we put it on the
		 * first regulator and comment it out here.
		 * pinctrl-names = "default";
		 * pinctrl-0 = <&wf_cam_en>;
		 */

		vin-supply = <&pp3300_a>;
	};

	pp3300_audio:
	pp3300_codec: pp3300-codec-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp3300_codec";

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

		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&en_pp3300_codec>;

		vin-supply = <&pp3300_a>;
	};

	pp3300_dx_edp:
	pp3300_ts: pp3300-dx-edp-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp3300_dx_edp";

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

		gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&en_pp3300_dx_edp>;

		vin-supply = <&pp3300_a>;
	};

	pp3300_fp_tp: pp3300-fp-tp-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp3300_fp_tp";

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

		/* AP turns on with PP1800_VIO_OUT; always on for AP */
		regulator-always-on;
		regulator-boot-on;

		vin-supply = <&pp3300_a>;
	};

	pp3300_hub: pp3300-hub-regulator {
		compatible = "regulator-fixed";
		regulator-name = "pp3300_hub";

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

		gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&en_pp3300_hub>;

		/* The BIOS leaves this regulator on */
		regulator-boot-on;

		vin-supply = <&pp3300_a>;
	};

	/* BOARD-SPECIFIC TOP LEVEL NODES */

	backlight: backlight {
		compatible = "pwm-backlight";

		/* The panels don't seem to like anything below ~ 5% */
		brightness-levels = <
			196 256 324 400 484 576 676 784 900 1024 1156 1296
			1444 1600 1764 1936 2116 2304 2500 2704 2916 3136
			3364 3600 3844 4096
		>;
		num-interpolated-steps = <64>;
		default-brightness-level = <951>;

		pwms = <&cros_ec_pwm 1>;
		enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
		power-supply = <&ppvar_sys>;
		pinctrl-names = "default";
		pinctrl-0 = <&ap_edp_bklten>;
	};

	gpio_keys: gpio-keys {
		compatible = "gpio-keys";
		status = "disabled";
		pinctrl-names = "default";
		pinctrl-0 = <&pen_pdct_l>;

		pen_insert: switch-pen-insert {
			label = "Pen Insert";

			/* Insert = low, eject = high */
			gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
			linux,code = <SW_PEN_INSERTED>;
			linux,input-type = <EV_SW>;
			wakeup-event-action = <EV_ACT_DEASSERTED>;
			wakeup-source;
		};
	};

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

	pwmleds {
		compatible = "pwm-leds";
		keyboard_backlight: led-0 {
			status = "disabled";
			label = "cros_ec::kbd_backlight";
			function = LED_FUNCTION_KBD_BACKLIGHT;
			pwms = <&cros_ec_pwm 0>;
			max-brightness = <1023>;
		};
	};

	sound: sound {
		compatible = "google,sc7180-trogdor";
		model = "sc7180-rt5682-max98357a-1mic";

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

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

		dai-link@0 {
			link-name = "MultiMedia0";
			reg = <MI2S_PRIMARY>;
			cpu {
				sound-dai = <&lpass_cpu MI2S_PRIMARY>;
			};

			sound_multimedia0_codec: codec {
				sound-dai = <&alc5682 0 /* aif1 */>;
			};
		};

		dai-link@1 {
			link-name = "MultiMedia1";
			reg = <MI2S_SECONDARY>;
			cpu {
				sound-dai = <&lpass_cpu MI2S_SECONDARY>;
			};

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

		dai-link@5 {
			link-name = "MultiMedia2";
			reg = <LPASS_DP_RX>;
			cpu {
				sound-dai = <&lpass_cpu LPASS_DP_RX>;
			};

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

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

&qspi {
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data0>, <&qspi_data1>;
	pinctrl-1 = <&qspi_sleep>;

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;

		spi-max-frequency = <37500000>;
		spi-tx-bus-width = <2>;
		spi-rx-bus-width = <2>;
	};
};

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

		vddpx_1:
		vdd2:
		pp1125_s1a: smps1 {
			regulator-min-microvolt = <1128000>;
			regulator-max-microvolt = <1128000>;
		};

		vdd_qlink_lv:
		vdd_qlink_lv_ck:
		vdd_qusb_hs0_core:
		vdd_ufs1_core:
		vdda_mipi_csi0_0p9:
		vdda_mipi_csi1_0p9:
		vdda_mipi_csi2_0p9:
		vdda_mipi_csi3_0p9:
		vdda_mipi_dsi0_pll:
		vdda_pll_cc_ebi01:
		vdda_qrefs_0p9:
		vdda_usb_ss_dp_core:
		pp900_l4a: ldo4 {
			regulator-min-microvolt = <824000>;
			regulator-max-microvolt = <928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

		vdd1:
		vddpx_3:
		vddpx_7:
		vio_in:
		pp1800_l10a: ldo10 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vdd_qfprom:
		vdda_apc1_cs_1p8:
		vdda_qrefs_1p8:
		vdda_qusb_hs0_1p8:
		vddpx_11:
		vreg_bb_clk:
		pp1800_l11a: ldo11 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		mcp_vccq:
		pp1800_l12a_r: ldo12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/*
		 * On trogdor this needs to match l10a since we use it to
		 * give power to things like SPI flash which communicate back
		 * on lines powered by l10a.  Thus we force to 1.8V.
		 */
		pp1800_l13a: ldo13 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-always-on;
			regulator-boot-on;
		};

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

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

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

		pp1800_pen:
		pp1800_l18a: ldo18 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		mcp_vcc:
		pp2850_l19a: 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";

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

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

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

		pp1200_brij:
		vdd_ufs1_1p2:
		vdda_csi0_1p25:
		vdda_csi1_1p25:
		vdda_csi2_1p25:
		vdda_csi3_1p25:
		vdda_hv_ebi0:
		vdda_mipi_dsi0_1p2:
		vdda_usb_ss_dp_1p2:
		vddpx_10:
		pp1200_l3c: ldo3 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vddpx_2:
		ppvar_l6c: ldo6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2952000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pp3300_l7c: ldo7 {
			regulator-min-microvolt = <3304000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

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

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

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

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

ap_ec_spi: &spi6 {
	status = "okay";
	cros_ec: ec@0 {
		compatible = "google,cros-ec-spi";
		reg = <0>;
		interrupt-parent = <&tlmm>;
		interrupts = <94 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&ap_ec_int_l>;
		spi-max-frequency = <3000000>;

		cros_ec_pwm: pwm {
			compatible = "google,cros-ec-pwm";
			#pwm-cells = <1>;
		};

		i2c_tunnel: i2c-tunnel {
			compatible = "google,cros-ec-i2c-tunnel";
			google,remote-bus = <0>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		typec {
			compatible = "google,cros-ec-typec";
			#address-cells = <1>;
			#size-cells = <0>;

			usb_c0: connector@0 {
				compatible = "usb-c-connector";
				reg = <0>;
				label = "left";
				power-role = "dual";
				data-role = "host";
				try-power-role = "source";
			};

			usb_c1: connector@1 {
				compatible = "usb-c-connector";
				reg = <1>;
				label = "right";
				power-role = "dual";
				data-role = "host";
				try-power-role = "source";
			};
		};
	};
};

ap_h1_spi: &spi0 {
	status = "okay";
	cr50: tpm@0 {
		compatible = "google,cr50";
		reg = <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&h1_ap_int_odl>;
		spi-max-frequency = <800000>;
		interrupt-parent = <&tlmm>;
		interrupts = <42 IRQ_TYPE_EDGE_RISING>;
	};
};

&camcc {
	status = "disabled";
};

&dsi0 {
	status = "okay";
	vdda-supply = <&vdda_mipi_dsi0_1p2>;
};

&dsi0_out {
	data-lanes = <0 1 2 3>;
};

&dsi_phy {
	status = "okay";
	vdds-supply = <&vdda_mipi_dsi0_pll>;
};

ap_sar_sensor_i2c: &i2c5 {
	clock-frequency = <400000>;

	ap_sar_sensor: proximity@28 {
		compatible = "semtech,sx9310";
		reg = <0x28>;
		#io-channel-cells = <1>;
		pinctrl-names = "default";
		pinctrl-0 = <&p_sensor_int_l>;

		interrupt-parent = <&tlmm>;
		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;

		vdd-supply = <&pp3300_a>;
		svdd-supply = <&pp1800_prox>;

		label = "proximity-wifi";
	};
};

ap_tp_i2c: &i2c7 {
	clock-frequency = <400000>;

	trackpad: trackpad@15 {
		compatible = "elan,ekth3000";
		reg = <0x15>;
		pinctrl-names = "default";
		pinctrl-0 = <&tp_int_odl>;

		interrupt-parent = <&tlmm>;
		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;

		vcc-supply = <&pp3300_fp_tp>;

		wakeup-source;
	};
};

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

	alc5682: codec@1a {
		compatible = "realtek,rt5682i";
		reg = <0x1a>;
		pinctrl-names = "default";
		pinctrl-0 = <&hp_irq>;

		#sound-dai-cells = <1>;

		interrupt-parent = <&tlmm>;
		/*
		 * This will get ignored because the interrupt type
		 * is set in rt5682.c.
		 */
		interrupts = <28 IRQ_TYPE_EDGE_BOTH>;

		AVDD-supply = <&pp1800_alc5682>;
		DBVDD-supply = <&pp1800_alc5682>;
		LDO1-IN-supply = <&pp1800_alc5682>;
		MICVDD-supply = <&pp3300_codec>;
		VBAT-supply = <&pp3300_audio>;

		realtek,dmic1-data-pin = <1>;
		realtek,dmic1-clk-pin = <1>;
		realtek,jd-src = <1>;
	};
};

&lpass_cpu {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&sec_mi2s_active>, <&pri_mi2s_active>, <&pri_mi2s_mclk_active>;

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

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

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

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

&mdp {
	status = "okay";
};

&mdss {
	status = "okay";
};

&mdss_dp {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&dp_hot_plug_det>;
};

&mdss_dp_out {
	data-lanes = <0 1>;
	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>;
};

&pm6150_adc {
	charger-thermistor@4f {
		reg = <ADC5_AMUX_THM3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
	};
};

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

&pm6150_pon {
	status = "disabled";
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&remoteproc_mpss {
	status = "okay";
	compatible = "qcom,sc7180-mss-pil";
	reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
	reg-names = "qdsp6", "rmb";

	clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
		 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
		 <&gcc GCC_MSS_NAV_AXI_CLK>,
		 <&gcc GCC_MSS_SNOC_AXI_CLK>,
		 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
		 <&rpmhcc RPMH_CXO_CLK>;
	clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo";

	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
	memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>;

	/* This gets overridden for SKUs with LTE support. */
	firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
			"qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";

	resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
		 <&pdc_reset PDC_MODEM_SYNC_RESET>;
	reset-names = "mss_restart", "pdc_reset";

	qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
	qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;
};

&scm {
	/* TF-A firmware maps memory cached so mark dma-coherent to match. */
	dma-coherent;
};

&sdhc_1 {
	status = "okay";

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc1_on>;
	pinctrl-1 = <&sdc1_off>;
	vmmc-supply = <&mcp_vcc>;
	vqmmc-supply = <&mcp_vccq>;
};

&sdhc_2 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_on>;
	pinctrl-1 = <&sdc2_off>;
	vmmc-supply = <&pp2950_l9c>;
	vqmmc-supply = <&ppvar_l6c>;

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

&spi0 {
	pinctrl-0 = <&qup_spi0_spi>, <&qup_spi0_cs_gpio>;
	cs-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
};

&spi6 {
	pinctrl-0 = <&qup_spi6_spi>, <&qup_spi6_cs_gpio>;
	cs-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
};

ap_spi_fp: &spi10 {
	pinctrl-0 = <&qup_spi10_spi>, <&qup_spi10_cs_gpio>;
	cs-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;

	cros_ec_fp: ec@0 {
		compatible = "google,cros-ec-fp", "google,cros-ec-spi";
		reg = <0>;
		interrupt-parent = <&tlmm>;
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&fp_to_ap_irq_l>, <&fp_rst_l>, <&fpmcu_boot0>;
		boot0-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
		spi-max-frequency = <3000000>;
		vdd-supply = <&pp3300_fp_tp>;
	};
};

#include <arm/cros-ec-sbs.dtsi>

&uart3 {
	status = "okay";

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

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

	bluetooth: bluetooth {
		compatible = "qcom,wcn3991-bt";
		vddio-supply = <&pp1800_l10a>;
		vddxo-supply = <&pp1800_l1c>;
		vddrf-supply = <&pp1300_l2c>;
		vddch0-supply = <&pp3300_l10c>;
		max-speed = <3200000>;
	};
};

&uart8 {
	status = "okay";
};

&usb_1 {
	status = "okay";
};

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

	/* 2.x hub on port 1 */
	usb_hub_2_x: hub@1 {
		compatible = "usbbda,5411";
		reg = <1>;
		vdd-supply = <&pp3300_hub>;
		peer-hub = <&usb_hub_3_x>;
	};

	/* 3.x hub on port 2 */
	usb_hub_3_x: hub@2 {
		compatible = "usbbda,411";
		reg = <2>;
		vdd-supply = <&pp3300_hub>;
		peer-hub = <&usb_hub_2_x>;
	};
};

&usb_1_hsphy {
	status = "okay";
	vdd-supply = <&vdd_qusb_hs0_core>;
	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
	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>;
};

&usb_1_qmpphy {
	status = "okay";
	vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
	vdda-pll-supply = <&vdda_usb_ss_dp_core>;
};

&venus {
	video-firmware {
		iommus = <&apps_smmu 0x0c42 0x0>;
	};
};

&wifi {
	status = "okay";
	vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>;
	vdd-1.8-xo-supply = <&pp1800_l1c>;
	vdd-1.3-rfa-supply = <&pp1300_l2c>;
	vdd-3.3-ch0-supply = <&pp3300_l10c>;
	vdd-3.3-ch1-supply = <&pp3300_l11c>;

	wifi-firmware {
		iommus = <&apps_smmu 0xc2 0x1>;
	};
};

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

&dp_hot_plug_det {
	bias-disable;
};

&pri_mi2s_active {
	drive-strength = <2>;
	bias-pull-down;
};

&pri_mi2s_mclk_active {
	drive-strength = <2>;
	bias-pull-down;
};

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

&qspi_clk {
	drive-strength = <8>;
	bias-disable;		/* Rely on Cr50 internal pulldown */
};

&qspi_data0 {
	bias-disable;		/* Rely on Cr50 internal pulldown */
};

&qspi_data1 {
	bias-pull-down;
};

&qup_i2c2_default {
	drive-strength = <2>;

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

&qup_i2c4_default {
	drive-strength = <2>;

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

&qup_i2c5_default {
	drive-strength = <2>;

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

&qup_i2c7_default {
	drive-strength = <2>;

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

&qup_i2c9_default {
	drive-strength = <2>;

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

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

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

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

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

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

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

&qup_uart3_cts {
	/*
	 * Configure a pull-down on CTS to match the pull of
	 * the Bluetooth module.
	 */
	bias-pull-down;
};

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

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

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

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

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

&sec_mi2s_active {
	drive-strength = <2>;
	bias-pull-down;
};

/* PINCTRL - board-specific pinctrl */

&pm6150_gpios {
	status = "disabled"; /* No GPIOs are connected */
};

&pm6150l_gpios {
	gpio-line-names = "AP_SUSPEND",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "";
};

&tlmm {
	/*
	 * pinctrl settings for pins that have no real owners.
	 */
	pinctrl-names = "default";
	pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>;

	amp_en: amp-en-state {
		pins = "gpio23";
		function = "gpio";
		bias-pull-down;
	};

	ap_ec_int_l: ap-ec-int-l-state {
		pins = "gpio94";
		function = "gpio";
		bias-pull-up;
	};

	ap_edp_bklten: ap-edp-bklten-state {
		pins = "gpio12";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;

		/* Force backlight to be disabled to match state at boot. */
		output-low;
	};

	ap_suspend_l_neuter: ap-suspend-l-neuter-state {
		pins = "gpio27";
		function = "gpio";
		bias-disable;
	};

	bios_flash_wp_l: bios-flash-wp-l-state {
		pins = "gpio66";
		function = "gpio";
		bias-disable;
	};

	edp_brij_en: edp-brij-en-state {
		pins = "gpio104";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	en_pp3300_codec: en-pp3300-codec-state {
		pins = "gpio83";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	en_pp3300_dx_edp: en-pp3300-dx-edp-state {
		pins = "gpio30";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	en_pp3300_hub: en-pp3300-hub-state {
		pins = "gpio84";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	fp_rst_l: fp-rst-l-state {
		pins = "gpio22";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
	};

	fp_to_ap_irq_l: fp-to-ap-irq-l-state {
		pins = "gpio4";
		function = "gpio";

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

	fpmcu_boot0: fpmcu-boot0-state {
		pins = "gpio10";
		function = "gpio";
		bias-disable;
	};

	h1_ap_int_odl: h1-ap-int-odl-state {
		pins = "gpio42";
		function = "gpio";
		bias-pull-up;
	};

	hp_irq: hp-irq-state {
		pins = "gpio28";
		function = "gpio";
		bias-pull-up;
	};

	pen_irq_l: pen-irq-l-state {
		pins = "gpio21";
		function = "gpio";

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

	pen_pdct_l: pen-pdct-l-state-state {
		pins = "gpio52";
		function = "gpio";

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

	pen_rst_odl: pen-rst-odl-state {
		pins = "gpio18";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;

		/*
		 * The pen driver doesn't currently support
		 * driving this reset line.  By specifying
		 * output-high here we're relying on the fact
		 * that this pin has a default pulldown at boot
		 * (which makes sure the pen was in reset if it
		 * was powered) and then we set it high here to
		 * take it out of reset.  Better would be if the
		 * pen driver could control this and we could
		 * remove "output-high" here.
		 */
		output-high; /* TODO: Remove this? */
	};

	p_sensor_int_l: p-sensor-int-l-state {
		pins = "gpio24";
		function = "gpio";

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

	qspi_sleep: qspi-sleep-state {
		pins = "gpio63", "gpio64", "gpio65", "gpio68";

		/*
		 * When we're not actively transferring we want pins as GPIOs
		 * with output disabled so that the quad SPI IP block stops
		 * driving them. We rely on the normal pulls configured in
		 * the active state and don't redefine them here. Also note
		 * that we don't need the reverse (output-enable) in the
		 * normal mode since the "output-enable" only matters for
		 * GPIO function.
		 */
		function = "gpio";
		output-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;
		};
	};

	/* Named trackpad_int_1v8_odl on earlier revision schematics */
	trackpad_int_1v8_odl:
	tp_int_odl: tp-int-odl-state {
		pins = "gpio0";
		function = "gpio";

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

	ts_int_l: ts-int-l-state {
		pins = "gpio9";
		function = "gpio";
		bias-pull-up;
	};

	ts_reset_l: ts-reset-l-state {
		pins = "gpio8";
		function = "gpio";
		bias-disable;

		/*
		 * The reset GPIO to the touchscreen takes almost 2ms to drop
		 * at the default drive strength. When we bump it up to 8mA it
		 * falls in under 500us. We want this to be fast since the Elan
		 * datasheet (and any drivers written based on it) talk about using
		 * a 500 us reset pulse.
		 */
		drive-strength = <8>;
	};

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

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

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

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

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

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

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

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

	sdc2_on: sdc2-on-state {
		clk-pins {
			pins = "sdc2_clk";
			bias-disable;
			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>;
		};

		sd-cd-pins {
			pins = "gpio69";
			function = "gpio";
			bias-pull-up;
			drive-strength = <2>;
		};
	};

	sdc2_off: sdc2-off-state {
		clk-pins {
			pins = "sdc2_clk";
			bias-disable;
			drive-strength = <2>;
		};

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

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

		sd-cd-pins {
			pins = "gpio69";
			function = "gpio";
			bias-pull-up;
			drive-strength = <2>;
		};
	};

	uf_cam_en: uf-cam-en-state {
		pins = "gpio6";
		function = "gpio";
		drive-strength = <2>;

		/* External pull down */
		bias-disable;
	};

	wf_cam_en: wf-cam-en-state {
		pins = "gpio7";
		function = "gpio";
		drive-strength = <2>;

		/* External pull down */
		bias-disable;
	};
};
