1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h>
3f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
4f126890aSEmmanuel Vadot#include <dt-bindings/leds/common.h>
5f126890aSEmmanuel Vadot#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
6f126890aSEmmanuel Vadot#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
7f126890aSEmmanuel Vadot#include "qcom-msm8660.dtsi"
8*8d13bc63SEmmanuel Vadot#include "pm8058.dtsi"
9f126890aSEmmanuel Vadot
10f126890aSEmmanuel Vadot/ {
11f126890aSEmmanuel Vadot	model = "Qualcomm APQ8060 Dragonboard";
12f126890aSEmmanuel Vadot	compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
13f126890aSEmmanuel Vadot
14f126890aSEmmanuel Vadot	aliases {
15f126890aSEmmanuel Vadot		serial0 = &gsbi12_serial;
16f126890aSEmmanuel Vadot	};
17f126890aSEmmanuel Vadot
18f126890aSEmmanuel Vadot	chosen {
19f126890aSEmmanuel Vadot		stdout-path = "serial0:115200n8";
20f126890aSEmmanuel Vadot	};
21f126890aSEmmanuel Vadot
22f126890aSEmmanuel Vadot	/* Main power of the board: 3.7V */
23f126890aSEmmanuel Vadot	vph: regulator-fixed {
24f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
25f126890aSEmmanuel Vadot		regulator-min-microvolt = <3700000>;
26f126890aSEmmanuel Vadot		regulator-max-microvolt = <3700000>;
27f126890aSEmmanuel Vadot		regulator-name = "VPH";
28f126890aSEmmanuel Vadot		regulator-always-on;
29f126890aSEmmanuel Vadot		regulator-boot-on;
30f126890aSEmmanuel Vadot	};
31f126890aSEmmanuel Vadot
32f126890aSEmmanuel Vadot	/* GPIO controlled ethernet power regulator */
33f126890aSEmmanuel Vadot	dragon_veth: xc622a331mrg {
34f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
35f126890aSEmmanuel Vadot		regulator-name = "XC6222A331MR-G";
36f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
37f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
38f126890aSEmmanuel Vadot		vin-supply = <&vph>;
39f126890aSEmmanuel Vadot		gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>;
40f126890aSEmmanuel Vadot		enable-active-high;
41f126890aSEmmanuel Vadot		pinctrl-names = "default";
42f126890aSEmmanuel Vadot		pinctrl-0 = <&dragon_veth_gpios>;
43f126890aSEmmanuel Vadot		regulator-always-on;
44f126890aSEmmanuel Vadot	};
45f126890aSEmmanuel Vadot
46f126890aSEmmanuel Vadot	/* VDDvario fixed regulator */
47f126890aSEmmanuel Vadot	dragon_vario: nds332p {
48f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
49f126890aSEmmanuel Vadot		regulator-name = "NDS332P";
50f126890aSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
51f126890aSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
52f126890aSEmmanuel Vadot		vin-supply = <&pm8058_s3>;
53f126890aSEmmanuel Vadot	};
54f126890aSEmmanuel Vadot
55f126890aSEmmanuel Vadot	/* This is a levelshifter for SDCC5 */
56f126890aSEmmanuel Vadot	dragon_vio_txb: txb0104rgyr {
57f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
58f126890aSEmmanuel Vadot		regulator-name = "Dragon SDCC levelshifter";
59f126890aSEmmanuel Vadot		vin-supply = <&pm8058_l14>;
60f126890aSEmmanuel Vadot		regulator-always-on;
61f126890aSEmmanuel Vadot	};
62f126890aSEmmanuel Vadot
63f126890aSEmmanuel Vadot	/*
64f126890aSEmmanuel Vadot	 * Capella CM3605 light and proximity sensor mounted directly
65f126890aSEmmanuel Vadot	 * on the sensor board.
66f126890aSEmmanuel Vadot	 */
67f126890aSEmmanuel Vadot	cm3605 {
68f126890aSEmmanuel Vadot		compatible = "capella,cm3605";
69f126890aSEmmanuel Vadot		vdd-supply = <&pm8058_l14>; // 2.85V
70f126890aSEmmanuel Vadot		aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>;
71f126890aSEmmanuel Vadot		capella,aset-resistance-ohms = <100000>;
72f126890aSEmmanuel Vadot		/* Trig on both edges - getting close or far away */
73f126890aSEmmanuel Vadot		interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>;
74f126890aSEmmanuel Vadot		/* MPP05 analog input to the XOADC */
75*8d13bc63SEmmanuel Vadot		io-channels = <&pm8058_xoadc 0x00 0x05>;
76f126890aSEmmanuel Vadot		io-channel-names = "aout";
77f126890aSEmmanuel Vadot		pinctrl-names = "default";
78f126890aSEmmanuel Vadot		pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>;
79f126890aSEmmanuel Vadot	};
80f126890aSEmmanuel Vadot};
81f126890aSEmmanuel Vadot
82f126890aSEmmanuel Vadot&ebi2 {
83f126890aSEmmanuel Vadot	/* The EBI2 will instantiate first, then populate its children */
84f126890aSEmmanuel Vadot	pinctrl-names = "default";
85f126890aSEmmanuel Vadot	pinctrl-0 = <&dragon_ebi2_pins>;
86f126890aSEmmanuel Vadot	status = "okay";
87f126890aSEmmanuel Vadot
88f126890aSEmmanuel Vadot	/*
89f126890aSEmmanuel Vadot	 * An on-board SMSC LAN9221 chip for "debug ethernet",
90f126890aSEmmanuel Vadot	 * which is actually just an ordinary ethernet on the
91f126890aSEmmanuel Vadot	 * EBI2. This has a 25MHz chrystal next to it, so no
92f126890aSEmmanuel Vadot	 * clocking is needed.
93f126890aSEmmanuel Vadot	 */
94f126890aSEmmanuel Vadot	ethernet@2,0 {
95f126890aSEmmanuel Vadot		compatible = "smsc,lan9221", "smsc,lan9115";
96f126890aSEmmanuel Vadot		reg = <2 0x0 0x100>;
97f126890aSEmmanuel Vadot		/*
98f126890aSEmmanuel Vadot		 * The second interrupt is the PME interrupt
99f126890aSEmmanuel Vadot		 * for network wakeup, connected to the TLMM.
100f126890aSEmmanuel Vadot		 */
101f126890aSEmmanuel Vadot		interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>,
102f126890aSEmmanuel Vadot				    <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
103f126890aSEmmanuel Vadot		reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
104f126890aSEmmanuel Vadot		vdd33a-supply = <&dragon_veth>;
105f126890aSEmmanuel Vadot		vddvario-supply = <&dragon_vario>;
106f126890aSEmmanuel Vadot		pinctrl-names = "default";
107f126890aSEmmanuel Vadot		pinctrl-0 = <&dragon_ethernet_gpios>;
108f126890aSEmmanuel Vadot		phy-mode = "mii";
109f126890aSEmmanuel Vadot		reg-io-width = <2>;
110f126890aSEmmanuel Vadot		smsc,force-external-phy;
111f126890aSEmmanuel Vadot		smsc,irq-push-pull;
112f126890aSEmmanuel Vadot
113f126890aSEmmanuel Vadot		/*
114f126890aSEmmanuel Vadot		 * SLOW chipselect config
115f126890aSEmmanuel Vadot		 * Delay 9 cycles (140ns@64MHz) between SMSC
116f126890aSEmmanuel Vadot		 * LAN9221 Ethernet controller reads and writes
117f126890aSEmmanuel Vadot		 * on CS2.
118f126890aSEmmanuel Vadot		 */
119f126890aSEmmanuel Vadot		qcom,xmem-recovery-cycles = <0>;
120f126890aSEmmanuel Vadot		qcom,xmem-write-hold-cycles = <3>;
121f126890aSEmmanuel Vadot		qcom,xmem-write-delta-cycles = <31>;
122f126890aSEmmanuel Vadot		qcom,xmem-read-delta-cycles = <28>;
123f126890aSEmmanuel Vadot		qcom,xmem-write-wait-cycles = <9>;
124f126890aSEmmanuel Vadot		qcom,xmem-read-wait-cycles = <9>;
125f126890aSEmmanuel Vadot	};
126f126890aSEmmanuel Vadot};
127f126890aSEmmanuel Vadot
128f126890aSEmmanuel Vadot&gsbi3 {
129f126890aSEmmanuel Vadot	qcom,mode = <GSBI_PROT_I2C>;
130f126890aSEmmanuel Vadot	status = "okay";
131f126890aSEmmanuel Vadot};
132f126890aSEmmanuel Vadot
133f126890aSEmmanuel Vadot&gsbi3_i2c {
134f126890aSEmmanuel Vadot	pinctrl-names = "default";
135f126890aSEmmanuel Vadot	pinctrl-0 = <&dragon_gsbi3_i2c_pins>;
136f126890aSEmmanuel Vadot	status = "okay";
137f126890aSEmmanuel Vadot
138f126890aSEmmanuel Vadot	touchscreen@24 {
139f126890aSEmmanuel Vadot		compatible = "cypress,cy8ctma340";
140f126890aSEmmanuel Vadot		reg = <0x24>;
141f126890aSEmmanuel Vadot		/* Certainly we can do at least 400 kHz */
142f126890aSEmmanuel Vadot		clock-frequency = <400000>;
143f126890aSEmmanuel Vadot		/* IRQ on GPIO61 called /CTP_INT */
144f126890aSEmmanuel Vadot		interrupt-parent = <&tlmm>;
145f126890aSEmmanuel Vadot		interrupts = <61 IRQ_TYPE_EDGE_FALLING>;
146f126890aSEmmanuel Vadot		/*
147f126890aSEmmanuel Vadot		 * The I2C bus is using a PCA9306 level translator from L16A
148f126890aSEmmanuel Vadot		 * to L2B so these two voltages are needed and L16A is
149f126890aSEmmanuel Vadot		 * kind of the IO voltage, however L16Aisn't really fed to
150f126890aSEmmanuel Vadot		 * the TMA340, which relies entirely on L2B (PM8901 L2).
151f126890aSEmmanuel Vadot		 */
152f126890aSEmmanuel Vadot		vcpin-supply = <&pm8058_l16>;
153f126890aSEmmanuel Vadot		vdd-supply = <&pm8901_l2>;
154f126890aSEmmanuel Vadot		/* GPIO58, called WAKE_CTP */
155f126890aSEmmanuel Vadot		reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
156f126890aSEmmanuel Vadot		touchscreen-size-x = <480>;
157f126890aSEmmanuel Vadot		touchscreen-size-y = <800>;
158f126890aSEmmanuel Vadot		active-interval-ms = <0>;
159f126890aSEmmanuel Vadot		touch-timeout-ms = <255>;
160f126890aSEmmanuel Vadot		lowpower-interval-ms = <10>;
161f126890aSEmmanuel Vadot		bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
162f126890aSEmmanuel Vadot		pinctrl-names = "default";
163f126890aSEmmanuel Vadot		pinctrl-0 = <&dragon_tma340_gpios>;
164f126890aSEmmanuel Vadot	};
165f126890aSEmmanuel Vadot};
166f126890aSEmmanuel Vadot
167f126890aSEmmanuel Vadot&gsbi8 {
168f126890aSEmmanuel Vadot	qcom,mode = <GSBI_PROT_I2C>;
169f126890aSEmmanuel Vadot	status = "okay";
170f126890aSEmmanuel Vadot};
171f126890aSEmmanuel Vadot
172f126890aSEmmanuel Vadot&gsbi8_i2c {
173f126890aSEmmanuel Vadot	pinctrl-names = "default";
174f126890aSEmmanuel Vadot	pinctrl-0 = <&dragon_gsbi8_i2c_pins>;
175f126890aSEmmanuel Vadot	status = "okay";
176f126890aSEmmanuel Vadot
177f126890aSEmmanuel Vadot	eeprom@52 {
178f126890aSEmmanuel Vadot		/* A 16KiB Platform ID EEPROM on the CPU carrier board */
179f126890aSEmmanuel Vadot		compatible = "atmel,24c128";
180f126890aSEmmanuel Vadot		reg = <0x52>;
181f126890aSEmmanuel Vadot		vcc-supply = <&pm8058_s3>;
182f126890aSEmmanuel Vadot		pagesize = <64>;
183f126890aSEmmanuel Vadot	};
184f126890aSEmmanuel Vadot	wm8903: wm8903@1a {
185f126890aSEmmanuel Vadot		/* This Woolfson Micro device has an unrouted interrupt line */
186f126890aSEmmanuel Vadot		compatible = "wlf,wm8903";
187f126890aSEmmanuel Vadot		reg = <0x1a>;
188f126890aSEmmanuel Vadot
189f126890aSEmmanuel Vadot		AVDD-supply = <&pm8058_l16>;
190f126890aSEmmanuel Vadot		CPVDD-supply = <&pm8058_l16>;
191f126890aSEmmanuel Vadot		DBVDD-supply = <&pm8058_s3>;
192f126890aSEmmanuel Vadot		DCVDD-supply = <&pm8058_l0>;
193f126890aSEmmanuel Vadot
194f126890aSEmmanuel Vadot		gpio-controller;
195f126890aSEmmanuel Vadot		#gpio-cells = <2>;
196f126890aSEmmanuel Vadot
197f126890aSEmmanuel Vadot		micdet-cfg = <0>;
198f126890aSEmmanuel Vadot		micdet-delay = <100>;
199f126890aSEmmanuel Vadot		gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
200f126890aSEmmanuel Vadot	};
201f126890aSEmmanuel Vadot};
202f126890aSEmmanuel Vadot
203f126890aSEmmanuel Vadot&gsbi12 {
204f126890aSEmmanuel Vadot	qcom,mode = <GSBI_PROT_I2C_UART>;
205f126890aSEmmanuel Vadot	status = "okay";
206f126890aSEmmanuel Vadot};
207f126890aSEmmanuel Vadot
208f126890aSEmmanuel Vadot&gsbi12_serial {
209f126890aSEmmanuel Vadot	pinctrl-names = "default";
210f126890aSEmmanuel Vadot	pinctrl-0 = <&dragon_gsbi12_serial_pins>;
211f126890aSEmmanuel Vadot	status = "okay";
212f126890aSEmmanuel Vadot};
213f126890aSEmmanuel Vadot
214f126890aSEmmanuel Vadot&gsbi12_i2c {
215f126890aSEmmanuel Vadot	pinctrl-names = "default";
216f126890aSEmmanuel Vadot	pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
217f126890aSEmmanuel Vadot	status = "okay";
218f126890aSEmmanuel Vadot
219f126890aSEmmanuel Vadot	ak8975@c {
220f126890aSEmmanuel Vadot		compatible = "asahi-kasei,ak8975";
221f126890aSEmmanuel Vadot		reg = <0x0c>;
222f126890aSEmmanuel Vadot		interrupt-parent = <&pm8058_gpio>;
223f126890aSEmmanuel Vadot		interrupts = <33 IRQ_TYPE_EDGE_RISING>;
224f126890aSEmmanuel Vadot		pinctrl-names = "default";
225f126890aSEmmanuel Vadot		pinctrl-0 = <&dragon_ak8975_gpios>;
226f126890aSEmmanuel Vadot		vid-supply = <&pm8058_lvs0>; // 1.8V
227f126890aSEmmanuel Vadot		vdd-supply = <&pm8058_l14>; // 2.85V
228f126890aSEmmanuel Vadot	};
229f126890aSEmmanuel Vadot	bmp085@77 {
230f126890aSEmmanuel Vadot		compatible = "bosch,bmp085";
231f126890aSEmmanuel Vadot		reg = <0x77>;
232f126890aSEmmanuel Vadot		interrupt-parent = <&pm8058_gpio>;
233f126890aSEmmanuel Vadot		interrupts = <16 IRQ_TYPE_EDGE_RISING>;
234f126890aSEmmanuel Vadot		reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
235f126890aSEmmanuel Vadot		pinctrl-names = "default";
236f126890aSEmmanuel Vadot		pinctrl-0 = <&dragon_bmp085_gpios>;
237f126890aSEmmanuel Vadot		vddd-supply = <&pm8058_lvs0>; // 1.8V
238f126890aSEmmanuel Vadot		vdda-supply = <&pm8058_l14>; // 2.85V
239f126890aSEmmanuel Vadot	};
240f126890aSEmmanuel Vadot	mpu3050@68 {
241f126890aSEmmanuel Vadot		compatible = "invensense,mpu3050";
242f126890aSEmmanuel Vadot		reg = <0x68>;
243f126890aSEmmanuel Vadot		/*
244f126890aSEmmanuel Vadot		 * GPIO17 is pulled high by a 10k
245f126890aSEmmanuel Vadot		 * resistor to VLOGIC so needs to be
246f126890aSEmmanuel Vadot		 * active low/falling edge.
247f126890aSEmmanuel Vadot		 */
248f126890aSEmmanuel Vadot		interrupts-extended = <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>;
249f126890aSEmmanuel Vadot		pinctrl-names = "default";
250f126890aSEmmanuel Vadot		pinctrl-0 = <&dragon_mpu3050_gpios>;
251f126890aSEmmanuel Vadot		vlogic-supply = <&pm8058_lvs0>; // 1.8V
252f126890aSEmmanuel Vadot		vdd-supply = <&pm8058_l14>; // 2.85V
253f126890aSEmmanuel Vadot
254f126890aSEmmanuel Vadot		/*
255f126890aSEmmanuel Vadot		 * The MPU-3050 acts as a hub for the
256f126890aSEmmanuel Vadot		 * accelerometer.
257f126890aSEmmanuel Vadot		 */
258f126890aSEmmanuel Vadot		i2c-gate {
259f126890aSEmmanuel Vadot			#address-cells = <1>;
260f126890aSEmmanuel Vadot			#size-cells = <0>;
261f126890aSEmmanuel Vadot
262f126890aSEmmanuel Vadot			kxsd9@18 {
263f126890aSEmmanuel Vadot				compatible = "kionix,kxsd9";
264f126890aSEmmanuel Vadot				reg = <0x18>;
265f126890aSEmmanuel Vadot				interrupt-parent = <&tlmm>;
266f126890aSEmmanuel Vadot				interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
267f126890aSEmmanuel Vadot				pinctrl-names = "default";
268f126890aSEmmanuel Vadot				pinctrl-0 = <&dragon_kxsd9_gpios>;
269f126890aSEmmanuel Vadot				iovdd-supply = <&pm8058_lvs0>; // 1.8V
270f126890aSEmmanuel Vadot				vdd-supply = <&pm8058_l14>; // 2.85V
271f126890aSEmmanuel Vadot			};
272f126890aSEmmanuel Vadot		};
273f126890aSEmmanuel Vadot	};
274f126890aSEmmanuel Vadot};
275f126890aSEmmanuel Vadot
276*8d13bc63SEmmanuel Vadot&pm8058 {
277*8d13bc63SEmmanuel Vadot	interrupts-extended = <&tlmm 88 IRQ_TYPE_LEVEL_LOW>;
278*8d13bc63SEmmanuel Vadot};
279*8d13bc63SEmmanuel Vadot
280f126890aSEmmanuel Vadot&pm8058_gpio {
281f126890aSEmmanuel Vadot	dragon_ethernet_gpios: ethernet-state {
282f126890aSEmmanuel Vadot		pinconf {
283f126890aSEmmanuel Vadot			pins = "gpio7";
284f126890aSEmmanuel Vadot			function = "normal";
285f126890aSEmmanuel Vadot			input-enable;
286f126890aSEmmanuel Vadot			bias-disable;
287f126890aSEmmanuel Vadot			power-source = <PM8058_GPIO_S3>;
288f126890aSEmmanuel Vadot		};
289f126890aSEmmanuel Vadot	};
290f126890aSEmmanuel Vadot	dragon_bmp085_gpios: bmp085-state {
291f126890aSEmmanuel Vadot		pinconf {
292f126890aSEmmanuel Vadot			pins = "gpio16";
293f126890aSEmmanuel Vadot			function = "normal";
294f126890aSEmmanuel Vadot			input-enable;
295f126890aSEmmanuel Vadot			bias-disable;
296f126890aSEmmanuel Vadot			power-source = <PM8058_GPIO_S3>;
297f126890aSEmmanuel Vadot		};
298f126890aSEmmanuel Vadot	};
299f126890aSEmmanuel Vadot	dragon_mpu3050_gpios: mpu3050-state {
300f126890aSEmmanuel Vadot		pinconf {
301f126890aSEmmanuel Vadot			pins = "gpio17";
302f126890aSEmmanuel Vadot			function = "normal";
303f126890aSEmmanuel Vadot			input-enable;
304f126890aSEmmanuel Vadot			bias-disable;
305f126890aSEmmanuel Vadot			power-source = <PM8058_GPIO_S3>;
306f126890aSEmmanuel Vadot		};
307f126890aSEmmanuel Vadot	};
308f126890aSEmmanuel Vadot	dragon_sdcc3_gpios: sdcc3-state {
309f126890aSEmmanuel Vadot		pinconf {
310f126890aSEmmanuel Vadot			pins = "gpio22";
311f126890aSEmmanuel Vadot			function = "normal";
312f126890aSEmmanuel Vadot			input-enable;
313f126890aSEmmanuel Vadot			bias-disable;
314f126890aSEmmanuel Vadot			power-source = <PM8058_GPIO_S3>;
315f126890aSEmmanuel Vadot		};
316f126890aSEmmanuel Vadot	};
317f126890aSEmmanuel Vadot	dragon_sdcc5_gpios: sdcc5-state {
318f126890aSEmmanuel Vadot		pinconf {
319f126890aSEmmanuel Vadot			pins = "gpio26";
320f126890aSEmmanuel Vadot			function = "normal";
321f126890aSEmmanuel Vadot			input-enable;
322f126890aSEmmanuel Vadot			bias-pull-up;
323f126890aSEmmanuel Vadot			qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>;
324f126890aSEmmanuel Vadot			power-source = <PM8058_GPIO_S3>;
325f126890aSEmmanuel Vadot		};
326f126890aSEmmanuel Vadot	};
327f126890aSEmmanuel Vadot	dragon_ak8975_gpios: ak8975-state {
328f126890aSEmmanuel Vadot		pinconf {
329f126890aSEmmanuel Vadot			pins = "gpio33";
330f126890aSEmmanuel Vadot			function = "normal";
331f126890aSEmmanuel Vadot			input-enable;
332f126890aSEmmanuel Vadot			bias-disable;
333f126890aSEmmanuel Vadot			power-source = <PM8058_GPIO_S3>;
334f126890aSEmmanuel Vadot		};
335f126890aSEmmanuel Vadot	};
336f126890aSEmmanuel Vadot	dragon_cm3605_gpios: cm3605-state {
337f126890aSEmmanuel Vadot		/* Pin 34 connected to the proxy IRQ */
338f126890aSEmmanuel Vadot		gpio34-pins {
339f126890aSEmmanuel Vadot			pins = "gpio34";
340f126890aSEmmanuel Vadot			function = "normal";
341f126890aSEmmanuel Vadot			input-enable;
342f126890aSEmmanuel Vadot			bias-disable;
343f126890aSEmmanuel Vadot			power-source = <PM8058_GPIO_S3>;
344f126890aSEmmanuel Vadot		};
345f126890aSEmmanuel Vadot		/* Pin 35 connected to ASET */
346f126890aSEmmanuel Vadot		gpio35-pins {
347f126890aSEmmanuel Vadot			pins = "gpio35";
348f126890aSEmmanuel Vadot			function = "normal";
349f126890aSEmmanuel Vadot			output-high;
350f126890aSEmmanuel Vadot			bias-disable;
351f126890aSEmmanuel Vadot			power-source = <PM8058_GPIO_S3>;
352f126890aSEmmanuel Vadot		};
353f126890aSEmmanuel Vadot	};
354f126890aSEmmanuel Vadot	dragon_veth_gpios: veth-state {
355f126890aSEmmanuel Vadot		pinconf {
356f126890aSEmmanuel Vadot			pins = "gpio40";
357f126890aSEmmanuel Vadot			function = "normal";
358f126890aSEmmanuel Vadot			bias-disable;
359f126890aSEmmanuel Vadot			drive-push-pull;
360f126890aSEmmanuel Vadot		};
361f126890aSEmmanuel Vadot	};
362f126890aSEmmanuel Vadot};
363f126890aSEmmanuel Vadot
364f126890aSEmmanuel Vadot&pm8058_keypad {
365f126890aSEmmanuel Vadot	linux,keymap = <
366f126890aSEmmanuel Vadot		MATRIX_KEY(0, 0, KEY_MENU)
367f126890aSEmmanuel Vadot		MATRIX_KEY(0, 2, KEY_1)
368f126890aSEmmanuel Vadot		MATRIX_KEY(0, 3, KEY_4)
369f126890aSEmmanuel Vadot		MATRIX_KEY(0, 4, KEY_7)
370f126890aSEmmanuel Vadot		MATRIX_KEY(1, 0, KEY_UP)
371f126890aSEmmanuel Vadot		MATRIX_KEY(1, 1, KEY_LEFT)
372f126890aSEmmanuel Vadot		MATRIX_KEY(1, 2, KEY_DOWN)
373f126890aSEmmanuel Vadot		MATRIX_KEY(1, 3, KEY_5)
374f126890aSEmmanuel Vadot		MATRIX_KEY(1, 3, KEY_8)
375f126890aSEmmanuel Vadot		MATRIX_KEY(2, 0, KEY_HOME)
376f126890aSEmmanuel Vadot		MATRIX_KEY(2, 1, KEY_REPLY)
377f126890aSEmmanuel Vadot		MATRIX_KEY(2, 2, KEY_2)
378f126890aSEmmanuel Vadot		MATRIX_KEY(2, 3, KEY_6)
379f126890aSEmmanuel Vadot		MATRIX_KEY(3, 0, KEY_VOLUMEUP)
380f126890aSEmmanuel Vadot		MATRIX_KEY(3, 1, KEY_RIGHT)
381f126890aSEmmanuel Vadot		MATRIX_KEY(3, 2, KEY_3)
382f126890aSEmmanuel Vadot		MATRIX_KEY(3, 3, KEY_9)
383f126890aSEmmanuel Vadot		MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE)
384f126890aSEmmanuel Vadot		MATRIX_KEY(4, 0, KEY_VOLUMEDOWN)
385f126890aSEmmanuel Vadot		MATRIX_KEY(4, 1, KEY_BACK)
386f126890aSEmmanuel Vadot		MATRIX_KEY(4, 2, KEY_CAMERA)
387f126890aSEmmanuel Vadot		MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE)
388f126890aSEmmanuel Vadot	>;
389f126890aSEmmanuel Vadot	keypad,num-rows = <6>;
390f126890aSEmmanuel Vadot	keypad,num-columns = <5>;
391f126890aSEmmanuel Vadot};
392f126890aSEmmanuel Vadot
393f126890aSEmmanuel Vadot&pm8058_led48 {
394f126890aSEmmanuel Vadot	/*
395f126890aSEmmanuel Vadot	 * The keypad LED @0x48 is routed to
396f126890aSEmmanuel Vadot	 * the sensor board where it is
397f126890aSEmmanuel Vadot	 * connected to an infrared LED
398f126890aSEmmanuel Vadot	 * SFH4650 (60mW, @850nm) next to the
399f126890aSEmmanuel Vadot	 * ambient light and proximity sensor
400f126890aSEmmanuel Vadot	 * Capella Microsystems CM3605.
401f126890aSEmmanuel Vadot	 */
402f126890aSEmmanuel Vadot	label = "pm8058:infrared:proximitysensor";
403f126890aSEmmanuel Vadot	default-state = "off";
404f126890aSEmmanuel Vadot	linux,default-trigger = "cm3605";
405f126890aSEmmanuel Vadot	status = "okay";
406f126890aSEmmanuel Vadot};
407f126890aSEmmanuel Vadot
408f126890aSEmmanuel Vadot&pm8058_led131 {
409f126890aSEmmanuel Vadot	label = "pm8058:red";
410f126890aSEmmanuel Vadot	color = <LED_COLOR_ID_RED>;
411f126890aSEmmanuel Vadot	default-state = "off";
412f126890aSEmmanuel Vadot	status = "okay";
413f126890aSEmmanuel Vadot};
414f126890aSEmmanuel Vadot
415f126890aSEmmanuel Vadot&pm8058_led132 {
416f126890aSEmmanuel Vadot	/*
417f126890aSEmmanuel Vadot	 * This is actually green too on my
418f126890aSEmmanuel Vadot	 * board, but documented as yellow.
419f126890aSEmmanuel Vadot	 */
420f126890aSEmmanuel Vadot	label = "pm8058:yellow";
421f126890aSEmmanuel Vadot	color = <LED_COLOR_ID_YELLOW>;
422f126890aSEmmanuel Vadot	default-state = "off";
423f126890aSEmmanuel Vadot	linux,default-trigger = "mmc0";
424f126890aSEmmanuel Vadot	status = "okay";
425f126890aSEmmanuel Vadot};
426f126890aSEmmanuel Vadot
427f126890aSEmmanuel Vadot&pm8058_led133 {
428f126890aSEmmanuel Vadot	label = "pm8058:green";
429f126890aSEmmanuel Vadot	function = LED_FUNCTION_HEARTBEAT;
430f126890aSEmmanuel Vadot	color = <LED_COLOR_ID_GREEN>;
431f126890aSEmmanuel Vadot	default-state = "on";
432f126890aSEmmanuel Vadot	linux,default-trigger = "heartbeat";
433f126890aSEmmanuel Vadot	status = "okay";
434f126890aSEmmanuel Vadot};
435f126890aSEmmanuel Vadot
436f126890aSEmmanuel Vadot&pm8058_mpps {
437f126890aSEmmanuel Vadot	dragon_cm3605_mpps: cm3605-mpps-state {
438f126890aSEmmanuel Vadot		pins = "mpp5";
439f126890aSEmmanuel Vadot		function = "analog";
440f126890aSEmmanuel Vadot		input-enable;
441f126890aSEmmanuel Vadot		bias-high-impedance;
442f126890aSEmmanuel Vadot		/* Let's use channel 5 */
443f126890aSEmmanuel Vadot		qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>;
444f126890aSEmmanuel Vadot		power-source = <PM8058_GPIO_S3>;
445f126890aSEmmanuel Vadot	};
446f126890aSEmmanuel Vadot};
447f126890aSEmmanuel Vadot
448f126890aSEmmanuel Vadot&rpm {
449f126890aSEmmanuel Vadot	/*
450f126890aSEmmanuel Vadot	 * Set up of the PMIC RPM regulators for this board
451f126890aSEmmanuel Vadot	 * PM8901 supplies "preliminary regulators" whatever
452f126890aSEmmanuel Vadot	 * that means
453f126890aSEmmanuel Vadot	 */
454f126890aSEmmanuel Vadot	regulators-0 {
455*8d13bc63SEmmanuel Vadot		compatible = "qcom,rpm-pm8901-regulators";
456*8d13bc63SEmmanuel Vadot
457f126890aSEmmanuel Vadot		vdd_l0-supply = <&pm8901_s4>;
458f126890aSEmmanuel Vadot		vdd_l1-supply = <&vph>;
459f126890aSEmmanuel Vadot		vdd_l2-supply = <&vph>;
460f126890aSEmmanuel Vadot		vdd_l3-supply = <&vph>;
461f126890aSEmmanuel Vadot		vdd_l4-supply = <&vph>;
462f126890aSEmmanuel Vadot		vdd_l5-supply = <&vph>;
463f126890aSEmmanuel Vadot		vdd_l6-supply = <&vph>;
464f126890aSEmmanuel Vadot		/* vdd_s0-supply, vdd_s1-supply: SAW regulators */
465f126890aSEmmanuel Vadot		vdd_s2-supply = <&vph>;
466f126890aSEmmanuel Vadot		vdd_s3-supply = <&vph>;
467f126890aSEmmanuel Vadot		vdd_s4-supply = <&vph>;
468f126890aSEmmanuel Vadot		lvs0_in-supply = <&pm8058_s3>;
469f126890aSEmmanuel Vadot		lvs1_in-supply = <&pm8901_s4>;
470f126890aSEmmanuel Vadot		lvs2_in-supply = <&pm8058_l0>;
471f126890aSEmmanuel Vadot		lvs3_in-supply = <&pm8058_s2>;
472f126890aSEmmanuel Vadot		mvs_in-supply = <&pm8058_s3>;
473f126890aSEmmanuel Vadot
474*8d13bc63SEmmanuel Vadot		pm8901_l0: l0 {
475f126890aSEmmanuel Vadot			regulator-min-microvolt = <1200000>;
476f126890aSEmmanuel Vadot			regulator-max-microvolt = <1200000>;
477f126890aSEmmanuel Vadot			bias-pull-down;
478f126890aSEmmanuel Vadot		};
479*8d13bc63SEmmanuel Vadot
480*8d13bc63SEmmanuel Vadot		pm8901_l1: l1 {
481f126890aSEmmanuel Vadot			regulator-min-microvolt = <3300000>;
482f126890aSEmmanuel Vadot			regulator-max-microvolt = <3300000>;
483f126890aSEmmanuel Vadot			bias-pull-down;
484f126890aSEmmanuel Vadot		};
485*8d13bc63SEmmanuel Vadot
486*8d13bc63SEmmanuel Vadot		pm8901_l2: l2 {
487f126890aSEmmanuel Vadot			/* TMA340 requires strictly 3.3V */
488f126890aSEmmanuel Vadot			regulator-min-microvolt = <3300000>;
489f126890aSEmmanuel Vadot			regulator-max-microvolt = <3300000>;
490f126890aSEmmanuel Vadot			bias-pull-down;
491f126890aSEmmanuel Vadot		};
492*8d13bc63SEmmanuel Vadot
493*8d13bc63SEmmanuel Vadot		pm8901_l3: l3 {
494f126890aSEmmanuel Vadot			regulator-min-microvolt = <3300000>;
495f126890aSEmmanuel Vadot			regulator-max-microvolt = <3300000>;
496f126890aSEmmanuel Vadot			bias-pull-down;
497f126890aSEmmanuel Vadot		};
498*8d13bc63SEmmanuel Vadot
499*8d13bc63SEmmanuel Vadot		pm8901_l4: l4 {
500f126890aSEmmanuel Vadot			regulator-min-microvolt = <2600000>;
501f126890aSEmmanuel Vadot			regulator-max-microvolt = <2600000>;
502f126890aSEmmanuel Vadot			bias-pull-down;
503f126890aSEmmanuel Vadot		};
504*8d13bc63SEmmanuel Vadot
505*8d13bc63SEmmanuel Vadot		pm8901_l5: l5 {
506f126890aSEmmanuel Vadot			regulator-min-microvolt = <2850000>;
507f126890aSEmmanuel Vadot			regulator-max-microvolt = <2850000>;
508f126890aSEmmanuel Vadot			bias-pull-down;
509f126890aSEmmanuel Vadot		};
510*8d13bc63SEmmanuel Vadot
511*8d13bc63SEmmanuel Vadot		pm8901_l6: l6 {
512f126890aSEmmanuel Vadot			regulator-min-microvolt = <2200000>;
513f126890aSEmmanuel Vadot			regulator-max-microvolt = <2200000>;
514f126890aSEmmanuel Vadot			bias-pull-down;
515f126890aSEmmanuel Vadot		};
516f126890aSEmmanuel Vadot
517f126890aSEmmanuel Vadot		/* s0 and s1 are SAW regulators controlled over SPM */
518*8d13bc63SEmmanuel Vadot		pm8901_s2: s2 {
519f126890aSEmmanuel Vadot			regulator-min-microvolt = <1300000>;
520f126890aSEmmanuel Vadot			regulator-max-microvolt = <1300000>;
521f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
522f126890aSEmmanuel Vadot			bias-pull-down;
523f126890aSEmmanuel Vadot		};
524*8d13bc63SEmmanuel Vadot		pm8901_s3: s3 {
525f126890aSEmmanuel Vadot			regulator-min-microvolt = <1100000>;
526f126890aSEmmanuel Vadot			regulator-max-microvolt = <1100000>;
527f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
528f126890aSEmmanuel Vadot			bias-pull-down;
529f126890aSEmmanuel Vadot		};
530*8d13bc63SEmmanuel Vadot		pm8901_s4: s4 {
531f126890aSEmmanuel Vadot			regulator-min-microvolt = <1225000>;
532f126890aSEmmanuel Vadot			regulator-max-microvolt = <1225000>;
533f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
534f126890aSEmmanuel Vadot			bias-pull-down;
535f126890aSEmmanuel Vadot		};
536f126890aSEmmanuel Vadot
537f126890aSEmmanuel Vadot		/* LVS0 thru 3 and mvs are just switches */
538*8d13bc63SEmmanuel Vadot		pm8901_lvs0: lvs0 {
539f126890aSEmmanuel Vadot			regulator-always-on;
540f126890aSEmmanuel Vadot		};
541f126890aSEmmanuel Vadot
542*8d13bc63SEmmanuel Vadot		pm8901_lvs1: lvs1 { };
543*8d13bc63SEmmanuel Vadot
544*8d13bc63SEmmanuel Vadot		pm8901_lvs2: lvs2 { };
545*8d13bc63SEmmanuel Vadot
546*8d13bc63SEmmanuel Vadot		pm8901_lvs3: lvs3 { };
547*8d13bc63SEmmanuel Vadot
548*8d13bc63SEmmanuel Vadot		pm8901_mvs: mvs { };
549f126890aSEmmanuel Vadot	};
550f126890aSEmmanuel Vadot
551f126890aSEmmanuel Vadot	regulators-1 {
552*8d13bc63SEmmanuel Vadot		compatible = "qcom,rpm-pm8058-regulators";
553*8d13bc63SEmmanuel Vadot
554f126890aSEmmanuel Vadot		vdd_l0_l1_lvs-supply = <&pm8058_s3>;
555f126890aSEmmanuel Vadot		vdd_l2_l11_l12-supply = <&vph>;
556f126890aSEmmanuel Vadot		vdd_l3_l4_l5-supply = <&vph>;
557f126890aSEmmanuel Vadot		vdd_l6_l7-supply = <&vph>;
558f126890aSEmmanuel Vadot		vdd_l8-supply = <&vph>;
559f126890aSEmmanuel Vadot		vdd_l9-supply = <&vph>;
560f126890aSEmmanuel Vadot		vdd_l10-supply = <&vph>;
561f126890aSEmmanuel Vadot		vdd_l13_l16-supply = <&pm8058_s4>;
562f126890aSEmmanuel Vadot		vdd_l14_l15-supply = <&vph>;
563f126890aSEmmanuel Vadot		vdd_l17_l18-supply = <&vph>;
564f126890aSEmmanuel Vadot		vdd_l19_l20-supply = <&vph>;
565f126890aSEmmanuel Vadot		vdd_l21-supply = <&pm8058_s3>;
566f126890aSEmmanuel Vadot		vdd_l22-supply = <&pm8058_s3>;
567f126890aSEmmanuel Vadot		vdd_l23_l24_l25-supply = <&pm8058_s3>;
568f126890aSEmmanuel Vadot		vdd_s0-supply = <&vph>;
569f126890aSEmmanuel Vadot		vdd_s1-supply = <&vph>;
570f126890aSEmmanuel Vadot		vdd_s2-supply = <&vph>;
571f126890aSEmmanuel Vadot		vdd_s3-supply = <&vph>;
572f126890aSEmmanuel Vadot		vdd_s4-supply = <&vph>;
573f126890aSEmmanuel Vadot		vdd_ncp-supply = <&vph>;
574f126890aSEmmanuel Vadot
575*8d13bc63SEmmanuel Vadot		pm8058_l0: l0 {
576f126890aSEmmanuel Vadot			regulator-min-microvolt = <1200000>;
577f126890aSEmmanuel Vadot			regulator-max-microvolt = <1200000>;
578f126890aSEmmanuel Vadot			bias-pull-down;
579f126890aSEmmanuel Vadot		};
580*8d13bc63SEmmanuel Vadot
581*8d13bc63SEmmanuel Vadot		pm8058_l1: l1 {
582f126890aSEmmanuel Vadot			regulator-min-microvolt = <1200000>;
583f126890aSEmmanuel Vadot			regulator-max-microvolt = <1200000>;
584f126890aSEmmanuel Vadot			bias-pull-down;
585f126890aSEmmanuel Vadot		};
586*8d13bc63SEmmanuel Vadot
587*8d13bc63SEmmanuel Vadot		pm8058_l2: l2 {
588f126890aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
589f126890aSEmmanuel Vadot			regulator-max-microvolt = <2600000>;
590f126890aSEmmanuel Vadot			bias-pull-down;
591f126890aSEmmanuel Vadot		};
592*8d13bc63SEmmanuel Vadot
593*8d13bc63SEmmanuel Vadot		pm8058_l3: l3 {
594f126890aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
595f126890aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
596f126890aSEmmanuel Vadot			bias-pull-down;
597f126890aSEmmanuel Vadot		};
598*8d13bc63SEmmanuel Vadot
599*8d13bc63SEmmanuel Vadot		pm8058_l4: l4 {
600f126890aSEmmanuel Vadot			regulator-min-microvolt = <2850000>;
601f126890aSEmmanuel Vadot			regulator-max-microvolt = <2850000>;
602f126890aSEmmanuel Vadot			bias-pull-down;
603f126890aSEmmanuel Vadot		};
604*8d13bc63SEmmanuel Vadot
605*8d13bc63SEmmanuel Vadot		pm8058_l5: l5 {
606f126890aSEmmanuel Vadot			regulator-min-microvolt = <2850000>;
607f126890aSEmmanuel Vadot			regulator-max-microvolt = <2850000>;
608f126890aSEmmanuel Vadot			bias-pull-down;
609f126890aSEmmanuel Vadot		};
610*8d13bc63SEmmanuel Vadot
611*8d13bc63SEmmanuel Vadot		pm8058_l6: l6 {
612f126890aSEmmanuel Vadot			regulator-min-microvolt = <3000000>;
613f126890aSEmmanuel Vadot			regulator-max-microvolt = <3600000>;
614f126890aSEmmanuel Vadot			bias-pull-down;
615f126890aSEmmanuel Vadot		};
616*8d13bc63SEmmanuel Vadot
617*8d13bc63SEmmanuel Vadot		pm8058_l7: l7 {
618f126890aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
619f126890aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
620f126890aSEmmanuel Vadot			bias-pull-down;
621f126890aSEmmanuel Vadot		};
622*8d13bc63SEmmanuel Vadot
623*8d13bc63SEmmanuel Vadot		pm8058_l8: l8 {
624f126890aSEmmanuel Vadot			regulator-min-microvolt = <2900000>;
625f126890aSEmmanuel Vadot			regulator-max-microvolt = <3050000>;
626f126890aSEmmanuel Vadot			bias-pull-down;
627f126890aSEmmanuel Vadot		};
628*8d13bc63SEmmanuel Vadot
629*8d13bc63SEmmanuel Vadot		pm8058_l9: l9 {
630f126890aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
631f126890aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
632f126890aSEmmanuel Vadot			bias-pull-down;
633f126890aSEmmanuel Vadot		};
634*8d13bc63SEmmanuel Vadot
635*8d13bc63SEmmanuel Vadot		pm8058_l10: l10 {
636f126890aSEmmanuel Vadot			regulator-min-microvolt = <2600000>;
637f126890aSEmmanuel Vadot			regulator-max-microvolt = <2600000>;
638f126890aSEmmanuel Vadot			bias-pull-down;
639f126890aSEmmanuel Vadot		};
640*8d13bc63SEmmanuel Vadot
641*8d13bc63SEmmanuel Vadot		pm8058_l11: l11 {
642f126890aSEmmanuel Vadot			regulator-min-microvolt = <1500000>;
643f126890aSEmmanuel Vadot			regulator-max-microvolt = <1500000>;
644f126890aSEmmanuel Vadot			bias-pull-down;
645f126890aSEmmanuel Vadot		};
646*8d13bc63SEmmanuel Vadot
647*8d13bc63SEmmanuel Vadot		pm8058_l12: l12 {
648f126890aSEmmanuel Vadot			regulator-min-microvolt = <2900000>;
649f126890aSEmmanuel Vadot			regulator-max-microvolt = <2900000>;
650f126890aSEmmanuel Vadot			bias-pull-down;
651f126890aSEmmanuel Vadot		};
652*8d13bc63SEmmanuel Vadot
653*8d13bc63SEmmanuel Vadot		pm8058_l13: l13 {
654f126890aSEmmanuel Vadot			regulator-min-microvolt = <2050000>;
655f126890aSEmmanuel Vadot			regulator-max-microvolt = <2050000>;
656f126890aSEmmanuel Vadot			bias-pull-down;
657f126890aSEmmanuel Vadot		};
658*8d13bc63SEmmanuel Vadot
659*8d13bc63SEmmanuel Vadot		pm8058_l14: l14 {
660f126890aSEmmanuel Vadot			regulator-min-microvolt = <2850000>;
661f126890aSEmmanuel Vadot			regulator-max-microvolt = <2850000>;
662f126890aSEmmanuel Vadot		};
663*8d13bc63SEmmanuel Vadot
664*8d13bc63SEmmanuel Vadot		pm8058_l15: l15 {
665f126890aSEmmanuel Vadot			regulator-min-microvolt = <2850000>;
666f126890aSEmmanuel Vadot			regulator-max-microvolt = <2850000>;
667f126890aSEmmanuel Vadot			bias-pull-down;
668f126890aSEmmanuel Vadot		};
669*8d13bc63SEmmanuel Vadot
670*8d13bc63SEmmanuel Vadot		pm8058_l16: l16 {
671f126890aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
672f126890aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
673f126890aSEmmanuel Vadot			bias-pull-down;
674f126890aSEmmanuel Vadot			regulator-always-on;
675f126890aSEmmanuel Vadot		};
676*8d13bc63SEmmanuel Vadot
677*8d13bc63SEmmanuel Vadot		pm8058_l17: l17 {
678f126890aSEmmanuel Vadot			// 1.5V according to schematic
679f126890aSEmmanuel Vadot			regulator-min-microvolt = <2600000>;
680f126890aSEmmanuel Vadot			regulator-max-microvolt = <2600000>;
681f126890aSEmmanuel Vadot			bias-pull-down;
682f126890aSEmmanuel Vadot		};
683*8d13bc63SEmmanuel Vadot
684*8d13bc63SEmmanuel Vadot		pm8058_l18: l18 {
685f126890aSEmmanuel Vadot			regulator-min-microvolt = <2200000>;
686f126890aSEmmanuel Vadot			regulator-max-microvolt = <2200000>;
687f126890aSEmmanuel Vadot			bias-pull-down;
688f126890aSEmmanuel Vadot		};
689*8d13bc63SEmmanuel Vadot
690*8d13bc63SEmmanuel Vadot		pm8058_l19: l19 {
691f126890aSEmmanuel Vadot			regulator-min-microvolt = <2500000>;
692f126890aSEmmanuel Vadot			regulator-max-microvolt = <2500000>;
693f126890aSEmmanuel Vadot			bias-pull-down;
694f126890aSEmmanuel Vadot		};
695*8d13bc63SEmmanuel Vadot
696*8d13bc63SEmmanuel Vadot		pm8058_l20: l20 {
697f126890aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
698f126890aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
699f126890aSEmmanuel Vadot			bias-pull-down;
700f126890aSEmmanuel Vadot		};
701*8d13bc63SEmmanuel Vadot
702*8d13bc63SEmmanuel Vadot		pm8058_l21: l21 {
703f126890aSEmmanuel Vadot			// 1.1 V according to schematic
704f126890aSEmmanuel Vadot			regulator-min-microvolt = <1200000>;
705f126890aSEmmanuel Vadot			regulator-max-microvolt = <1200000>;
706f126890aSEmmanuel Vadot			bias-pull-down;
707f126890aSEmmanuel Vadot			regulator-always-on;
708f126890aSEmmanuel Vadot		};
709*8d13bc63SEmmanuel Vadot
710*8d13bc63SEmmanuel Vadot		pm8058_l22: l22 {
711f126890aSEmmanuel Vadot			// 1.2 V according to schematic
712f126890aSEmmanuel Vadot			regulator-min-microvolt = <1150000>;
713f126890aSEmmanuel Vadot			regulator-max-microvolt = <1150000>;
714f126890aSEmmanuel Vadot			bias-pull-down;
715f126890aSEmmanuel Vadot		};
716*8d13bc63SEmmanuel Vadot
717*8d13bc63SEmmanuel Vadot		pm8058_l23: l23 {
718f126890aSEmmanuel Vadot			// Unused
719f126890aSEmmanuel Vadot			regulator-min-microvolt = <1200000>;
720f126890aSEmmanuel Vadot			regulator-max-microvolt = <1200000>;
721f126890aSEmmanuel Vadot			bias-pull-down;
722f126890aSEmmanuel Vadot		};
723f126890aSEmmanuel Vadot
724*8d13bc63SEmmanuel Vadot		pm8058_l24: l24 {
725*8d13bc63SEmmanuel Vadot			// Unused
726*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1200000>;
727*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
728*8d13bc63SEmmanuel Vadot			bias-pull-down;
729*8d13bc63SEmmanuel Vadot		};
730*8d13bc63SEmmanuel Vadot
731*8d13bc63SEmmanuel Vadot		pm8058_l25: l25 {
732*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1200000>;
733*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
734*8d13bc63SEmmanuel Vadot			bias-pull-down;
735*8d13bc63SEmmanuel Vadot		};
736*8d13bc63SEmmanuel Vadot
737*8d13bc63SEmmanuel Vadot		pm8058_s0: s0 {
738f126890aSEmmanuel Vadot			// regulator-min-microvolt = <500000>;
739f126890aSEmmanuel Vadot			// regulator-max-microvolt = <1325000>;
740f126890aSEmmanuel Vadot			regulator-min-microvolt = <1100000>;
741f126890aSEmmanuel Vadot			regulator-max-microvolt = <1100000>;
742f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
743f126890aSEmmanuel Vadot			bias-pull-down;
744f126890aSEmmanuel Vadot		};
745*8d13bc63SEmmanuel Vadot
746*8d13bc63SEmmanuel Vadot		pm8058_s1: s1 {
747f126890aSEmmanuel Vadot			// regulator-min-microvolt = <500000>;
748f126890aSEmmanuel Vadot			// regulator-max-microvolt = <1250000>;
749f126890aSEmmanuel Vadot			regulator-min-microvolt = <1100000>;
750f126890aSEmmanuel Vadot			regulator-max-microvolt = <1100000>;
751f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
752f126890aSEmmanuel Vadot			bias-pull-down;
753f126890aSEmmanuel Vadot		};
754*8d13bc63SEmmanuel Vadot
755*8d13bc63SEmmanuel Vadot		pm8058_s2: s2 {
756f126890aSEmmanuel Vadot			// 1.3 V according to schematic
757f126890aSEmmanuel Vadot			regulator-min-microvolt = <1200000>;
758f126890aSEmmanuel Vadot			regulator-max-microvolt = <1400000>;
759f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
760f126890aSEmmanuel Vadot			bias-pull-down;
761f126890aSEmmanuel Vadot		};
762*8d13bc63SEmmanuel Vadot
763*8d13bc63SEmmanuel Vadot		pm8058_s3: s3 {
764f126890aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
765f126890aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
766f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
767f126890aSEmmanuel Vadot			regulator-always-on;
768f126890aSEmmanuel Vadot			bias-pull-down;
769f126890aSEmmanuel Vadot		};
770*8d13bc63SEmmanuel Vadot
771*8d13bc63SEmmanuel Vadot		pm8058_s4: s4 {
772f126890aSEmmanuel Vadot			regulator-min-microvolt = <2200000>;
773f126890aSEmmanuel Vadot			regulator-max-microvolt = <2200000>;
774f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
775f126890aSEmmanuel Vadot			regulator-always-on;
776f126890aSEmmanuel Vadot			bias-pull-down;
777f126890aSEmmanuel Vadot		};
778f126890aSEmmanuel Vadot
779f126890aSEmmanuel Vadot		/* LVS0 and LVS1 are just switches */
780*8d13bc63SEmmanuel Vadot		pm8058_lvs0: lvs0 {
781f126890aSEmmanuel Vadot			bias-pull-down;
782f126890aSEmmanuel Vadot		};
783f126890aSEmmanuel Vadot
784*8d13bc63SEmmanuel Vadot		pm8058_lvs1: lvs1 {
785*8d13bc63SEmmanuel Vadot			bias-pull-down;
786*8d13bc63SEmmanuel Vadot		};
787*8d13bc63SEmmanuel Vadot
788*8d13bc63SEmmanuel Vadot		pm8058_ncp: ncp {
789f126890aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
790f126890aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
791f126890aSEmmanuel Vadot			qcom,switch-mode-frequency = <1600000>;
792f126890aSEmmanuel Vadot		};
793f126890aSEmmanuel Vadot	};
794f126890aSEmmanuel Vadot};
795f126890aSEmmanuel Vadot
796f126890aSEmmanuel Vadot/* Internal 3.69 GiB eMMC */
797f126890aSEmmanuel Vadot&sdcc1 {
798f126890aSEmmanuel Vadot	pinctrl-names = "default";
799f126890aSEmmanuel Vadot	pinctrl-0 = <&dragon_sdcc1_pins>;
800f126890aSEmmanuel Vadot	vmmc-supply = <&pm8901_l5>;
801f126890aSEmmanuel Vadot	vqmmc-supply = <&pm8901_lvs0>;
802f126890aSEmmanuel Vadot	status = "okay";
803f126890aSEmmanuel Vadot};
804f126890aSEmmanuel Vadot
805f126890aSEmmanuel Vadot/* External micro SD card, directly connected, pulled up to 2.85 V */
806f126890aSEmmanuel Vadot&sdcc3 {
807f126890aSEmmanuel Vadot	/* Enable SSBI GPIO 22 as input, use for card detect */
808f126890aSEmmanuel Vadot	pinctrl-names = "default";
809f126890aSEmmanuel Vadot	pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>;
810f126890aSEmmanuel Vadot	cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>;
811f126890aSEmmanuel Vadot	wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
812f126890aSEmmanuel Vadot	vmmc-supply = <&pm8058_l14>;
813f126890aSEmmanuel Vadot	status = "okay";
814f126890aSEmmanuel Vadot};
815f126890aSEmmanuel Vadot
816f126890aSEmmanuel Vadot/*
817f126890aSEmmanuel Vadot * Second external micro SD card, using two TXB104RGYR levelshifters
818f126890aSEmmanuel Vadot * to lift from 1.8 V to 2.85 V
819f126890aSEmmanuel Vadot */
820f126890aSEmmanuel Vadot&sdcc5 {
821f126890aSEmmanuel Vadot	/* Enable SSBI GPIO 26 as input, use for card detect */
822f126890aSEmmanuel Vadot	pinctrl-names = "default";
823f126890aSEmmanuel Vadot	pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>;
824f126890aSEmmanuel Vadot	cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>;
825f126890aSEmmanuel Vadot	wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>;
826f126890aSEmmanuel Vadot	vmmc-supply = <&pm8058_l14>;
827f126890aSEmmanuel Vadot	vqmmc-supply = <&dragon_vio_txb>;
828f126890aSEmmanuel Vadot	status = "okay";
829f126890aSEmmanuel Vadot};
830f126890aSEmmanuel Vadot
831f126890aSEmmanuel Vadot&tlmm {
832f126890aSEmmanuel Vadot	/* eMMC pins, all 8 data lines connected */
833f126890aSEmmanuel Vadot	dragon_sdcc1_pins: sdcc1-state {
834f126890aSEmmanuel Vadot		clk-pins {
835f126890aSEmmanuel Vadot			pins = "gpio167"; /* SDC1 CLK */
836f126890aSEmmanuel Vadot			function = "sdc1";
837f126890aSEmmanuel Vadot			drive-strength = <16>;
838f126890aSEmmanuel Vadot			bias-disable;
839f126890aSEmmanuel Vadot		};
840f126890aSEmmanuel Vadot		cmd-pins {
841f126890aSEmmanuel Vadot			pins = "gpio168"; /* SDC1 CMD */
842f126890aSEmmanuel Vadot			function = "sdc1";
843f126890aSEmmanuel Vadot			drive-strength = <10>;
844f126890aSEmmanuel Vadot			bias-pull-up;
845f126890aSEmmanuel Vadot		};
846f126890aSEmmanuel Vadot		data-pins {
847f126890aSEmmanuel Vadot			/* SDC1 D0 to D7 */
848f126890aSEmmanuel Vadot			pins = "gpio159", "gpio160", "gpio161", "gpio162",
849f126890aSEmmanuel Vadot			     "gpio163", "gpio164", "gpio165", "gpio166";
850f126890aSEmmanuel Vadot			function = "sdc1";
851f126890aSEmmanuel Vadot			drive-strength = <10>;
852f126890aSEmmanuel Vadot			bias-pull-up;
853f126890aSEmmanuel Vadot		};
854f126890aSEmmanuel Vadot	};
855f126890aSEmmanuel Vadot
856f126890aSEmmanuel Vadot	/*
857f126890aSEmmanuel Vadot	 * The SDCC3 pins are hardcoded (non-muxable) but need some pin
858f126890aSEmmanuel Vadot	 * configuration.
859f126890aSEmmanuel Vadot	 */
860f126890aSEmmanuel Vadot	dragon_sdcc3_pins: sdcc3-state {
861f126890aSEmmanuel Vadot		clk-pins {
862f126890aSEmmanuel Vadot			pins = "sdc3_clk";
863f126890aSEmmanuel Vadot			drive-strength = <8>;
864f126890aSEmmanuel Vadot			bias-disable;
865f126890aSEmmanuel Vadot		};
866f126890aSEmmanuel Vadot		cmd-pins {
867f126890aSEmmanuel Vadot			pins = "sdc3_cmd";
868f126890aSEmmanuel Vadot			drive-strength = <8>;
869f126890aSEmmanuel Vadot			bias-pull-up;
870f126890aSEmmanuel Vadot		};
871f126890aSEmmanuel Vadot		data-pins {
872f126890aSEmmanuel Vadot			pins = "sdc3_data";
873f126890aSEmmanuel Vadot			drive-strength = <8>;
874f126890aSEmmanuel Vadot			bias-pull-up;
875f126890aSEmmanuel Vadot		};
876f126890aSEmmanuel Vadot	};
877f126890aSEmmanuel Vadot
878f126890aSEmmanuel Vadot	/* Second SD card slot pins */
879f126890aSEmmanuel Vadot	dragon_sdcc5_pins: sdcc5-state {
880f126890aSEmmanuel Vadot		clk-pins {
881f126890aSEmmanuel Vadot			pins = "gpio97"; /* SDC5 CLK */
882f126890aSEmmanuel Vadot			function = "sdc5";
883f126890aSEmmanuel Vadot			drive-strength = <16>;
884f126890aSEmmanuel Vadot			bias-disable;
885f126890aSEmmanuel Vadot		};
886f126890aSEmmanuel Vadot		cmd-pins {
887f126890aSEmmanuel Vadot			pins = "gpio95"; /* SDC5 CMD */
888f126890aSEmmanuel Vadot			function = "sdc5";
889f126890aSEmmanuel Vadot			drive-strength = <10>;
890f126890aSEmmanuel Vadot			bias-pull-up;
891f126890aSEmmanuel Vadot		};
892f126890aSEmmanuel Vadot		data-pins {
893f126890aSEmmanuel Vadot			/* SDC5 D0 to D3 */
894f126890aSEmmanuel Vadot			pins = "gpio96", "gpio98", "gpio99", "gpio100";
895f126890aSEmmanuel Vadot			function = "sdc5";
896f126890aSEmmanuel Vadot			drive-strength = <10>;
897f126890aSEmmanuel Vadot			bias-pull-up;
898f126890aSEmmanuel Vadot		};
899f126890aSEmmanuel Vadot	};
900f126890aSEmmanuel Vadot
901f126890aSEmmanuel Vadot	dragon_gsbi3_i2c_pins: gsbi3-i2c-state {
902f126890aSEmmanuel Vadot		pins = "gpio43", "gpio44";
903f126890aSEmmanuel Vadot		function = "gsbi3";
904f126890aSEmmanuel Vadot		drive-strength = <8>;
905f126890aSEmmanuel Vadot		/* These have external pull-up 2.2kOhm to 1.8V */
906f126890aSEmmanuel Vadot		bias-disable;
907f126890aSEmmanuel Vadot	};
908f126890aSEmmanuel Vadot
909f126890aSEmmanuel Vadot	dragon_gsbi8_i2c_pins: gsbi8-i2c-state {
910f126890aSEmmanuel Vadot		pins = "gpio64", "gpio65";
911f126890aSEmmanuel Vadot		function = "gsbi8";
912f126890aSEmmanuel Vadot		drive-strength = <16>;
913f126890aSEmmanuel Vadot		/* These have external pull-up 2.2kOhm to 1.8V */
914f126890aSEmmanuel Vadot		bias-disable;
915f126890aSEmmanuel Vadot	};
916f126890aSEmmanuel Vadot
917f126890aSEmmanuel Vadot	dragon_gsbi12_i2c_pins: gsbi12-i2c-state {
918f126890aSEmmanuel Vadot		pins = "gpio115", "gpio116";
919f126890aSEmmanuel Vadot		function = "gsbi12";
920f126890aSEmmanuel Vadot		drive-strength = <16>;
921f126890aSEmmanuel Vadot		/* These have external pull-up 4.7kOhm to 1.8V */
922f126890aSEmmanuel Vadot		bias-disable;
923f126890aSEmmanuel Vadot	};
924f126890aSEmmanuel Vadot
925f126890aSEmmanuel Vadot	/* Primary serial port uart 0 pins */
926f126890aSEmmanuel Vadot	dragon_gsbi12_serial_pins: gsbi12-serial-state {
927f126890aSEmmanuel Vadot		tx-pins {
928f126890aSEmmanuel Vadot			pins = "gpio117";
929f126890aSEmmanuel Vadot			function = "gsbi12";
930f126890aSEmmanuel Vadot			drive-strength = <8>;
931f126890aSEmmanuel Vadot			bias-disable;
932f126890aSEmmanuel Vadot		};
933f126890aSEmmanuel Vadot		rx-pins {
934f126890aSEmmanuel Vadot			pins = "gpio118";
935f126890aSEmmanuel Vadot			function = "gsbi12";
936f126890aSEmmanuel Vadot			drive-strength = <2>;
937f126890aSEmmanuel Vadot			bias-pull-up;
938f126890aSEmmanuel Vadot		};
939f126890aSEmmanuel Vadot	};
940f126890aSEmmanuel Vadot
941f126890aSEmmanuel Vadot	dragon_ebi2_pins: ebi2-state {
942f126890aSEmmanuel Vadot		/*
943f126890aSEmmanuel Vadot		 * Pins used by EBI2 on the Dragonboard, actually only
944f126890aSEmmanuel Vadot		 * CS2 is used by a real peripheral. CS0 is just
945f126890aSEmmanuel Vadot		 * routed to a test point.
946f126890aSEmmanuel Vadot		 */
947f126890aSEmmanuel Vadot		mux0-pins {
948f126890aSEmmanuel Vadot			pins =
949f126890aSEmmanuel Vadot			    /* "gpio39", CS1A_N this is not good to mux */
950f126890aSEmmanuel Vadot			    "gpio40", /* CS2A_N */
951f126890aSEmmanuel Vadot			    "gpio134"; /* CS0_N testpoint TP29 */
952f126890aSEmmanuel Vadot			function = "ebi2cs";
953f126890aSEmmanuel Vadot		};
954f126890aSEmmanuel Vadot		mux1-pins {
955f126890aSEmmanuel Vadot			pins =
956f126890aSEmmanuel Vadot			    /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */
957f126890aSEmmanuel Vadot			    "gpio123", "gpio124", "gpio125", "gpio126",
958f126890aSEmmanuel Vadot			    "gpio127", "gpio128", "gpio129", "gpio130",
959f126890aSEmmanuel Vadot			    /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */
960f126890aSEmmanuel Vadot			    "gpio135", "gpio136", "gpio137", "gpio138",
961f126890aSEmmanuel Vadot			    "gpio139", "gpio140", "gpio141", "gpio142",
962f126890aSEmmanuel Vadot			    "gpio143", "gpio144", "gpio145", "gpio146",
963f126890aSEmmanuel Vadot			    "gpio147", "gpio148", "gpio149", "gpio150",
964f126890aSEmmanuel Vadot			    "gpio151", /* EBI2_OE_N */
965f126890aSEmmanuel Vadot			    "gpio153", /* EBI2_ADV */
966f126890aSEmmanuel Vadot			    "gpio157"; /* EBI2_WE_N */
967f126890aSEmmanuel Vadot			function = "ebi2";
968f126890aSEmmanuel Vadot		};
969f126890aSEmmanuel Vadot	};
970f126890aSEmmanuel Vadot
971f126890aSEmmanuel Vadot	/* Interrupt line for the KXSD9 accelerometer */
972f126890aSEmmanuel Vadot	dragon_kxsd9_gpios: kxsd9-state {
973f126890aSEmmanuel Vadot		pins = "gpio57"; /* IRQ line */
974f126890aSEmmanuel Vadot		function = "gpio";
975f126890aSEmmanuel Vadot		bias-pull-up;
976f126890aSEmmanuel Vadot	};
977f126890aSEmmanuel Vadot
978f126890aSEmmanuel Vadot	dragon_tma340_gpios: tma340-state {
979f126890aSEmmanuel Vadot		reset-pins {
980f126890aSEmmanuel Vadot			/* RESET line, TS_ATTN, WAKE_CTP */
981f126890aSEmmanuel Vadot			pins = "gpio58";
982f126890aSEmmanuel Vadot			function = "gpio";
983f126890aSEmmanuel Vadot			drive-strength = <6>;
984f126890aSEmmanuel Vadot			bias-disable;
985f126890aSEmmanuel Vadot		};
986f126890aSEmmanuel Vadot		irq-pins {
987f126890aSEmmanuel Vadot			pins = "gpio61"; /* IRQ line */
988f126890aSEmmanuel Vadot			function = "gpio";
989f126890aSEmmanuel Vadot			drive-strength = <2>;
990f126890aSEmmanuel Vadot			bias-pull-up;
991f126890aSEmmanuel Vadot		};
992f126890aSEmmanuel Vadot	};
993f126890aSEmmanuel Vadot};
994f126890aSEmmanuel Vadot
995*8d13bc63SEmmanuel Vadot&pm8058_xoadc {
996f126890aSEmmanuel Vadot	/* Reference voltage 2.2 V */
997f126890aSEmmanuel Vadot	xoadc-ref-supply = <&pm8058_l18>;
998f126890aSEmmanuel Vadot
999f126890aSEmmanuel Vadot	/* Board-specific channels */
1000*8d13bc63SEmmanuel Vadot	adc-channel@5 {
1001f126890aSEmmanuel Vadot		/* Connected to AOUT of ALS sensor */
1002f126890aSEmmanuel Vadot		reg = <0x00 0x05>;
1003f126890aSEmmanuel Vadot	};
1004*8d13bc63SEmmanuel Vadot
1005*8d13bc63SEmmanuel Vadot	adc-channel@6 {
1006f126890aSEmmanuel Vadot		/* Connected to test point TP43 */
1007f126890aSEmmanuel Vadot		reg = <0x00 0x06>;
1008f126890aSEmmanuel Vadot	};
1009*8d13bc63SEmmanuel Vadot
1010*8d13bc63SEmmanuel Vadot	adc-channel@7 {
1011f126890aSEmmanuel Vadot		/* Connected to battery thermistor */
1012f126890aSEmmanuel Vadot		reg = <0x00 0x07>;
1013f126890aSEmmanuel Vadot	};
1014*8d13bc63SEmmanuel Vadot
1015*8d13bc63SEmmanuel Vadot	adc-channel@8 {
1016f126890aSEmmanuel Vadot		/* Connected to battery ID detector */
1017f126890aSEmmanuel Vadot		reg = <0x00 0x08>;
1018f126890aSEmmanuel Vadot	};
1019*8d13bc63SEmmanuel Vadot
1020*8d13bc63SEmmanuel Vadot	adc-channel@9 {
1021f126890aSEmmanuel Vadot		/* Connected to XO thermistor */
1022f126890aSEmmanuel Vadot		reg = <0x00 0x09>;
1023f126890aSEmmanuel Vadot	};
1024f126890aSEmmanuel Vadot};
1025