// 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"

/ {
	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 = <&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_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 {
		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>;

		l0 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};
		l1 {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};
		l2 {
			/* TMA340 requires strictly 3.3V */
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};
		l3 {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};
		l4 {
			regulator-min-microvolt = <2600000>;
			regulator-max-microvolt = <2600000>;
			bias-pull-down;
		};
		l5 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};
		l6 {
			regulator-min-microvolt = <2200000>;
			regulator-max-microvolt = <2200000>;
			bias-pull-down;
		};

		/* s0 and s1 are SAW regulators controlled over SPM */
		s2 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1300000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};
		s3 {
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1100000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};
		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 */
		lvs0 {
			regulator-always-on;
		};
		lvs1 { };
		lvs2 { };
		lvs3 { };
		mvs { };

	};

	regulators-1 {
		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>;

		l0 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};
		l1 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};
		l2 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2600000>;
			bias-pull-down;
		};
		l3 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};
		l4 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};
		l5 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};
		l6 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3600000>;
			bias-pull-down;
		};
		l7 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};
		l8 {
			regulator-min-microvolt = <2900000>;
			regulator-max-microvolt = <3050000>;
			bias-pull-down;
		};
		l9 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};
		l10 {
			regulator-min-microvolt = <2600000>;
			regulator-max-microvolt = <2600000>;
			bias-pull-down;
		};
		l11 {
			regulator-min-microvolt = <1500000>;
			regulator-max-microvolt = <1500000>;
			bias-pull-down;
		};
		l12 {
			regulator-min-microvolt = <2900000>;
			regulator-max-microvolt = <2900000>;
			bias-pull-down;
		};
		l13 {
			regulator-min-microvolt = <2050000>;
			regulator-max-microvolt = <2050000>;
			bias-pull-down;
		};
		l14 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
		};
		l15 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};
		l16 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
			regulator-always-on;
		};
		l17 {
			// 1.5V according to schematic
			regulator-min-microvolt = <2600000>;
			regulator-max-microvolt = <2600000>;
			bias-pull-down;
		};
		l18 {
			regulator-min-microvolt = <2200000>;
			regulator-max-microvolt = <2200000>;
			bias-pull-down;
		};
		l19 {
			regulator-min-microvolt = <2500000>;
			regulator-max-microvolt = <2500000>;
			bias-pull-down;
		};
		l20 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};
		l21 {
			// 1.1 V according to schematic
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
			regulator-always-on;
		};
		l22 {
			// 1.2 V according to schematic
			regulator-min-microvolt = <1150000>;
			regulator-max-microvolt = <1150000>;
			bias-pull-down;
		};
		l23 {
			// Unused
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};
		l24 {
			// Unused
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};
		l25 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		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;
		};
		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;
		};
		s2 {
			// 1.3 V according to schematic
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1400000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};
		s3 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			qcom,switch-mode-frequency = <1600000>;
			regulator-always-on;
			bias-pull-down;
		};
		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 */
		lvs0 {
			bias-pull-down;
		};
		lvs1 {
			bias-pull-down;
		};

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

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

	/* Board-specific channels */
	mpp5@5 {
		/* Connected to AOUT of ALS sensor */
		reg = <0x00 0x05>;
	};
	mpp6@6 {
		/* Connected to test point TP43 */
		reg = <0x00 0x06>;
	};
	mpp7@7 {
		/* Connected to battery thermistor */
		reg = <0x00 0x07>;
	};
	mpp8@8 {
		/* Connected to battery ID detector */
		reg = <0x00 0x08>;
	};
	mpp9@9 {
		/* Connected to XO thermistor */
		reg = <0x00 0x09>;
	};
};
