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

	regulators {
		compatible = "simple-bus";

		/* 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-type = "voltage";
			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>;
	};

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

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

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

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

			dragon_gsbi12_i2c_pins: gsbi12_i2c {
				mux {
					pins = "gpio115", "gpio116";
					function = "gsbi12";
				};
				pinconf {
					pins = "gpio115", "gpio116";
					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 {
				mux {
					pins = "gpio117", "gpio118";
					function = "gsbi12";
				};
				tx {
					pins = "gpio117";
					drive-strength = <8>;
					bias-disable;
				};
				rx {
					pins = "gpio118";
					drive-strength = <2>;
					bias-pull-up;
				};
			};

			dragon_ebi2_pins: ebi2 {
				/*
				 * 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 =
					    /* "gpio39", CS1A_N this is not good to mux */
					    "gpio40", /* CS2A_N */
					    "gpio134"; /* CS0_N testpoint TP29 */
					function = "ebi2cs";
				};
				mux1 {
					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 {
				irq {
					pins = "gpio57"; /* IRQ line */
					bias-pull-up;
				};
			};
		};

		qcom,ssbi@500000 {
			pmic@0 {
				keypad@148 {
					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>;
				};

				gpio@150 {
					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;
						};
					};
				};

				mpps@50 {
					dragon_cm3605_mpps: cm3605-mpps-state {
						mpp5 {
							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>;
						};
					};
				};

				xoadc@197 {
					/* 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>;
					};
				};

				led@48 {
					/*
					 * 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.
					 */
					compatible = "qcom,pm8058-keypad-led";
					reg = <0x48>;
					label = "pm8058:infrared:proximitysensor";
					default-state = "off";
					linux,default-trigger = "cm3605";
				};
				led@131 {
					compatible = "qcom,pm8058-led";
					reg = <0x131>;
					label = "pm8058:red";
					color = <LED_COLOR_ID_RED>;
					default-state = "off";
				};
				led@132 {
					/*
					 * This is actually green too on my
					 * board, but documented as yellow.
					 */
					compatible = "qcom,pm8058-led";
					reg = <0x132>;
					label = "pm8058:yellow";
					color = <LED_COLOR_ID_YELLOW>;
					default-state = "off";
					linux,default-trigger = "mmc0";
				};
				led@133 {
					compatible = "qcom,pm8058-led";
					reg = <0x133>;
					label = "pm8058:green";
					function = LED_FUNCTION_HEARTBEAT;
					color = <LED_COLOR_ID_GREEN>;
					default-state = "on";
					linux,default-trigger = "heartbeat";
				};
			};
		};

		gsbi@19800000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C>;

			i2c@19880000 {
				status = "okay";
				pinctrl-names = "default";
				pinctrl-0 = <&dragon_gsbi8_i2c_pins>;

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

		gsbi@19c00000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C_UART>;

			serial@19c40000 {
				status = "okay";
				pinctrl-names = "default";
				pinctrl-0 = <&dragon_gsbi12_serial_pins>;
			};

			i2c@19c80000 {
				status = "okay";
				pinctrl-names = "default";
				pinctrl-0 = <&dragon_gsbi12_i2c_pins>;

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

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

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

		rpm@104000 {
			/*
			 * Set up of the PMIC RPM regulators for this board
			 * PM8901 supplies "preliminary regulators" whatever
			 * that means
			 */
			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>;

				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 {
					regulator-min-microvolt = <2850000>;
					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 { };

			};

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

				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>;
				};
			};
		};
		amba {
			/* Internal 3.69 GiB eMMC */
			mmc@12400000 {
				status = "okay";
				pinctrl-names = "default";
				pinctrl-0 = <&dragon_sdcc1_pins>;
				vmmc-supply = <&pm8901_l5>;
				vqmmc-supply = <&pm8901_lvs0>;
			};

			/* External micro SD card, directly connected, pulled up to 2.85 V */
			mmc@12180000 {
				status = "okay";
				/* 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>;
			};

			/*
			 * Second external micro SD card, using two TXB104RGYR levelshifters
			 * to lift from 1.8 V to 2.85 V
			 */
			mmc@12200000 {
				status = "okay";
				/* 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>;
			};
		};
	};
};
