// SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
#include "qcom-msm8660.dtsi"
#include "pm8058.dtsi"

/ {
	model = "Qualcomm APQ8060 Dragonboard";
	compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";

	aliases {
		serial0 = &gsbi12_serial;
	};

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

	/* Main power of the board: 3.7V */
	vph: regulator-fixed {
		compatible = "regulator-fixed";
		regulator-min-microvolt = <3700000>;
		regulator-max-microvolt = <3700000>;
		regulator-name = "VPH";
		regulator-always-on;
		regulator-boot-on;
	};

	/* GPIO controlled ethernet power regulator */
	dragon_veth: xc622a331mrg {
		compatible = "regulator-fixed";
		regulator-name = "XC6222A331MR-G";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vph>;
		gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&dragon_veth_gpios>;
		regulator-always-on;
	};

	/* VDDvario fixed regulator */
	dragon_vario: nds332p {
		compatible = "regulator-fixed";
		regulator-name = "NDS332P";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&pm8058_s3>;
	};

	/* This is a levelshifter for SDCC5 */
	dragon_vio_txb: txb0104rgyr {
		compatible = "regulator-fixed";
		regulator-name = "Dragon SDCC levelshifter";
		vin-supply = <&pm8058_l14>;
		regulator-always-on;
	};

	/*
	 * Capella CM3605 light and proximity sensor mounted directly
	 * on the sensor board.
	 */
	cm3605 {
		compatible = "capella,cm3605";
		vdd-supply = <&pm8058_l14>; // 2.85V
		aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>;
		capella,aset-resistance-ohms = <100000>;
		/* Trig on both edges - getting close or far away */
		interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>;
		/* MPP05 analog input to the XOADC */
		io-channels = <&pm8058_xoadc 0x00 0x05>;
		io-channel-names = "aout";
		pinctrl-names = "default";
		pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>;
	};
};

&ebi2 {
	/* The EBI2 will instantiate first, then populate its children */
	pinctrl-names = "default";
	pinctrl-0 = <&dragon_ebi2_pins>;
	status = "okay";

	/*
	 * An on-board SMSC LAN9221 chip for "debug ethernet",
	 * which is actually just an ordinary ethernet on the
	 * EBI2. This has a 25MHz chrystal next to it, so no
	 * clocking is needed.
	 */
	ethernet@2,0 {
		compatible = "smsc,lan9221", "smsc,lan9115";
		reg = <2 0x0 0x100>;
		/*
		 * The second interrupt is the PME interrupt
		 * for network wakeup, connected to the TLMM.
		 */
		interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>,
				    <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
		reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
		vdd33a-supply = <&dragon_veth>;
		vddvario-supply = <&dragon_vario>;
		pinctrl-names = "default";
		pinctrl-0 = <&dragon_ethernet_gpios>;
		phy-mode = "mii";
		reg-io-width = <2>;
		smsc,force-external-phy;
		smsc,irq-push-pull;

		/*
		 * SLOW chipselect config
		 * Delay 9 cycles (140ns@64MHz) between SMSC
		 * LAN9221 Ethernet controller reads and writes
		 * on CS2.
		 */
		qcom,xmem-recovery-cycles = <0>;
		qcom,xmem-write-hold-cycles = <3>;
		qcom,xmem-write-delta-cycles = <31>;
		qcom,xmem-read-delta-cycles = <28>;
		qcom,xmem-write-wait-cycles = <9>;
		qcom,xmem-read-wait-cycles = <9>;
	};
};

&gsbi3 {
	qcom,mode = <GSBI_PROT_I2C>;
	status = "okay";
};

&gsbi3_i2c {
	pinctrl-names = "default";
	pinctrl-0 = <&dragon_gsbi3_i2c_pins>;
	status = "okay";

	touchscreen@24 {
		compatible = "cypress,cy8ctma340";
		reg = <0x24>;
		/* Certainly we can do at least 400 kHz */
		clock-frequency = <400000>;
		/* IRQ on GPIO61 called /CTP_INT */
		interrupt-parent = <&tlmm>;
		interrupts = <61 IRQ_TYPE_EDGE_FALLING>;
		/*
		 * The I2C bus is using a PCA9306 level translator from L16A
		 * to L2B so these two voltages are needed and L16A is
		 * kind of the IO voltage, however L16Aisn't really fed to
		 * the TMA340, which relies entirely on L2B (PM8901 L2).
		 */
		vcpin-supply = <&pm8058_l16>;
		vdd-supply = <&pm8901_l2>;
		/* GPIO58, called WAKE_CTP */
		reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
		touchscreen-size-x = <480>;
		touchscreen-size-y = <800>;
		active-interval-ms = <0>;
		touch-timeout-ms = <255>;
		lowpower-interval-ms = <10>;
		bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
		pinctrl-names = "default";
		pinctrl-0 = <&dragon_tma340_gpios>;
	};
};

