162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
362306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
462306a36Sopenharmony_ci#include <dt-bindings/leds/common.h>
562306a36Sopenharmony_ci#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
662306a36Sopenharmony_ci#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
762306a36Sopenharmony_ci#include "qcom-msm8660.dtsi"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/ {
1062306a36Sopenharmony_ci	model = "Qualcomm APQ8060 Dragonboard";
1162306a36Sopenharmony_ci	compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	aliases {
1462306a36Sopenharmony_ci		serial0 = &gsbi12_serial;
1562306a36Sopenharmony_ci	};
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	chosen {
1862306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
1962306a36Sopenharmony_ci	};
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci	/* Main power of the board: 3.7V */
2262306a36Sopenharmony_ci	vph: regulator-fixed {
2362306a36Sopenharmony_ci		compatible = "regulator-fixed";
2462306a36Sopenharmony_ci		regulator-min-microvolt = <3700000>;
2562306a36Sopenharmony_ci		regulator-max-microvolt = <3700000>;
2662306a36Sopenharmony_ci		regulator-name = "VPH";
2762306a36Sopenharmony_ci		regulator-type = "voltage";
2862306a36Sopenharmony_ci		regulator-always-on;
2962306a36Sopenharmony_ci		regulator-boot-on;
3062306a36Sopenharmony_ci	};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	/* GPIO controlled ethernet power regulator */
3362306a36Sopenharmony_ci	dragon_veth: xc622a331mrg {
3462306a36Sopenharmony_ci		compatible = "regulator-fixed";
3562306a36Sopenharmony_ci		regulator-name = "XC6222A331MR-G";
3662306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
3762306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
3862306a36Sopenharmony_ci		vin-supply = <&vph>;
3962306a36Sopenharmony_ci		gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>;
4062306a36Sopenharmony_ci		enable-active-high;
4162306a36Sopenharmony_ci		pinctrl-names = "default";
4262306a36Sopenharmony_ci		pinctrl-0 = <&dragon_veth_gpios>;
4362306a36Sopenharmony_ci		regulator-always-on;
4462306a36Sopenharmony_ci	};
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci	/* VDDvario fixed regulator */
4762306a36Sopenharmony_ci	dragon_vario: nds332p {
4862306a36Sopenharmony_ci		compatible = "regulator-fixed";
4962306a36Sopenharmony_ci		regulator-name = "NDS332P";
5062306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
5162306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
5262306a36Sopenharmony_ci		vin-supply = <&pm8058_s3>;
5362306a36Sopenharmony_ci	};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci	/* This is a levelshifter for SDCC5 */
5662306a36Sopenharmony_ci	dragon_vio_txb: txb0104rgyr {
5762306a36Sopenharmony_ci		compatible = "regulator-fixed";
5862306a36Sopenharmony_ci		regulator-name = "Dragon SDCC levelshifter";
5962306a36Sopenharmony_ci		vin-supply = <&pm8058_l14>;
6062306a36Sopenharmony_ci		regulator-always-on;
6162306a36Sopenharmony_ci	};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	/*
6462306a36Sopenharmony_ci	 * Capella CM3605 light and proximity sensor mounted directly
6562306a36Sopenharmony_ci	 * on the sensor board.
6662306a36Sopenharmony_ci	 */
6762306a36Sopenharmony_ci	cm3605 {
6862306a36Sopenharmony_ci		compatible = "capella,cm3605";
6962306a36Sopenharmony_ci		vdd-supply = <&pm8058_l14>; // 2.85V
7062306a36Sopenharmony_ci		aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>;
7162306a36Sopenharmony_ci		capella,aset-resistance-ohms = <100000>;
7262306a36Sopenharmony_ci		/* Trig on both edges - getting close or far away */
7362306a36Sopenharmony_ci		interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>;
7462306a36Sopenharmony_ci		/* MPP05 analog input to the XOADC */
7562306a36Sopenharmony_ci		io-channels = <&pm8058_xoadc 0x00 0x05>;
7662306a36Sopenharmony_ci		io-channel-names = "aout";
7762306a36Sopenharmony_ci		pinctrl-names = "default";
7862306a36Sopenharmony_ci		pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>;
7962306a36Sopenharmony_ci	};
8062306a36Sopenharmony_ci};
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci&ebi2 {
8362306a36Sopenharmony_ci	/* The EBI2 will instantiate first, then populate its children */
8462306a36Sopenharmony_ci	pinctrl-names = "default";
8562306a36Sopenharmony_ci	pinctrl-0 = <&dragon_ebi2_pins>;
8662306a36Sopenharmony_ci	status = "okay";
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci	/*
8962306a36Sopenharmony_ci	 * An on-board SMSC LAN9221 chip for "debug ethernet",
9062306a36Sopenharmony_ci	 * which is actually just an ordinary ethernet on the
9162306a36Sopenharmony_ci	 * EBI2. This has a 25MHz chrystal next to it, so no
9262306a36Sopenharmony_ci	 * clocking is needed.
9362306a36Sopenharmony_ci	 */
9462306a36Sopenharmony_ci	ethernet@2,0 {
9562306a36Sopenharmony_ci		compatible = "smsc,lan9221", "smsc,lan9115";
9662306a36Sopenharmony_ci		reg = <2 0x0 0x100>;
9762306a36Sopenharmony_ci		/*
9862306a36Sopenharmony_ci		 * The second interrupt is the PME interrupt
9962306a36Sopenharmony_ci		 * for network wakeup, connected to the TLMM.
10062306a36Sopenharmony_ci		 */
10162306a36Sopenharmony_ci		interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>,
10262306a36Sopenharmony_ci				    <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
10362306a36Sopenharmony_ci		reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
10462306a36Sopenharmony_ci		vdd33a-supply = <&dragon_veth>;
10562306a36Sopenharmony_ci		vddvario-supply = <&dragon_vario>;
10662306a36Sopenharmony_ci		pinctrl-names = "default";
10762306a36Sopenharmony_ci		pinctrl-0 = <&dragon_ethernet_gpios>;
10862306a36Sopenharmony_ci		phy-mode = "mii";
10962306a36Sopenharmony_ci		reg-io-width = <2>;
11062306a36Sopenharmony_ci		smsc,force-external-phy;
11162306a36Sopenharmony_ci		smsc,irq-push-pull;
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci		/*
11462306a36Sopenharmony_ci		 * SLOW chipselect config
11562306a36Sopenharmony_ci		 * Delay 9 cycles (140ns@64MHz) between SMSC
11662306a36Sopenharmony_ci		 * LAN9221 Ethernet controller reads and writes
11762306a36Sopenharmony_ci		 * on CS2.
11862306a36Sopenharmony_ci		 */
11962306a36Sopenharmony_ci		qcom,xmem-recovery-cycles = <0>;
12062306a36Sopenharmony_ci		qcom,xmem-write-hold-cycles = <3>;
12162306a36Sopenharmony_ci		qcom,xmem-write-delta-cycles = <31>;
12262306a36Sopenharmony_ci		qcom,xmem-read-delta-cycles = <28>;
12362306a36Sopenharmony_ci		qcom,xmem-write-wait-cycles = <9>;
12462306a36Sopenharmony_ci		qcom,xmem-read-wait-cycles = <9>;
12562306a36Sopenharmony_ci	};
12662306a36Sopenharmony_ci};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci&gsbi3 {
12962306a36Sopenharmony_ci	qcom,mode = <GSBI_PROT_I2C>;
13062306a36Sopenharmony_ci	status = "okay";
13162306a36Sopenharmony_ci};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci&gsbi3_i2c {
13462306a36Sopenharmony_ci	pinctrl-names = "default";
13562306a36Sopenharmony_ci	pinctrl-0 = <&dragon_gsbi3_i2c_pins>;
13662306a36Sopenharmony_ci	status = "okay";
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci	touchscreen@24 {
13962306a36Sopenharmony_ci		compatible = "cypress,cy8ctma340";
14062306a36Sopenharmony_ci		reg = <0x24>;
14162306a36Sopenharmony_ci		/* Certainly we can do at least 400 kHz */
14262306a36Sopenharmony_ci		clock-frequency = <400000>;
14362306a36Sopenharmony_ci		/* IRQ on GPIO61 called /CTP_INT */
14462306a36Sopenharmony_ci		interrupt-parent = <&tlmm>;
14562306a36Sopenharmony_ci		interrupts = <61 IRQ_TYPE_EDGE_FALLING>;
14662306a36Sopenharmony_ci		/*
14762306a36Sopenharmony_ci		 * The I2C bus is using a PCA9306 level translator from L16A
14862306a36Sopenharmony_ci		 * to L2B so these two voltages are needed and L16A is
14962306a36Sopenharmony_ci		 * kind of the IO voltage, however L16Aisn't really fed to
15062306a36Sopenharmony_ci		 * the TMA340, which relies entirely on L2B (PM8901 L2).
15162306a36Sopenharmony_ci		 */
15262306a36Sopenharmony_ci		vcpin-supply = <&pm8058_l16>;
15362306a36Sopenharmony_ci		vdd-supply = <&pm8901_l2>;
15462306a36Sopenharmony_ci		/* GPIO58, called WAKE_CTP */
15562306a36Sopenharmony_ci		reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
15662306a36Sopenharmony_ci		touchscreen-size-x = <480>;
15762306a36Sopenharmony_ci		touchscreen-size-y = <800>;
15862306a36Sopenharmony_ci		active-interval-ms = <0>;
15962306a36Sopenharmony_ci		touch-timeout-ms = <255>;
16062306a36Sopenharmony_ci		lowpower-interval-ms = <10>;
16162306a36Sopenharmony_ci		bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
16262306a36Sopenharmony_ci		pinctrl-names = "default";
16362306a36Sopenharmony_ci		pinctrl-0 = <&dragon_tma340_gpios>;
16462306a36Sopenharmony_ci	};
16562306a36Sopenharmony_ci};
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci&gsbi8 {
16862306a36Sopenharmony_ci	qcom,mode = <GSBI_PROT_I2C>;
16962306a36Sopenharmony_ci	status = "okay";
17062306a36Sopenharmony_ci};
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci&gsbi8_i2c {
17362306a36Sopenharmony_ci	pinctrl-names = "default";
17462306a36Sopenharmony_ci	pinctrl-0 = <&dragon_gsbi8_i2c_pins>;
17562306a36Sopenharmony_ci	status = "okay";
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci	eeprom@52 {
17862306a36Sopenharmony_ci		/* A 16KiB Platform ID EEPROM on the CPU carrier board */
17962306a36Sopenharmony_ci		compatible = "atmel,24c128";
18062306a36Sopenharmony_ci		reg = <0x52>;
18162306a36Sopenharmony_ci		vcc-supply = <&pm8058_s3>;
18262306a36Sopenharmony_ci		pagesize = <64>;
18362306a36Sopenharmony_ci	};
18462306a36Sopenharmony_ci	wm8903: wm8903@1a {
18562306a36Sopenharmony_ci		/* This Woolfson Micro device has an unrouted interrupt line */
18662306a36Sopenharmony_ci		compatible = "wlf,wm8903";
18762306a36Sopenharmony_ci		reg = <0x1a>;
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci		AVDD-supply = <&pm8058_l16>;
19062306a36Sopenharmony_ci		CPVDD-supply = <&pm8058_l16>;
19162306a36Sopenharmony_ci		DBVDD-supply = <&pm8058_s3>;
19262306a36Sopenharmony_ci		DCVDD-supply = <&pm8058_l0>;
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci		gpio-controller;
19562306a36Sopenharmony_ci		#gpio-cells = <2>;
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci		micdet-cfg = <0>;
19862306a36Sopenharmony_ci		micdet-delay = <100>;
19962306a36Sopenharmony_ci		gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
20062306a36Sopenharmony_ci	};
20162306a36Sopenharmony_ci};
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci&gsbi12 {
20462306a36Sopenharmony_ci	qcom,mode = <GSBI_PROT_I2C_UART>;
20562306a36Sopenharmony_ci	status = "okay";
20662306a36Sopenharmony_ci};
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ci&gsbi12_serial {
20962306a36Sopenharmony_ci	pinctrl-names = "default";
21062306a36Sopenharmony_ci	pinctrl-0 = <&dragon_gsbi12_serial_pins>;
21162306a36Sopenharmony_ci	status = "okay";
21262306a36Sopenharmony_ci};
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ci&gsbi12_i2c {
21562306a36Sopenharmony_ci	pinctrl-names = "default";
21662306a36Sopenharmony_ci	pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
21762306a36Sopenharmony_ci	status = "okay";
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ci	ak8975@c {
22062306a36Sopenharmony_ci		compatible = "asahi-kasei,ak8975";
22162306a36Sopenharmony_ci		reg = <0x0c>;
22262306a36Sopenharmony_ci		interrupt-parent = <&pm8058_gpio>;
22362306a36Sopenharmony_ci		interrupts = <33 IRQ_TYPE_EDGE_RISING>;
22462306a36Sopenharmony_ci		pinctrl-names = "default";
22562306a36Sopenharmony_ci		pinctrl-0 = <&dragon_ak8975_gpios>;
22662306a36Sopenharmony_ci		vid-supply = <&pm8058_lvs0>; // 1.8V
22762306a36Sopenharmony_ci		vdd-supply = <&pm8058_l14>; // 2.85V
22862306a36Sopenharmony_ci	};
22962306a36Sopenharmony_ci	bmp085@77 {
23062306a36Sopenharmony_ci		compatible = "bosch,bmp085";
23162306a36Sopenharmony_ci		reg = <0x77>;
23262306a36Sopenharmony_ci		interrupt-parent = <&pm8058_gpio>;
23362306a36Sopenharmony_ci		interrupts = <16 IRQ_TYPE_EDGE_RISING>;
23462306a36Sopenharmony_ci		reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
23562306a36Sopenharmony_ci		pinctrl-names = "default";
23662306a36Sopenharmony_ci		pinctrl-0 = <&dragon_bmp085_gpios>;
23762306a36Sopenharmony_ci		vddd-supply = <&pm8058_lvs0>; // 1.8V
23862306a36Sopenharmony_ci		vdda-supply = <&pm8058_l14>; // 2.85V
23962306a36Sopenharmony_ci	};
24062306a36Sopenharmony_ci	mpu3050@68 {
24162306a36Sopenharmony_ci		compatible = "invensense,mpu3050";
24262306a36Sopenharmony_ci		reg = <0x68>;
24362306a36Sopenharmony_ci		/*
24462306a36Sopenharmony_ci		 * GPIO17 is pulled high by a 10k
24562306a36Sopenharmony_ci		 * resistor to VLOGIC so needs to be
24662306a36Sopenharmony_ci		 * active low/falling edge.
24762306a36Sopenharmony_ci		 */
24862306a36Sopenharmony_ci		interrupts-extended = <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>;
24962306a36Sopenharmony_ci		pinctrl-names = "default";
25062306a36Sopenharmony_ci		pinctrl-0 = <&dragon_mpu3050_gpios>;
25162306a36Sopenharmony_ci		vlogic-supply = <&pm8058_lvs0>; // 1.8V
25262306a36Sopenharmony_ci		vdd-supply = <&pm8058_l14>; // 2.85V
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci		/*
25562306a36Sopenharmony_ci		 * The MPU-3050 acts as a hub for the
25662306a36Sopenharmony_ci		 * accelerometer.
25762306a36Sopenharmony_ci		 */
25862306a36Sopenharmony_ci		i2c-gate {
25962306a36Sopenharmony_ci			#address-cells = <1>;
26062306a36Sopenharmony_ci			#size-cells = <0>;
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_ci			kxsd9@18 {
26362306a36Sopenharmony_ci				compatible = "kionix,kxsd9";
26462306a36Sopenharmony_ci				reg = <0x18>;
26562306a36Sopenharmony_ci				interrupt-parent = <&tlmm>;
26662306a36Sopenharmony_ci				interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
26762306a36Sopenharmony_ci				pinctrl-names = "default";
26862306a36Sopenharmony_ci				pinctrl-0 = <&dragon_kxsd9_gpios>;
26962306a36Sopenharmony_ci				iovdd-supply = <&pm8058_lvs0>; // 1.8V
27062306a36Sopenharmony_ci				vdd-supply = <&pm8058_l14>; // 2.85V
27162306a36Sopenharmony_ci			};
27262306a36Sopenharmony_ci		};
27362306a36Sopenharmony_ci	};
27462306a36Sopenharmony_ci};
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ci&pm8058_gpio {
27762306a36Sopenharmony_ci	dragon_ethernet_gpios: ethernet-state {
27862306a36Sopenharmony_ci		pinconf {
27962306a36Sopenharmony_ci			pins = "gpio7";
28062306a36Sopenharmony_ci			function = "normal";
28162306a36Sopenharmony_ci			input-enable;
28262306a36Sopenharmony_ci			bias-disable;
28362306a36Sopenharmony_ci			power-source = <PM8058_GPIO_S3>;
28462306a36Sopenharmony_ci		};
28562306a36Sopenharmony_ci	};
28662306a36Sopenharmony_ci	dragon_bmp085_gpios: bmp085-state {
28762306a36Sopenharmony_ci		pinconf {
28862306a36Sopenharmony_ci			pins = "gpio16";
28962306a36Sopenharmony_ci			function = "normal";
29062306a36Sopenharmony_ci			input-enable;
29162306a36Sopenharmony_ci			bias-disable;
29262306a36Sopenharmony_ci			power-source = <PM8058_GPIO_S3>;
29362306a36Sopenharmony_ci		};
29462306a36Sopenharmony_ci	};
29562306a36Sopenharmony_ci	dragon_mpu3050_gpios: mpu3050-state {
29662306a36Sopenharmony_ci		pinconf {
29762306a36Sopenharmony_ci			pins = "gpio17";
29862306a36Sopenharmony_ci			function = "normal";
29962306a36Sopenharmony_ci			input-enable;
30062306a36Sopenharmony_ci			bias-disable;
30162306a36Sopenharmony_ci			power-source = <PM8058_GPIO_S3>;
30262306a36Sopenharmony_ci		};
30362306a36Sopenharmony_ci	};
30462306a36Sopenharmony_ci	dragon_sdcc3_gpios: sdcc3-state {
30562306a36Sopenharmony_ci		pinconf {
30662306a36Sopenharmony_ci			pins = "gpio22";
30762306a36Sopenharmony_ci			function = "normal";
30862306a36Sopenharmony_ci			input-enable;
30962306a36Sopenharmony_ci			bias-disable;
31062306a36Sopenharmony_ci			power-source = <PM8058_GPIO_S3>;
31162306a36Sopenharmony_ci		};
31262306a36Sopenharmony_ci	};
31362306a36Sopenharmony_ci	dragon_sdcc5_gpios: sdcc5-state {
31462306a36Sopenharmony_ci		pinconf {
31562306a36Sopenharmony_ci			pins = "gpio26";
31662306a36Sopenharmony_ci			function = "normal";
31762306a36Sopenharmony_ci			input-enable;
31862306a36Sopenharmony_ci			bias-pull-up;
31962306a36Sopenharmony_ci			qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>;
32062306a36Sopenharmony_ci			power-source = <PM8058_GPIO_S3>;
32162306a36Sopenharmony_ci		};
32262306a36Sopenharmony_ci	};
32362306a36Sopenharmony_ci	dragon_ak8975_gpios: ak8975-state {
32462306a36Sopenharmony_ci		pinconf {
32562306a36Sopenharmony_ci			pins = "gpio33";
32662306a36Sopenharmony_ci			function = "normal";
32762306a36Sopenharmony_ci			input-enable;
32862306a36Sopenharmony_ci			bias-disable;
32962306a36Sopenharmony_ci			power-source = <PM8058_GPIO_S3>;
33062306a36Sopenharmony_ci		};
33162306a36Sopenharmony_ci	};
33262306a36Sopenharmony_ci	dragon_cm3605_gpios: cm3605-state {
33362306a36Sopenharmony_ci		/* Pin 34 connected to the proxy IRQ */
33462306a36Sopenharmony_ci		gpio34-pins {
33562306a36Sopenharmony_ci			pins = "gpio34";
33662306a36Sopenharmony_ci			function = "normal";
33762306a36Sopenharmony_ci			input-enable;
33862306a36Sopenharmony_ci			bias-disable;
33962306a36Sopenharmony_ci			power-source = <PM8058_GPIO_S3>;
34062306a36Sopenharmony_ci		};
34162306a36Sopenharmony_ci		/* Pin 35 connected to ASET */
34262306a36Sopenharmony_ci		gpio35-pins {
34362306a36Sopenharmony_ci			pins = "gpio35";
34462306a36Sopenharmony_ci			function = "normal";
34562306a36Sopenharmony_ci			output-high;
34662306a36Sopenharmony_ci			bias-disable;
34762306a36Sopenharmony_ci			power-source = <PM8058_GPIO_S3>;
34862306a36Sopenharmony_ci		};
34962306a36Sopenharmony_ci	};
35062306a36Sopenharmony_ci	dragon_veth_gpios: veth-state {
35162306a36Sopenharmony_ci		pinconf {
35262306a36Sopenharmony_ci			pins = "gpio40";
35362306a36Sopenharmony_ci			function = "normal";
35462306a36Sopenharmony_ci			bias-disable;
35562306a36Sopenharmony_ci			drive-push-pull;
35662306a36Sopenharmony_ci		};
35762306a36Sopenharmony_ci	};
35862306a36Sopenharmony_ci};
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_ci&pm8058_keypad {
36162306a36Sopenharmony_ci	linux,keymap = <
36262306a36Sopenharmony_ci		MATRIX_KEY(0, 0, KEY_MENU)
36362306a36Sopenharmony_ci		MATRIX_KEY(0, 2, KEY_1)
36462306a36Sopenharmony_ci		MATRIX_KEY(0, 3, KEY_4)
36562306a36Sopenharmony_ci		MATRIX_KEY(0, 4, KEY_7)
36662306a36Sopenharmony_ci		MATRIX_KEY(1, 0, KEY_UP)
36762306a36Sopenharmony_ci		MATRIX_KEY(1, 1, KEY_LEFT)
36862306a36Sopenharmony_ci		MATRIX_KEY(1, 2, KEY_DOWN)
36962306a36Sopenharmony_ci		MATRIX_KEY(1, 3, KEY_5)
37062306a36Sopenharmony_ci		MATRIX_KEY(1, 3, KEY_8)
37162306a36Sopenharmony_ci		MATRIX_KEY(2, 0, KEY_HOME)
37262306a36Sopenharmony_ci		MATRIX_KEY(2, 1, KEY_REPLY)
37362306a36Sopenharmony_ci		MATRIX_KEY(2, 2, KEY_2)
37462306a36Sopenharmony_ci		MATRIX_KEY(2, 3, KEY_6)
37562306a36Sopenharmony_ci		MATRIX_KEY(3, 0, KEY_VOLUMEUP)
37662306a36Sopenharmony_ci		MATRIX_KEY(3, 1, KEY_RIGHT)
37762306a36Sopenharmony_ci		MATRIX_KEY(3, 2, KEY_3)
37862306a36Sopenharmony_ci		MATRIX_KEY(3, 3, KEY_9)
37962306a36Sopenharmony_ci		MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE)
38062306a36Sopenharmony_ci		MATRIX_KEY(4, 0, KEY_VOLUMEDOWN)
38162306a36Sopenharmony_ci		MATRIX_KEY(4, 1, KEY_BACK)
38262306a36Sopenharmony_ci		MATRIX_KEY(4, 2, KEY_CAMERA)
38362306a36Sopenharmony_ci		MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE)
38462306a36Sopenharmony_ci	>;
38562306a36Sopenharmony_ci	keypad,num-rows = <6>;
38662306a36Sopenharmony_ci	keypad,num-columns = <5>;
38762306a36Sopenharmony_ci};
38862306a36Sopenharmony_ci
38962306a36Sopenharmony_ci&pm8058_led48 {
39062306a36Sopenharmony_ci	/*
39162306a36Sopenharmony_ci	 * The keypad LED @0x48 is routed to
39262306a36Sopenharmony_ci	 * the sensor board where it is
39362306a36Sopenharmony_ci	 * connected to an infrared LED
39462306a36Sopenharmony_ci	 * SFH4650 (60mW, @850nm) next to the
39562306a36Sopenharmony_ci	 * ambient light and proximity sensor
39662306a36Sopenharmony_ci	 * Capella Microsystems CM3605.
39762306a36Sopenharmony_ci	 */
39862306a36Sopenharmony_ci	label = "pm8058:infrared:proximitysensor";
39962306a36Sopenharmony_ci	default-state = "off";
40062306a36Sopenharmony_ci	linux,default-trigger = "cm3605";
40162306a36Sopenharmony_ci	status = "okay";
40262306a36Sopenharmony_ci};
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ci&pm8058_led131 {
40562306a36Sopenharmony_ci	label = "pm8058:red";
40662306a36Sopenharmony_ci	color = <LED_COLOR_ID_RED>;
40762306a36Sopenharmony_ci	default-state = "off";
40862306a36Sopenharmony_ci	status = "okay";
40962306a36Sopenharmony_ci};
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ci&pm8058_led132 {
41262306a36Sopenharmony_ci	/*
41362306a36Sopenharmony_ci	 * This is actually green too on my
41462306a36Sopenharmony_ci	 * board, but documented as yellow.
41562306a36Sopenharmony_ci	 */
41662306a36Sopenharmony_ci	label = "pm8058:yellow";
41762306a36Sopenharmony_ci	color = <LED_COLOR_ID_YELLOW>;
41862306a36Sopenharmony_ci	default-state = "off";
41962306a36Sopenharmony_ci	linux,default-trigger = "mmc0";
42062306a36Sopenharmony_ci	status = "okay";
42162306a36Sopenharmony_ci};
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ci&pm8058_led133 {
42462306a36Sopenharmony_ci	label = "pm8058:green";
42562306a36Sopenharmony_ci	function = LED_FUNCTION_HEARTBEAT;
42662306a36Sopenharmony_ci	color = <LED_COLOR_ID_GREEN>;
42762306a36Sopenharmony_ci	default-state = "on";
42862306a36Sopenharmony_ci	linux,default-trigger = "heartbeat";
42962306a36Sopenharmony_ci	status = "okay";
43062306a36Sopenharmony_ci};
43162306a36Sopenharmony_ci
43262306a36Sopenharmony_ci&pm8058_mpps {
43362306a36Sopenharmony_ci	dragon_cm3605_mpps: cm3605-mpps-state {
43462306a36Sopenharmony_ci		pins = "mpp5";
43562306a36Sopenharmony_ci		function = "analog";
43662306a36Sopenharmony_ci		input-enable;
43762306a36Sopenharmony_ci		bias-high-impedance;
43862306a36Sopenharmony_ci		/* Let's use channel 5 */
43962306a36Sopenharmony_ci		qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>;
44062306a36Sopenharmony_ci		power-source = <PM8058_GPIO_S3>;
44162306a36Sopenharmony_ci	};
44262306a36Sopenharmony_ci};
44362306a36Sopenharmony_ci
44462306a36Sopenharmony_ci&rpm {
44562306a36Sopenharmony_ci	/*
44662306a36Sopenharmony_ci	 * Set up of the PMIC RPM regulators for this board
44762306a36Sopenharmony_ci	 * PM8901 supplies "preliminary regulators" whatever
44862306a36Sopenharmony_ci	 * that means
44962306a36Sopenharmony_ci	 */
45062306a36Sopenharmony_ci	regulators-0 {
45162306a36Sopenharmony_ci		vdd_l0-supply = <&pm8901_s4>;
45262306a36Sopenharmony_ci		vdd_l1-supply = <&vph>;
45362306a36Sopenharmony_ci		vdd_l2-supply = <&vph>;
45462306a36Sopenharmony_ci		vdd_l3-supply = <&vph>;
45562306a36Sopenharmony_ci		vdd_l4-supply = <&vph>;
45662306a36Sopenharmony_ci		vdd_l5-supply = <&vph>;
45762306a36Sopenharmony_ci		vdd_l6-supply = <&vph>;
45862306a36Sopenharmony_ci		/* vdd_s0-supply, vdd_s1-supply: SAW regulators */
45962306a36Sopenharmony_ci		vdd_s2-supply = <&vph>;
46062306a36Sopenharmony_ci		vdd_s3-supply = <&vph>;
46162306a36Sopenharmony_ci		vdd_s4-supply = <&vph>;
46262306a36Sopenharmony_ci		lvs0_in-supply = <&pm8058_s3>;
46362306a36Sopenharmony_ci		lvs1_in-supply = <&pm8901_s4>;
46462306a36Sopenharmony_ci		lvs2_in-supply = <&pm8058_l0>;
46562306a36Sopenharmony_ci		lvs3_in-supply = <&pm8058_s2>;
46662306a36Sopenharmony_ci		mvs_in-supply = <&pm8058_s3>;
46762306a36Sopenharmony_ci
46862306a36Sopenharmony_ci		l0 {
46962306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
47062306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
47162306a36Sopenharmony_ci			bias-pull-down;
47262306a36Sopenharmony_ci		};
47362306a36Sopenharmony_ci		l1 {
47462306a36Sopenharmony_ci			regulator-min-microvolt = <3300000>;
47562306a36Sopenharmony_ci			regulator-max-microvolt = <3300000>;
47662306a36Sopenharmony_ci			bias-pull-down;
47762306a36Sopenharmony_ci		};
47862306a36Sopenharmony_ci		l2 {
47962306a36Sopenharmony_ci			/* TMA340 requires strictly 3.3V */
48062306a36Sopenharmony_ci			regulator-min-microvolt = <3300000>;
48162306a36Sopenharmony_ci			regulator-max-microvolt = <3300000>;
48262306a36Sopenharmony_ci			bias-pull-down;
48362306a36Sopenharmony_ci		};
48462306a36Sopenharmony_ci		l3 {
48562306a36Sopenharmony_ci			regulator-min-microvolt = <3300000>;
48662306a36Sopenharmony_ci			regulator-max-microvolt = <3300000>;
48762306a36Sopenharmony_ci			bias-pull-down;
48862306a36Sopenharmony_ci		};
48962306a36Sopenharmony_ci		l4 {
49062306a36Sopenharmony_ci			regulator-min-microvolt = <2600000>;
49162306a36Sopenharmony_ci			regulator-max-microvolt = <2600000>;
49262306a36Sopenharmony_ci			bias-pull-down;
49362306a36Sopenharmony_ci		};
49462306a36Sopenharmony_ci		l5 {
49562306a36Sopenharmony_ci			regulator-min-microvolt = <2850000>;
49662306a36Sopenharmony_ci			regulator-max-microvolt = <2850000>;
49762306a36Sopenharmony_ci			bias-pull-down;
49862306a36Sopenharmony_ci		};
49962306a36Sopenharmony_ci		l6 {
50062306a36Sopenharmony_ci			regulator-min-microvolt = <2200000>;
50162306a36Sopenharmony_ci			regulator-max-microvolt = <2200000>;
50262306a36Sopenharmony_ci			bias-pull-down;
50362306a36Sopenharmony_ci		};
50462306a36Sopenharmony_ci
50562306a36Sopenharmony_ci		/* s0 and s1 are SAW regulators controlled over SPM */
50662306a36Sopenharmony_ci		s2 {
50762306a36Sopenharmony_ci			regulator-min-microvolt = <1300000>;
50862306a36Sopenharmony_ci			regulator-max-microvolt = <1300000>;
50962306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
51062306a36Sopenharmony_ci			bias-pull-down;
51162306a36Sopenharmony_ci		};
51262306a36Sopenharmony_ci		s3 {
51362306a36Sopenharmony_ci			regulator-min-microvolt = <1100000>;
51462306a36Sopenharmony_ci			regulator-max-microvolt = <1100000>;
51562306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
51662306a36Sopenharmony_ci			bias-pull-down;
51762306a36Sopenharmony_ci		};
51862306a36Sopenharmony_ci		s4 {
51962306a36Sopenharmony_ci			regulator-min-microvolt = <1225000>;
52062306a36Sopenharmony_ci			regulator-max-microvolt = <1225000>;
52162306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
52262306a36Sopenharmony_ci			bias-pull-down;
52362306a36Sopenharmony_ci		};
52462306a36Sopenharmony_ci
52562306a36Sopenharmony_ci		/* LVS0 thru 3 and mvs are just switches */
52662306a36Sopenharmony_ci		lvs0 {
52762306a36Sopenharmony_ci			regulator-always-on;
52862306a36Sopenharmony_ci		};
52962306a36Sopenharmony_ci		lvs1 { };
53062306a36Sopenharmony_ci		lvs2 { };
53162306a36Sopenharmony_ci		lvs3 { };
53262306a36Sopenharmony_ci		mvs { };
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ci	};
53562306a36Sopenharmony_ci
53662306a36Sopenharmony_ci	regulators-1 {
53762306a36Sopenharmony_ci		vdd_l0_l1_lvs-supply = <&pm8058_s3>;
53862306a36Sopenharmony_ci		vdd_l2_l11_l12-supply = <&vph>;
53962306a36Sopenharmony_ci		vdd_l3_l4_l5-supply = <&vph>;
54062306a36Sopenharmony_ci		vdd_l6_l7-supply = <&vph>;
54162306a36Sopenharmony_ci		vdd_l8-supply = <&vph>;
54262306a36Sopenharmony_ci		vdd_l9-supply = <&vph>;
54362306a36Sopenharmony_ci		vdd_l10-supply = <&vph>;
54462306a36Sopenharmony_ci		vdd_l13_l16-supply = <&pm8058_s4>;
54562306a36Sopenharmony_ci		vdd_l14_l15-supply = <&vph>;
54662306a36Sopenharmony_ci		vdd_l17_l18-supply = <&vph>;
54762306a36Sopenharmony_ci		vdd_l19_l20-supply = <&vph>;
54862306a36Sopenharmony_ci		vdd_l21-supply = <&pm8058_s3>;
54962306a36Sopenharmony_ci		vdd_l22-supply = <&pm8058_s3>;
55062306a36Sopenharmony_ci		vdd_l23_l24_l25-supply = <&pm8058_s3>;
55162306a36Sopenharmony_ci		vdd_s0-supply = <&vph>;
55262306a36Sopenharmony_ci		vdd_s1-supply = <&vph>;
55362306a36Sopenharmony_ci		vdd_s2-supply = <&vph>;
55462306a36Sopenharmony_ci		vdd_s3-supply = <&vph>;
55562306a36Sopenharmony_ci		vdd_s4-supply = <&vph>;
55662306a36Sopenharmony_ci		vdd_ncp-supply = <&vph>;
55762306a36Sopenharmony_ci
55862306a36Sopenharmony_ci		l0 {
55962306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
56062306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
56162306a36Sopenharmony_ci			bias-pull-down;
56262306a36Sopenharmony_ci		};
56362306a36Sopenharmony_ci		l1 {
56462306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
56562306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
56662306a36Sopenharmony_ci			bias-pull-down;
56762306a36Sopenharmony_ci		};
56862306a36Sopenharmony_ci		l2 {
56962306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
57062306a36Sopenharmony_ci			regulator-max-microvolt = <2600000>;
57162306a36Sopenharmony_ci			bias-pull-down;
57262306a36Sopenharmony_ci		};
57362306a36Sopenharmony_ci		l3 {
57462306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
57562306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
57662306a36Sopenharmony_ci			bias-pull-down;
57762306a36Sopenharmony_ci		};
57862306a36Sopenharmony_ci		l4 {
57962306a36Sopenharmony_ci			regulator-min-microvolt = <2850000>;
58062306a36Sopenharmony_ci			regulator-max-microvolt = <2850000>;
58162306a36Sopenharmony_ci			bias-pull-down;
58262306a36Sopenharmony_ci		};
58362306a36Sopenharmony_ci		l5 {
58462306a36Sopenharmony_ci			regulator-min-microvolt = <2850000>;
58562306a36Sopenharmony_ci			regulator-max-microvolt = <2850000>;
58662306a36Sopenharmony_ci			bias-pull-down;
58762306a36Sopenharmony_ci		};
58862306a36Sopenharmony_ci		l6 {
58962306a36Sopenharmony_ci			regulator-min-microvolt = <3000000>;
59062306a36Sopenharmony_ci			regulator-max-microvolt = <3600000>;
59162306a36Sopenharmony_ci			bias-pull-down;
59262306a36Sopenharmony_ci		};
59362306a36Sopenharmony_ci		l7 {
59462306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
59562306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
59662306a36Sopenharmony_ci			bias-pull-down;
59762306a36Sopenharmony_ci		};
59862306a36Sopenharmony_ci		l8 {
59962306a36Sopenharmony_ci			regulator-min-microvolt = <2900000>;
60062306a36Sopenharmony_ci			regulator-max-microvolt = <3050000>;
60162306a36Sopenharmony_ci			bias-pull-down;
60262306a36Sopenharmony_ci		};
60362306a36Sopenharmony_ci		l9 {
60462306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
60562306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
60662306a36Sopenharmony_ci			bias-pull-down;
60762306a36Sopenharmony_ci		};
60862306a36Sopenharmony_ci		l10 {
60962306a36Sopenharmony_ci			regulator-min-microvolt = <2600000>;
61062306a36Sopenharmony_ci			regulator-max-microvolt = <2600000>;
61162306a36Sopenharmony_ci			bias-pull-down;
61262306a36Sopenharmony_ci		};
61362306a36Sopenharmony_ci		l11 {
61462306a36Sopenharmony_ci			regulator-min-microvolt = <1500000>;
61562306a36Sopenharmony_ci			regulator-max-microvolt = <1500000>;
61662306a36Sopenharmony_ci			bias-pull-down;
61762306a36Sopenharmony_ci		};
61862306a36Sopenharmony_ci		l12 {
61962306a36Sopenharmony_ci			regulator-min-microvolt = <2900000>;
62062306a36Sopenharmony_ci			regulator-max-microvolt = <2900000>;
62162306a36Sopenharmony_ci			bias-pull-down;
62262306a36Sopenharmony_ci		};
62362306a36Sopenharmony_ci		l13 {
62462306a36Sopenharmony_ci			regulator-min-microvolt = <2050000>;
62562306a36Sopenharmony_ci			regulator-max-microvolt = <2050000>;
62662306a36Sopenharmony_ci			bias-pull-down;
62762306a36Sopenharmony_ci		};
62862306a36Sopenharmony_ci		l14 {
62962306a36Sopenharmony_ci			regulator-min-microvolt = <2850000>;
63062306a36Sopenharmony_ci			regulator-max-microvolt = <2850000>;
63162306a36Sopenharmony_ci		};
63262306a36Sopenharmony_ci		l15 {
63362306a36Sopenharmony_ci			regulator-min-microvolt = <2850000>;
63462306a36Sopenharmony_ci			regulator-max-microvolt = <2850000>;
63562306a36Sopenharmony_ci			bias-pull-down;
63662306a36Sopenharmony_ci		};
63762306a36Sopenharmony_ci		l16 {
63862306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
63962306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
64062306a36Sopenharmony_ci			bias-pull-down;
64162306a36Sopenharmony_ci			regulator-always-on;
64262306a36Sopenharmony_ci		};
64362306a36Sopenharmony_ci		l17 {
64462306a36Sopenharmony_ci			// 1.5V according to schematic
64562306a36Sopenharmony_ci			regulator-min-microvolt = <2600000>;
64662306a36Sopenharmony_ci			regulator-max-microvolt = <2600000>;
64762306a36Sopenharmony_ci			bias-pull-down;
64862306a36Sopenharmony_ci		};
64962306a36Sopenharmony_ci		l18 {
65062306a36Sopenharmony_ci			regulator-min-microvolt = <2200000>;
65162306a36Sopenharmony_ci			regulator-max-microvolt = <2200000>;
65262306a36Sopenharmony_ci			bias-pull-down;
65362306a36Sopenharmony_ci		};
65462306a36Sopenharmony_ci		l19 {
65562306a36Sopenharmony_ci			regulator-min-microvolt = <2500000>;
65662306a36Sopenharmony_ci			regulator-max-microvolt = <2500000>;
65762306a36Sopenharmony_ci			bias-pull-down;
65862306a36Sopenharmony_ci		};
65962306a36Sopenharmony_ci		l20 {
66062306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
66162306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
66262306a36Sopenharmony_ci			bias-pull-down;
66362306a36Sopenharmony_ci		};
66462306a36Sopenharmony_ci		l21 {
66562306a36Sopenharmony_ci			// 1.1 V according to schematic
66662306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
66762306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
66862306a36Sopenharmony_ci			bias-pull-down;
66962306a36Sopenharmony_ci			regulator-always-on;
67062306a36Sopenharmony_ci		};
67162306a36Sopenharmony_ci		l22 {
67262306a36Sopenharmony_ci			// 1.2 V according to schematic
67362306a36Sopenharmony_ci			regulator-min-microvolt = <1150000>;
67462306a36Sopenharmony_ci			regulator-max-microvolt = <1150000>;
67562306a36Sopenharmony_ci			bias-pull-down;
67662306a36Sopenharmony_ci		};
67762306a36Sopenharmony_ci		l23 {
67862306a36Sopenharmony_ci			// Unused
67962306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
68062306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
68162306a36Sopenharmony_ci			bias-pull-down;
68262306a36Sopenharmony_ci		};
68362306a36Sopenharmony_ci		l24 {
68462306a36Sopenharmony_ci			// Unused
68562306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
68662306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
68762306a36Sopenharmony_ci			bias-pull-down;
68862306a36Sopenharmony_ci		};
68962306a36Sopenharmony_ci		l25 {
69062306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
69162306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
69262306a36Sopenharmony_ci			bias-pull-down;
69362306a36Sopenharmony_ci		};
69462306a36Sopenharmony_ci
69562306a36Sopenharmony_ci		s0 {
69662306a36Sopenharmony_ci			// regulator-min-microvolt = <500000>;
69762306a36Sopenharmony_ci			// regulator-max-microvolt = <1325000>;
69862306a36Sopenharmony_ci			regulator-min-microvolt = <1100000>;
69962306a36Sopenharmony_ci			regulator-max-microvolt = <1100000>;
70062306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
70162306a36Sopenharmony_ci			bias-pull-down;
70262306a36Sopenharmony_ci		};
70362306a36Sopenharmony_ci		s1 {
70462306a36Sopenharmony_ci			// regulator-min-microvolt = <500000>;
70562306a36Sopenharmony_ci			// regulator-max-microvolt = <1250000>;
70662306a36Sopenharmony_ci			regulator-min-microvolt = <1100000>;
70762306a36Sopenharmony_ci			regulator-max-microvolt = <1100000>;
70862306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
70962306a36Sopenharmony_ci			bias-pull-down;
71062306a36Sopenharmony_ci		};
71162306a36Sopenharmony_ci		s2 {
71262306a36Sopenharmony_ci			// 1.3 V according to schematic
71362306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
71462306a36Sopenharmony_ci			regulator-max-microvolt = <1400000>;
71562306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
71662306a36Sopenharmony_ci			bias-pull-down;
71762306a36Sopenharmony_ci		};
71862306a36Sopenharmony_ci		s3 {
71962306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
72062306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
72162306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
72262306a36Sopenharmony_ci			regulator-always-on;
72362306a36Sopenharmony_ci			bias-pull-down;
72462306a36Sopenharmony_ci		};
72562306a36Sopenharmony_ci		s4 {
72662306a36Sopenharmony_ci			regulator-min-microvolt = <2200000>;
72762306a36Sopenharmony_ci			regulator-max-microvolt = <2200000>;
72862306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
72962306a36Sopenharmony_ci			regulator-always-on;
73062306a36Sopenharmony_ci			bias-pull-down;
73162306a36Sopenharmony_ci		};
73262306a36Sopenharmony_ci
73362306a36Sopenharmony_ci		/* LVS0 and LVS1 are just switches */
73462306a36Sopenharmony_ci		lvs0 {
73562306a36Sopenharmony_ci			bias-pull-down;
73662306a36Sopenharmony_ci		};
73762306a36Sopenharmony_ci		lvs1 {
73862306a36Sopenharmony_ci			bias-pull-down;
73962306a36Sopenharmony_ci		};
74062306a36Sopenharmony_ci
74162306a36Sopenharmony_ci		ncp {
74262306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
74362306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
74462306a36Sopenharmony_ci			qcom,switch-mode-frequency = <1600000>;
74562306a36Sopenharmony_ci		};
74662306a36Sopenharmony_ci	};
74762306a36Sopenharmony_ci};
74862306a36Sopenharmony_ci
74962306a36Sopenharmony_ci/* Internal 3.69 GiB eMMC */
75062306a36Sopenharmony_ci&sdcc1 {
75162306a36Sopenharmony_ci	pinctrl-names = "default";
75262306a36Sopenharmony_ci	pinctrl-0 = <&dragon_sdcc1_pins>;
75362306a36Sopenharmony_ci	vmmc-supply = <&pm8901_l5>;
75462306a36Sopenharmony_ci	vqmmc-supply = <&pm8901_lvs0>;
75562306a36Sopenharmony_ci	status = "okay";
75662306a36Sopenharmony_ci};
75762306a36Sopenharmony_ci
75862306a36Sopenharmony_ci/* External micro SD card, directly connected, pulled up to 2.85 V */
75962306a36Sopenharmony_ci&sdcc3 {
76062306a36Sopenharmony_ci	/* Enable SSBI GPIO 22 as input, use for card detect */
76162306a36Sopenharmony_ci	pinctrl-names = "default";
76262306a36Sopenharmony_ci	pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>;
76362306a36Sopenharmony_ci	cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>;
76462306a36Sopenharmony_ci	wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
76562306a36Sopenharmony_ci	vmmc-supply = <&pm8058_l14>;
76662306a36Sopenharmony_ci	status = "okay";
76762306a36Sopenharmony_ci};
76862306a36Sopenharmony_ci
76962306a36Sopenharmony_ci/*
77062306a36Sopenharmony_ci * Second external micro SD card, using two TXB104RGYR levelshifters
77162306a36Sopenharmony_ci * to lift from 1.8 V to 2.85 V
77262306a36Sopenharmony_ci */
77362306a36Sopenharmony_ci&sdcc5 {
77462306a36Sopenharmony_ci	/* Enable SSBI GPIO 26 as input, use for card detect */
77562306a36Sopenharmony_ci	pinctrl-names = "default";
77662306a36Sopenharmony_ci	pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>;
77762306a36Sopenharmony_ci	cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>;
77862306a36Sopenharmony_ci	wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>;
77962306a36Sopenharmony_ci	vmmc-supply = <&pm8058_l14>;
78062306a36Sopenharmony_ci	vqmmc-supply = <&dragon_vio_txb>;
78162306a36Sopenharmony_ci	status = "okay";
78262306a36Sopenharmony_ci};
78362306a36Sopenharmony_ci
78462306a36Sopenharmony_ci&tlmm {
78562306a36Sopenharmony_ci	/* eMMC pins, all 8 data lines connected */
78662306a36Sopenharmony_ci	dragon_sdcc1_pins: sdcc1-state {
78762306a36Sopenharmony_ci		clk-pins {
78862306a36Sopenharmony_ci			pins = "gpio167"; /* SDC1 CLK */
78962306a36Sopenharmony_ci			function = "sdc1";
79062306a36Sopenharmony_ci			drive-strength = <16>;
79162306a36Sopenharmony_ci			bias-disable;
79262306a36Sopenharmony_ci		};
79362306a36Sopenharmony_ci		cmd-pins {
79462306a36Sopenharmony_ci			pins = "gpio168"; /* SDC1 CMD */
79562306a36Sopenharmony_ci			function = "sdc1";
79662306a36Sopenharmony_ci			drive-strength = <10>;
79762306a36Sopenharmony_ci			bias-pull-up;
79862306a36Sopenharmony_ci		};
79962306a36Sopenharmony_ci		data-pins {
80062306a36Sopenharmony_ci			/* SDC1 D0 to D7 */
80162306a36Sopenharmony_ci			pins = "gpio159", "gpio160", "gpio161", "gpio162",
80262306a36Sopenharmony_ci			     "gpio163", "gpio164", "gpio165", "gpio166";
80362306a36Sopenharmony_ci			function = "sdc1";
80462306a36Sopenharmony_ci			drive-strength = <10>;
80562306a36Sopenharmony_ci			bias-pull-up;
80662306a36Sopenharmony_ci		};
80762306a36Sopenharmony_ci	};
80862306a36Sopenharmony_ci
80962306a36Sopenharmony_ci	/*
81062306a36Sopenharmony_ci	 * The SDCC3 pins are hardcoded (non-muxable) but need some pin
81162306a36Sopenharmony_ci	 * configuration.
81262306a36Sopenharmony_ci	 */
81362306a36Sopenharmony_ci	dragon_sdcc3_pins: sdcc3-state {
81462306a36Sopenharmony_ci		clk-pins {
81562306a36Sopenharmony_ci			pins = "sdc3_clk";
81662306a36Sopenharmony_ci			drive-strength = <8>;
81762306a36Sopenharmony_ci			bias-disable;
81862306a36Sopenharmony_ci		};
81962306a36Sopenharmony_ci		cmd-pins {
82062306a36Sopenharmony_ci			pins = "sdc3_cmd";
82162306a36Sopenharmony_ci			drive-strength = <8>;
82262306a36Sopenharmony_ci			bias-pull-up;
82362306a36Sopenharmony_ci		};
82462306a36Sopenharmony_ci		data-pins {
82562306a36Sopenharmony_ci			pins = "sdc3_data";
82662306a36Sopenharmony_ci			drive-strength = <8>;
82762306a36Sopenharmony_ci			bias-pull-up;
82862306a36Sopenharmony_ci		};
82962306a36Sopenharmony_ci	};
83062306a36Sopenharmony_ci
83162306a36Sopenharmony_ci	/* Second SD card slot pins */
83262306a36Sopenharmony_ci	dragon_sdcc5_pins: sdcc5-state {
83362306a36Sopenharmony_ci		clk-pins {
83462306a36Sopenharmony_ci			pins = "gpio97"; /* SDC5 CLK */
83562306a36Sopenharmony_ci			function = "sdc5";
83662306a36Sopenharmony_ci			drive-strength = <16>;
83762306a36Sopenharmony_ci			bias-disable;
83862306a36Sopenharmony_ci		};
83962306a36Sopenharmony_ci		cmd-pins {
84062306a36Sopenharmony_ci			pins = "gpio95"; /* SDC5 CMD */
84162306a36Sopenharmony_ci			function = "sdc5";
84262306a36Sopenharmony_ci			drive-strength = <10>;
84362306a36Sopenharmony_ci			bias-pull-up;
84462306a36Sopenharmony_ci		};
84562306a36Sopenharmony_ci		data-pins {
84662306a36Sopenharmony_ci			/* SDC5 D0 to D3 */
84762306a36Sopenharmony_ci			pins = "gpio96", "gpio98", "gpio99", "gpio100";
84862306a36Sopenharmony_ci			function = "sdc5";
84962306a36Sopenharmony_ci			drive-strength = <10>;
85062306a36Sopenharmony_ci			bias-pull-up;
85162306a36Sopenharmony_ci		};
85262306a36Sopenharmony_ci	};
85362306a36Sopenharmony_ci
85462306a36Sopenharmony_ci	dragon_gsbi3_i2c_pins: gsbi3-i2c-state {
85562306a36Sopenharmony_ci		pins = "gpio43", "gpio44";
85662306a36Sopenharmony_ci		function = "gsbi3";
85762306a36Sopenharmony_ci		drive-strength = <8>;
85862306a36Sopenharmony_ci		/* These have external pull-up 2.2kOhm to 1.8V */
85962306a36Sopenharmony_ci		bias-disable;
86062306a36Sopenharmony_ci	};
86162306a36Sopenharmony_ci
86262306a36Sopenharmony_ci	dragon_gsbi8_i2c_pins: gsbi8-i2c-state {
86362306a36Sopenharmony_ci		pins = "gpio64", "gpio65";
86462306a36Sopenharmony_ci		function = "gsbi8";
86562306a36Sopenharmony_ci		drive-strength = <16>;
86662306a36Sopenharmony_ci		/* These have external pull-up 2.2kOhm to 1.8V */
86762306a36Sopenharmony_ci		bias-disable;
86862306a36Sopenharmony_ci	};
86962306a36Sopenharmony_ci
87062306a36Sopenharmony_ci	dragon_gsbi12_i2c_pins: gsbi12-i2c-state {
87162306a36Sopenharmony_ci		pins = "gpio115", "gpio116";
87262306a36Sopenharmony_ci		function = "gsbi12";
87362306a36Sopenharmony_ci		drive-strength = <16>;
87462306a36Sopenharmony_ci		/* These have external pull-up 4.7kOhm to 1.8V */
87562306a36Sopenharmony_ci		bias-disable;
87662306a36Sopenharmony_ci	};
87762306a36Sopenharmony_ci
87862306a36Sopenharmony_ci	/* Primary serial port uart 0 pins */
87962306a36Sopenharmony_ci	dragon_gsbi12_serial_pins: gsbi12-serial-state {
88062306a36Sopenharmony_ci		tx-pins {
88162306a36Sopenharmony_ci			pins = "gpio117";
88262306a36Sopenharmony_ci			function = "gsbi12";
88362306a36Sopenharmony_ci			drive-strength = <8>;
88462306a36Sopenharmony_ci			bias-disable;
88562306a36Sopenharmony_ci		};
88662306a36Sopenharmony_ci		rx-pins {
88762306a36Sopenharmony_ci			pins = "gpio118";
88862306a36Sopenharmony_ci			function = "gsbi12";
88962306a36Sopenharmony_ci			drive-strength = <2>;
89062306a36Sopenharmony_ci			bias-pull-up;
89162306a36Sopenharmony_ci		};
89262306a36Sopenharmony_ci	};
89362306a36Sopenharmony_ci
89462306a36Sopenharmony_ci	dragon_ebi2_pins: ebi2-state {
89562306a36Sopenharmony_ci		/*
89662306a36Sopenharmony_ci		 * Pins used by EBI2 on the Dragonboard, actually only
89762306a36Sopenharmony_ci		 * CS2 is used by a real peripheral. CS0 is just
89862306a36Sopenharmony_ci		 * routed to a test point.
89962306a36Sopenharmony_ci		 */
90062306a36Sopenharmony_ci		mux0-pins {
90162306a36Sopenharmony_ci			pins =
90262306a36Sopenharmony_ci			    /* "gpio39", CS1A_N this is not good to mux */
90362306a36Sopenharmony_ci			    "gpio40", /* CS2A_N */
90462306a36Sopenharmony_ci			    "gpio134"; /* CS0_N testpoint TP29 */
90562306a36Sopenharmony_ci			function = "ebi2cs";
90662306a36Sopenharmony_ci		};
90762306a36Sopenharmony_ci		mux1-pins {
90862306a36Sopenharmony_ci			pins =
90962306a36Sopenharmony_ci			    /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */
91062306a36Sopenharmony_ci			    "gpio123", "gpio124", "gpio125", "gpio126",
91162306a36Sopenharmony_ci			    "gpio127", "gpio128", "gpio129", "gpio130",
91262306a36Sopenharmony_ci			    /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */
91362306a36Sopenharmony_ci			    "gpio135", "gpio136", "gpio137", "gpio138",
91462306a36Sopenharmony_ci			    "gpio139", "gpio140", "gpio141", "gpio142",
91562306a36Sopenharmony_ci			    "gpio143", "gpio144", "gpio145", "gpio146",
91662306a36Sopenharmony_ci			    "gpio147", "gpio148", "gpio149", "gpio150",
91762306a36Sopenharmony_ci			    "gpio151", /* EBI2_OE_N */
91862306a36Sopenharmony_ci			    "gpio153", /* EBI2_ADV */
91962306a36Sopenharmony_ci			    "gpio157"; /* EBI2_WE_N */
92062306a36Sopenharmony_ci			function = "ebi2";
92162306a36Sopenharmony_ci		};
92262306a36Sopenharmony_ci	};
92362306a36Sopenharmony_ci
92462306a36Sopenharmony_ci	/* Interrupt line for the KXSD9 accelerometer */
92562306a36Sopenharmony_ci	dragon_kxsd9_gpios: kxsd9-state {
92662306a36Sopenharmony_ci		pins = "gpio57"; /* IRQ line */
92762306a36Sopenharmony_ci		function = "gpio";
92862306a36Sopenharmony_ci		bias-pull-up;
92962306a36Sopenharmony_ci	};
93062306a36Sopenharmony_ci
93162306a36Sopenharmony_ci	dragon_tma340_gpios: tma340-state {
93262306a36Sopenharmony_ci		reset-pins {
93362306a36Sopenharmony_ci			/* RESET line, TS_ATTN, WAKE_CTP */
93462306a36Sopenharmony_ci			pins = "gpio58";
93562306a36Sopenharmony_ci			function = "gpio";
93662306a36Sopenharmony_ci			drive-strength = <6>;
93762306a36Sopenharmony_ci			bias-disable;
93862306a36Sopenharmony_ci		};
93962306a36Sopenharmony_ci		irq-pins {
94062306a36Sopenharmony_ci			pins = "gpio61"; /* IRQ line */
94162306a36Sopenharmony_ci			function = "gpio";
94262306a36Sopenharmony_ci			drive-strength = <2>;
94362306a36Sopenharmony_ci			bias-pull-up;
94462306a36Sopenharmony_ci		};
94562306a36Sopenharmony_ci	};
94662306a36Sopenharmony_ci};
94762306a36Sopenharmony_ci
94862306a36Sopenharmony_ci&pm8058_xoadc {
94962306a36Sopenharmony_ci	/* Reference voltage 2.2 V */
95062306a36Sopenharmony_ci	xoadc-ref-supply = <&pm8058_l18>;
95162306a36Sopenharmony_ci
95262306a36Sopenharmony_ci	/* Board-specific channels */
95362306a36Sopenharmony_ci	mpp5@5 {
95462306a36Sopenharmony_ci		/* Connected to AOUT of ALS sensor */
95562306a36Sopenharmony_ci		reg = <0x00 0x05>;
95662306a36Sopenharmony_ci	};
95762306a36Sopenharmony_ci	mpp6@6 {
95862306a36Sopenharmony_ci		/* Connected to test point TP43 */
95962306a36Sopenharmony_ci		reg = <0x00 0x06>;
96062306a36Sopenharmony_ci	};
96162306a36Sopenharmony_ci	mpp7@7 {
96262306a36Sopenharmony_ci		/* Connected to battery thermistor */
96362306a36Sopenharmony_ci		reg = <0x00 0x07>;
96462306a36Sopenharmony_ci	};
96562306a36Sopenharmony_ci	mpp8@8 {
96662306a36Sopenharmony_ci		/* Connected to battery ID detector */
96762306a36Sopenharmony_ci		reg = <0x00 0x08>;
96862306a36Sopenharmony_ci	};
96962306a36Sopenharmony_ci	mpp9@9 {
97062306a36Sopenharmony_ci		/* Connected to XO thermistor */
97162306a36Sopenharmony_ci		reg = <0x00 0x09>;
97262306a36Sopenharmony_ci	};
97362306a36Sopenharmony_ci};
974