&gsbi8 {
	qcom,mode = <GSBI_PROT_I2C>;
	status = "okay";
};

&gsbi8_i2c {
	pinctrl-names = "default";
	pinctrl-0 = <&dragon_gsbi8_i2c_pins>;
	status = "okay";

	eeprom@52 {
		/* A 16KiB Platform ID EEPROM on the CPU carrier board */
		compatible = "atmel,24c128";
		reg = <0x52>;
		vcc-supply = <&pm8058_s3>;
		pagesize = <64>;
	};
	wm8903: wm8903@1a {
		/* This Woolfson Micro device has an unrouted interrupt line */
		compatible = "wlf,wm8903";
		reg = <0x1a>;

		AVDD-supply = <&pm8058_l16>;
		CPVDD-supply = <&pm8058_l16>;
		DBVDD-supply = <&pm8058_s3>;
		DCVDD-supply = <&pm8058_l0>;

		gpio-controller;
		#gpio-cells = <2>;

		micdet-cfg = <0>;
		micdet-delay = <100>;
		gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
	};
};

&gsbi12 {
	qcom,mode = <GSBI_PROT_I2C_UART>;
	status = "okay";
};

&gsbi12_serial {
	pinctrl-names = "default";
	pinctrl-0 = <&dragon_gsbi12_serial_pins>;
	status = "okay";
};

&gsbi12_i2c {
	pinctrl-names = "default";
	pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
	status = "okay";

	ak8975@c {
		compatible = "asahi-kasei,ak8975";
		reg = <0x0c>;
		interrupt-parent = <&pm8058_gpio>;
		interrupts = <33 IRQ_TYPE_EDGE_RISING>;
		pinctrl-names = "default";
		pinctrl-0 = <&dragon_ak8975_gpios>;
		vid-supply = <&pm8058_lvs0>; // 1.8V
		vdd-supply = <&pm8058_l14>; // 2.85V
	};
	bmp085@77 {
		compatible = "bosch,bmp085";
		reg = <0x77>;
		interrupt-parent = <&pm8058_gpio>;
		interrupts = <16 IRQ_TYPE_EDGE_RISING>;
		reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&dragon_bmp085_gpios>;
		vddd-supply = <&pm8058_lvs0>; // 1.8V
		vdda-supply = <&pm8058_l14>; // 2.85V
	};
	mpu3050@68 {
		compatible = "invensense,mpu3050";
		reg = <0x68>;
		/*
		 * GPIO17 is pulled high by a 10k
		 * resistor to VLOGIC so needs to be
		 * active low/falling edge.
		 */
		interrupts-extended = <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>;
		pinctrl-names = "default";
		pinctrl-0 = <&dragon_mpu3050_gpios>;
		vlogic-supply = <&pm8058_lvs0>; // 1.8V
		vdd-supply = <&pm8058_l14>; // 2.85V

		/*
		 * The MPU-3050 acts as a hub for the
		 * accelerometer.
		 */
		i2c-gate {
			#address-cells = <1>;
			#size-cells = <0>;

			kxsd9@18 {
				compatible = "kionix,kxsd9";
				reg = <0x18>;
				interrupt-parent = <&tlmm>;
				interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
				pinctrl-names = "default";
				pinctrl-0 = <&dragon_kxsd9_gpios>;
				iovdd-supply = <&pm8058_lvs0>; // 1.8V
				vdd-supply = <&pm8058_l14>; // 2.85V
			};
		};
	};
};

&pm8058 {
	interrupts-extended = <&tlmm 88 IRQ_TYPE_LEVEL_LOW>;
};

&pm8058_gpio {
	dragon_ethernet_gpios: ethernet-state {
		pinconf {
			pins = "gpio7";
			function = "normal";
			input-enable;
			bias-disable;
			power-source = <PM8058_GPIO_S3>;
		};
	};
	dragon_bmp085_gpios: bmp085-state {
		pinconf {
			pins = "gpio16";
			function = "normal";
			input-enable;
			bias-disable;
			power-source = <PM8058_GPIO_S3>;
		};
	};
	dragon_mpu3050_gpios: mpu3050-state {
		pinconf {
			pins = "gpio17";
			function = "normal";
			input-enable;
			bias-disable;
			power-source = <PM8058_GPIO_S3>;
		};
	};
	dragon_sdcc3_gpios: sdcc3-state {
		pinconf {
			pins = "gpio22";
			function = "normal";
			input-enable;
			bias-disable;
			power-source = <PM8058_GPIO_S3>;
		};
	};
	dragon_sdcc5_gpios: sdcc5-state {
		pinconf {
			pins = "gpio26";
			function = "normal";
			input-enable;
			bias-pull-up;
			qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>;
			power-source = <PM8058_GPIO_S3>;
		};
	};
	dragon_ak8975_gpios: ak8975-state {
		pinconf {
			pins = "gpio33";
			function = "normal";
			input-enable;
			bias-disable;
			power-source = <PM8058_GPIO_S3>;
		};
	};
	dragon_cm3605_gpios: cm3605-state {
		/* Pin 34 connected to the proxy IRQ */
		gpio34-pins {
			pins = "gpio34";
			function = "normal";
			input-enable;
			bias-disable;
			power-source = <PM8058_GPIO_S3>;
		};
		/* Pin 35 connected to ASET */
		gpio35-pins {
			pins = "gpio35";
			function = "normal";
			output-high;
			bias-disable;
			power-source = <PM8058_GPIO_S3>;
		};
	};
	dragon_veth_gpios: veth-state {
		pinconf {
			pins = "gpio40";
			function = "normal";
			bias-disable;
			drive-push-pull;
		};
	};
};

&pm8058_keypad {
	linux,keymap = <
		MATRIX_KEY(0, 0, KEY_MENU)
		MATRIX_KEY(0, 2, KEY_1)
		MATRIX_KEY(0, 3, KEY_4)
		MATRIX_KEY(0, 4, KEY_7)
		MATRIX_KEY(1, 0, KEY_UP)
		MATRIX_KEY(1, 1, KEY_LEFT)
		MATRIX_KEY(1, 2, KEY_DOWN)
		MATRIX_KEY(1, 3, KEY_5)
		MATRIX_KEY(1, 3, KEY_8)
		MATRIX_KEY(2, 0, KEY_HOME)
		MATRIX_KEY(2, 1, KEY_REPLY)
		MATRIX_KEY(2, 2, KEY_2)
		MATRIX_KEY(2, 3, KEY_6)
		MATRIX_KEY(3, 0, KEY_VOLUMEUP)
		MATRIX_KEY(3, 1, KEY_RIGHT)
		MATRIX_KEY(3, 2, KEY_3)
		MATRIX_KEY(3, 3, KEY_9)
		MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE)
		MATRIX_KEY(4, 0, KEY_VOLUMEDOWN)
		MATRIX_KEY(4, 1, KEY_BACK)
		MATRIX_KEY(4, 2, KEY_CAMERA)
		MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE)
	>;
	keypad,num-rows = <6>;
	keypad,num-columns = <5>;
};

&pm8058_led48 {
	/*
	 * The keypad LED @0x48 is routed to
	 * the sensor board where it is
	 * connected to an infrared LED
	 * SFH4650 (60mW, @850nm) next to the
	 * ambient light and proximity sensor
	 * Capella Microsystems CM3605.
	 */
	label = "pm8058:infrared:proximitysensor";
	default-state = "off";
	linux,default-trigger = "cm3605";
	status = "okay";
};

&pm8058_led131 {
	label = "pm8058:red";
	color = <LED_COLOR_ID_RED>;
	default-state = "off";
	status = "okay";
};

&pm8058_led132 {
	/*
	 * This is actually green too on my
	 * board, but documented as yellow.
	 */
	label = "pm8058:yellow";
	color = <LED_COLOR_ID_YELLOW>;
	default-state = "off";
	linux,default-trigger = "mmc0";
	status = "okay";
};

&pm8058_led133 {
	label = "pm8058:green";
	function = LED_FUNCTION_HEARTBEAT;
	color = <LED_COLOR_ID_GREEN>;
	default-state = "on";
	linux,default-trigger = "heartbeat";
	status = "okay";
};

&pm8058_mpps {
	dragon_cm3605_mpps: cm3605-mpps-state {
		pins = "mpp5";
		function = "analog";
		input-enable;
		bias-high-impedance;
		/* Let's use channel 5 */
		qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>;
		power-source = <PM8058_GPIO_S3>;
	};
};

&rpm {
	/*
	 * Set up of the PMIC RPM regulators for this board
	 * PM8901 supplies "preliminary regulators" whatever
	 * that means
	 */
	regulators-0 {
		compatible = "qcom,rpm-pm8901-regulators";

		vdd_l0-supply = <&pm8901_s4>;
		vdd_l1-supply = <&vph>;
		vdd_l2-supply = <&vph>;
		vdd_l3-supply = <&vph>;
		vdd_l4-supply = <&vph>;
		vdd_l5-supply = <&vph>;
		vdd_l6-supply = <&vph>;
		/* vdd_s0-supply, vdd_s1-supply: SAW regulators */
		vdd_s2-supply = <&vph>;
		vdd_s3-supply = <&vph>;
		vdd_s4-supply = <&vph>;
		lvs0_in-supply = <&pm8058_s3>;
		lvs1_in-supply = <&pm8901_s4>;
		lvs2_in-supply = <&pm8058_l0>;
		lvs3_in-supply = <&pm8058_s2>;
		mvs_in-supply = <&pm8058_s3>;

		pm8901_l0: l0 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		pm8901_l1: l1 {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};

		pm8901_l2: l2 {
			/* TMA340 requires strictly 3.3V */
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};

		pm8901_l3: l3 {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};

		pm8901_l4: l4 {
			regulator-min-microvolt = <2600000>;
			regulator-max-microvolt = <2600000>;
			bias-pull-down;
		};

		pm8901_l5: l5 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};

		pm8901_l6: l6 {
			regulator-min-microvolt = <2200000>;
			regulator-max-microvolt = <2200000>;
			bias-pull-down;
		};

		/* s0 and s1 are SAW regulators controlled over SPM */
		pm8901_s2: s2 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1300000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};
		pm8901_s3: s3 {
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1100000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};
		pm8901_s4: s4 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};

		/* LVS0 thru 3 and mvs are just switches */
		pm8901_lvs0: lvs0 {
			regulator-always-on;
		};

		pm8901_lvs1: lvs1 { };

		pm8901_lvs2: lvs2 { };

		pm8901_lvs3: lvs3 { };

		pm8901_mvs: mvs { };
	};

	regulators-1 {
		compatible = "qcom,rpm-pm8058-regulators";

		vdd_l0_l1_lvs-supply = <&pm8058_s3>;
		vdd_l2_l11_l12-supply = <&vph>;
		vdd_l3_l4_l5-supply = <&vph>;
		vdd_l6_l7-supply = <&vph>;
		vdd_l8-supply = <&vph>;
		vdd_l9-supply = <&vph>;
		vdd_l10-supply = <&vph>;
		vdd_l13_l16-supply = <&pm8058_s4>;
		vdd_l14_l15-supply = <&vph>;
		vdd_l17_l18-supply = <&vph>;
		vdd_l19_l20-supply = <&vph>;
		vdd_l21-supply = <&pm8058_s3>;
		vdd_l22-supply = <&pm8058_s3>;
		vdd_l23_l24_l25-supply = <&pm8058_s3>;
		vdd_s0-supply = <&vph>;
		vdd_s1-supply = <&vph>;
		vdd_s2-supply = <&vph>;
		vdd_s3-supply = <&vph>;
		vdd_s4-supply = <&vph>;
		vdd_ncp-supply = <&vph>;

		pm8058_l0: l0 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		pm8058_l1: l1 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		pm8058_l2: l2 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2600000>;
			bias-pull-down;
		};

		pm8058_l3: l3 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};

		pm8058_l4: l4 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};

		pm8058_l5: l5 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};

		pm8058_l6: l6 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3600000>;
			bias-pull-down;
		};

		pm8058_l7: l7 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};

		pm8058_l8: l8 {
			regulator-min-microvolt = <2900000>;
			regulator-max-microvolt = <3050000>;
			bias-pull-down;
		};

		pm8058_l9: l9 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};

		pm8058_l10: l10 {
			regulator-min-microvolt = <2600000>;
			regulator-max-microvolt = <2600000>;
			bias-pull-down;
		};

		pm8058_l11: l11 {
			regulator-min-microvolt = <1500000>;
			regulator-max-microvolt = <1500000>;
			bias-pull-down;
		};

		pm8058_l12: l12 {
			regulator-min-microvolt = <2900000>;
			regulator-max-microvolt = <2900000>;
			bias-pull-down;
		};

		pm8058_l13: l13 {
			regulator-min-microvolt = <2050000>;
			regulator-max-microvolt = <2050000>;
			bias-pull-down;
		};

		pm8058_l14: l14 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
		};

		pm8058_l15: l15 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};

		pm8058_l16: l16 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
			regulator-always-on;
		};

		pm8058_l17: l17 {
			// 1.5V according to schematic
			regulator-min-microvolt = <2600000>;
			regulator-max-microvolt = <2600000>;
			bias-pull-down;
		};

		pm8058_l18: l18 {
			regulator-min-microvolt = <2200000>;
			regulator-max-microvolt = <2200000>;
			bias-pull-down;
		};

		pm8058_l19: l19 {
			regulator-min-microvolt = <2500000>;
			regulator-max-microvolt = <2500000>;
			bias-pull-down;
		};

		pm8058_l20: l20 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};

		pm8058_l21: l21 {
			// 1.1 V according to schematic
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
			regulator-always-on;
		};

		pm8058_l22: l22 {
			// 1.2 V according to schematic
			regulator-min-microvolt = <1150000>;
			regulator-max-microvolt = <1150000>;
			bias-pull-down;
		};

		pm8058_l23: l23 {
			// Unused
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		pm8058_l24: l24 {
			// Unused
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		pm8058_l25: l25 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		pm8058_s0: s0 {
			// regulator-min-microvolt = <500000>;
			// regulator-max-microvolt = <1325000>;
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1100000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};

		pm8058_s1: s1 {
			// regulator-min-microvolt = <500000>;
			// regulator-max-microvolt = <1250000>;
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1100000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};

		pm8058_s2: s2 {
			// 1.3 V according to schematic
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1400000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};

		pm8058_s3: s3 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			qcom,switch-mode-frequency = <1600000>;
			regulator-always-on;
			bias-pull-down;
		};

		pm8058_s4: s4 {
			regulator-min-microvolt = <2200000>;
			regulator-max-microvolt = <2200000>;
			qcom,switch-mode-frequency = <1600000>;
			regulator-always-on;
			bias-pull-down;
		};

		/* LVS0 and LVS1 are just switches */
		pm8058_lvs0: lvs0 {
			bias-pull-down;
		};

		pm8058_lvs1: lvs1 {
			bias-pull-down;
		};

		pm8058_ncp: ncp {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			qcom,switch-mode-frequency = <1600000>;
		};
	};
};

/* Internal 3.69 GiB eMMC */
&sdcc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&dragon_sdcc1_pins>;
	vmmc-supply = <&pm8901_l5>;
	vqmmc-supply = <&pm8901_lvs0>;
	status = "okay";
};

/* External micro SD card, directly connected, pulled up to 2.85 V */
&sdcc3 {
	/* Enable SSBI GPIO 22 as input, use for card detect */
	pinctrl-names = "default";
	pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>;
	cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>;
	wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
	vmmc-supply = <&pm8058_l14>;
	status = "okay";
};

/*
 * Second external micro SD card, using two TXB104RGYR levelshifters
 * to lift from 1.8 V to 2.85 V
 */
&sdcc5 {
	/* Enable SSBI GPIO 26 as input, use for card detect */
	pinctrl-names = "default";
	pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>;
	cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>;
	wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>;
	vmmc-supply = <&pm8058_l14>;
	vqmmc-supply = <&dragon_vio_txb>;
	status = "okay";
};

&tlmm {
	/* eMMC pins, all 8 data lines connected */
	dragon_sdcc1_pins: sdcc1-state {
		clk-pins {
			pins = "gpio167"; /* SDC1 CLK */
			function = "sdc1";
			drive-strength = <16>;
			bias-disable;
		};
		cmd-pins {
			pins = "gpio168"; /* SDC1 CMD */
			function = "sdc1";
			drive-strength = <10>;
			bias-pull-up;
		};
		data-pins {
			/* SDC1 D0 to D7 */
			pins = "gpio159", "gpio160", "gpio161", "gpio162",
			     "gpio163", "gpio164", "gpio165", "gpio166";
			function = "sdc1";
			drive-strength = <10>;
			bias-pull-up;
		};
	};

	/*
	 * The SDCC3 pins are hardcoded (non-muxable) but need some pin
	 * configuration.
	 */
	dragon_sdcc3_pins: sdcc3-state {
		clk-pins {
			pins = "sdc3_clk";
			drive-strength = <8>;
			bias-disable;
		};
		cmd-pins {
			pins = "sdc3_cmd";
			drive-strength = <8>;
			bias-pull-up;
		};
		data-pins {
			pins = "sdc3_data";
			drive-strength = <8>;
			bias-pull-up;
		};
	};

	/* Second SD card slot pins */
	dragon_sdcc5_pins: sdcc5-state {
		clk-pins {
			pins = "gpio97"; /* SDC5 CLK */
			function = "sdc5";
			drive-strength = <16>;
			bias-disable;
		};
		cmd-pins {
			pins = "gpio95"; /* SDC5 CMD */
			function = "sdc5";
			drive-strength = <10>;
			bias-pull-up;
		};
		data-pins {
			/* SDC5 D0 to D3 */
			pins = "gpio96", "gpio98", "gpio99", "gpio100";
			function = "sdc5";
			drive-strength = <10>;
			bias-pull-up;
		};
	};

	dragon_gsbi3_i2c_pins: gsbi3-i2c-state {
		pins = "gpio43", "gpio44";
		function = "gsbi3";
		drive-strength = <8>;
		/* These have external pull-up 2.2kOhm to 1.8V */
		bias-disable;
	};

	dragon_gsbi8_i2c_pins: gsbi8-i2c-state {
		pins = "gpio64", "gpio65";
		function = "gsbi8";
		drive-strength = <16>;
		/* These have external pull-up 2.2kOhm to 1.8V */
		bias-disable;
	};

	dragon_gsbi12_i2c_pins: gsbi12-i2c-state {
		pins = "gpio115", "gpio116";
		function = "gsbi12";
		drive-strength = <16>;
		/* These have external pull-up 4.7kOhm to 1.8V */
		bias-disable;
	};

	/* Primary serial port uart 0 pins */
	dragon_gsbi12_serial_pins: gsbi12-serial-state {
		tx-pins {
			pins = "gpio117";
			function = "gsbi12";
			drive-strength = <8>;
			bias-disable;
		};
		rx-pins {
			pins = "gpio118";
			function = "gsbi12";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	dragon_ebi2_pins: ebi2-state {
		/*
		 * Pins used by EBI2 on the Dragonboard, actually only
		 * CS2 is used by a real peripheral. CS0 is just
		 * routed to a test point.
		 */
		mux0-pins {
			pins =
			    /* "gpio39", CS1A_N this is not good to mux */
			    "gpio40", /* CS2A_N */
			    "gpio134"; /* CS0_N testpoint TP29 */
			function = "ebi2cs";
		};
		mux1-pins {
			pins =
			    /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */
			    "gpio123", "gpio124", "gpio125", "gpio126",
			    "gpio127", "gpio128", "gpio129", "gpio130",
			    /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */
			    "gpio135", "gpio136", "gpio137", "gpio138",
			    "gpio139", "gpio140", "gpio141", "gpio142",
			    "gpio143", "gpio144", "gpio145", "gpio146",
			    "gpio147", "gpio148", "gpio149", "gpio150",
			    "gpio151", /* EBI2_OE_N */
			    "gpio153", /* EBI2_ADV */
			    "gpio157"; /* EBI2_WE_N */
			function = "ebi2";
		};
	};

	/* Interrupt line for the KXSD9 accelerometer */
	dragon_kxsd9_gpios: kxsd9-state {
		pins = "gpio57"; /* IRQ line */
		function = "gpio";
		bias-pull-up;
	};

	dragon_tma340_gpios: tma340-state {
		reset-pins {
			/* RESET line, TS_ATTN, WAKE_CTP */
			pins = "gpio58";
			function = "gpio";
			drive-strength = <6>;
			bias-disable;
		};
		irq-pins {
			pins = "gpio61"; /* IRQ line */
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};
};

&pm8058_xoadc {
	/* Reference voltage 2.2 V */
	xoadc-ref-supply = <&pm8058_l18>;

	/* Board-specific channels */
	adc-channel@5 {
		/* Connected to AOUT of ALS sensor */
		reg = <0x00 0x05>;
	};

	adc-channel@6 {
		/* Connected to test point TP43 */
		reg = <0x00 0x06>;
	};

	adc-channel@7 {
		/* Connected to battery thermistor */
		reg = <0x00 0x07>;
	};

	adc-channel@8 {
		/* Connected to battery ID detector */
		reg = <0x00 0x08>;
	};

	adc-channel@9 {
		/* Connected to XO thermistor */
		reg = <0x00 0x09>;
	};
};
