xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/sdm630-sony-xperia-nile.dtsi (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause
2c66ec88fSEmmanuel Vadot/*
3354d7675SEmmanuel Vadot * Copyright (c) 2020, Konrad Dybcio <konrad.dybcio@somainline.org>
4354d7675SEmmanuel Vadot * Copyright (c) 2020, AngeloGioacchino Del Regno
5354d7675SEmmanuel Vadot *                     <angelogioacchino.delregno@somainline.org>
6c66ec88fSEmmanuel Vadot */
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadot#include "pm660.dtsi"
9c66ec88fSEmmanuel Vadot#include "pm660l.dtsi"
10c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
11c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h>
12c66ec88fSEmmanuel Vadot#include <dt-bindings/input/gpio-keys.h>
13b97ee269SEmmanuel Vadot#include <dt-bindings/leds/common.h>
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel Vadot/ {
16c66ec88fSEmmanuel Vadot	/* required for bootloader to select correct board */
17c66ec88fSEmmanuel Vadot	qcom,msm-id = <318 0>;
18c66ec88fSEmmanuel Vadot	qcom,board-id = <8 1>;
19c66ec88fSEmmanuel Vadot	qcom,pmic-id = <0x1001b 0x101011a 0x00 0x00 0x1001b 0x201011a 0x00 0x00>;
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot	/* This part enables graphical output via bootloader-enabled display */
22c66ec88fSEmmanuel Vadot	chosen {
23c66ec88fSEmmanuel Vadot		bootargs = "earlycon=tty0 console=tty0";
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot		#address-cells = <2>;
26c66ec88fSEmmanuel Vadot		#size-cells = <2>;
27c66ec88fSEmmanuel Vadot		ranges;
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot		stdout-path = "framebuffer0";
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot		framebuffer0: framebuffer@9d400000 {
32c66ec88fSEmmanuel Vadot			compatible = "simple-framebuffer";
33c66ec88fSEmmanuel Vadot			reg = <0 0x9d400000 0 (1920 * 1080 * 4)>;
34c66ec88fSEmmanuel Vadot			width = <1080>;
35c66ec88fSEmmanuel Vadot			height = <1920>;
36c66ec88fSEmmanuel Vadot			stride = <(1080 * 4)>;
37c66ec88fSEmmanuel Vadot			format = "a8r8g8b8";
38c66ec88fSEmmanuel Vadot			status = "okay";
39c66ec88fSEmmanuel Vadot		};
40c66ec88fSEmmanuel Vadot	};
41c66ec88fSEmmanuel Vadot
42354d7675SEmmanuel Vadot	board_vbat: vbat-regulator {
43354d7675SEmmanuel Vadot		compatible = "regulator-fixed";
44354d7675SEmmanuel Vadot		regulator-name = "VBAT";
45354d7675SEmmanuel Vadot
46354d7675SEmmanuel Vadot		regulator-min-microvolt = <4000000>;
47354d7675SEmmanuel Vadot		regulator-max-microvolt = <4000000>;
48354d7675SEmmanuel Vadot		regulator-always-on;
49354d7675SEmmanuel Vadot		regulator-boot-on;
50354d7675SEmmanuel Vadot	};
51354d7675SEmmanuel Vadot
52354d7675SEmmanuel Vadot	vph_pwr: vph-pwr-regulator {
53354d7675SEmmanuel Vadot		compatible = "regulator-fixed";
54354d7675SEmmanuel Vadot		regulator-name = "vph_pwr";
55354d7675SEmmanuel Vadot
56354d7675SEmmanuel Vadot		regulator-always-on;
57354d7675SEmmanuel Vadot		regulator-boot-on;
58354d7675SEmmanuel Vadot	};
59354d7675SEmmanuel Vadot
60*cb7aa33aSEmmanuel Vadot	cam_vdig_imx300_219_vreg: cam-vdig-imx300-219-regulator {
61354d7675SEmmanuel Vadot		compatible = "regulator-fixed";
62354d7675SEmmanuel Vadot		regulator-name = "cam_vdig_imx300_219_vreg";
63354d7675SEmmanuel Vadot		startup-delay-us = <0>;
64354d7675SEmmanuel Vadot		enable-active-high;
65354d7675SEmmanuel Vadot		gpio = <&tlmm 52 GPIO_ACTIVE_HIGH>;
66354d7675SEmmanuel Vadot		pinctrl-names = "default";
67354d7675SEmmanuel Vadot		pinctrl-0 = <&cam_vdig_default>;
68354d7675SEmmanuel Vadot	};
69354d7675SEmmanuel Vadot
70*cb7aa33aSEmmanuel Vadot	cam_vana_front_vreg: cam-vana-front-regulator {
71354d7675SEmmanuel Vadot		compatible = "regulator-fixed";
72354d7675SEmmanuel Vadot		regulator-name = "cam_vana_front_vreg";
73354d7675SEmmanuel Vadot		startup-delay-us = <0>;
74354d7675SEmmanuel Vadot		enable-active-high;
75354d7675SEmmanuel Vadot		gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
76354d7675SEmmanuel Vadot		pinctrl-names = "default";
77354d7675SEmmanuel Vadot		pinctrl-0 = <&imx219_vana_default>;
78354d7675SEmmanuel Vadot	};
79354d7675SEmmanuel Vadot
80*cb7aa33aSEmmanuel Vadot	cam_vana_rear_vreg: cam-vana-rear-regulator {
81354d7675SEmmanuel Vadot		compatible = "regulator-fixed";
82354d7675SEmmanuel Vadot		regulator-name = "cam_vana_rear_vreg";
83354d7675SEmmanuel Vadot		startup-delay-us = <0>;
84354d7675SEmmanuel Vadot		enable-active-high;
85354d7675SEmmanuel Vadot		gpio = <&tlmm 50 GPIO_ACTIVE_HIGH>;
86354d7675SEmmanuel Vadot		regulator-always-on;
87354d7675SEmmanuel Vadot		pinctrl-names = "default";
88354d7675SEmmanuel Vadot		pinctrl-0 = <&imx300_vana_default>;
89354d7675SEmmanuel Vadot	};
90354d7675SEmmanuel Vadot
91b97ee269SEmmanuel Vadot	gpio-keys {
92c66ec88fSEmmanuel Vadot		compatible = "gpio-keys";
93c66ec88fSEmmanuel Vadot
94b97ee269SEmmanuel Vadot		key-camera-focus {
95c66ec88fSEmmanuel Vadot			label = "Camera Focus";
96c66ec88fSEmmanuel Vadot			gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
97c66ec88fSEmmanuel Vadot			linux,input-type = <1>;
98c66ec88fSEmmanuel Vadot			linux,code = <KEY_CAMERA_FOCUS>;
99c66ec88fSEmmanuel Vadot			debounce-interval = <15>;
100c66ec88fSEmmanuel Vadot		};
101c66ec88fSEmmanuel Vadot
102b97ee269SEmmanuel Vadot		key-camera-snapshot {
103c66ec88fSEmmanuel Vadot			label = "Camera Snapshot";
104c66ec88fSEmmanuel Vadot			gpios = <&tlmm 113 GPIO_ACTIVE_LOW>;
105c66ec88fSEmmanuel Vadot			linux,input-type = <1>;
106c66ec88fSEmmanuel Vadot			linux,code = <KEY_CAMERA>;
107c66ec88fSEmmanuel Vadot			debounce-interval = <15>;
108c66ec88fSEmmanuel Vadot		};
109c66ec88fSEmmanuel Vadot
110b97ee269SEmmanuel Vadot		key-vol-down {
111c66ec88fSEmmanuel Vadot			label = "Volume Down";
112c66ec88fSEmmanuel Vadot			gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
113c66ec88fSEmmanuel Vadot			linux,input-type = <1>;
114c66ec88fSEmmanuel Vadot			linux,code = <KEY_VOLUMEDOWN>;
115c66ec88fSEmmanuel Vadot			gpio-key,wakeup;
116c66ec88fSEmmanuel Vadot			debounce-interval = <15>;
117c66ec88fSEmmanuel Vadot		};
118c66ec88fSEmmanuel Vadot	};
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel Vadot	reserved-memory {
121c66ec88fSEmmanuel Vadot		#address-cells = <2>;
122c66ec88fSEmmanuel Vadot		#size-cells = <2>;
123c66ec88fSEmmanuel Vadot		ranges;
124c66ec88fSEmmanuel Vadot
125c66ec88fSEmmanuel Vadot		ramoops@ffc00000 {
126c66ec88fSEmmanuel Vadot			compatible = "ramoops";
127c66ec88fSEmmanuel Vadot			reg = <0x0 0xffc00000 0x0 0x100000>;
128c66ec88fSEmmanuel Vadot			record-size = <0x10000>;
129c66ec88fSEmmanuel Vadot			console-size = <0x60000>;
130c66ec88fSEmmanuel Vadot			ftrace-size = <0x10000>;
131c66ec88fSEmmanuel Vadot			pmsg-size = <0x20000>;
132c66ec88fSEmmanuel Vadot			ecc-size = <16>;
133c66ec88fSEmmanuel Vadot			status = "okay";
134c66ec88fSEmmanuel Vadot		};
135c66ec88fSEmmanuel Vadot
136*cb7aa33aSEmmanuel Vadot		debug@ffb00000 {
137c66ec88fSEmmanuel Vadot			reg = <0x00 0xffb00000 0x00 0x100000>;
138c66ec88fSEmmanuel Vadot			no-map;
139c66ec88fSEmmanuel Vadot		};
140c66ec88fSEmmanuel Vadot
141*cb7aa33aSEmmanuel Vadot		reserved@85800000 {
142c66ec88fSEmmanuel Vadot			reg = <0x00 0x85800000 0x00 0x3700000>;
143c66ec88fSEmmanuel Vadot			no-map;
144c66ec88fSEmmanuel Vadot		};
145*cb7aa33aSEmmanuel Vadot
146*cb7aa33aSEmmanuel Vadot		cont_splash_mem: splash@9d400000 {
147*cb7aa33aSEmmanuel Vadot			reg = <0 0x9d400000 0 (1920 * 1080 * 4)>;
148*cb7aa33aSEmmanuel Vadot			no-map;
149*cb7aa33aSEmmanuel Vadot		};
150c66ec88fSEmmanuel Vadot	};
151c66ec88fSEmmanuel Vadot
152354d7675SEmmanuel Vadot	/*
153354d7675SEmmanuel Vadot	 * Until we hook up type-c detection, we
154354d7675SEmmanuel Vadot	 * have to stick with this. But it works.
155354d7675SEmmanuel Vadot	 */
156354d7675SEmmanuel Vadot	extcon_usb: extcon-usb {
157354d7675SEmmanuel Vadot		compatible = "linux,extcon-usb-gpio";
158354d7675SEmmanuel Vadot		id-gpio = <&tlmm 58 GPIO_ACTIVE_HIGH>;
159354d7675SEmmanuel Vadot	};
160c66ec88fSEmmanuel Vadot};
161c66ec88fSEmmanuel Vadot
162354d7675SEmmanuel Vadot&adsp_pil {
1638bab661aSEmmanuel Vadot	firmware-name = "qcom/sdm630/Sony/nile/adsp.mdt";
164c66ec88fSEmmanuel Vadot};
165c66ec88fSEmmanuel Vadot
166354d7675SEmmanuel Vadot&blsp_i2c1 {
167354d7675SEmmanuel Vadot	status = "okay";
168354d7675SEmmanuel Vadot
169354d7675SEmmanuel Vadot	touchscreen: synaptics-rmi4-i2c@70 {
170354d7675SEmmanuel Vadot		compatible = "syna,rmi4-i2c";
171354d7675SEmmanuel Vadot		reg = <0x70>;
172354d7675SEmmanuel Vadot		#address-cells = <1>;
173354d7675SEmmanuel Vadot		#size-cells = <0>;
174354d7675SEmmanuel Vadot		interrupts-extended = <&tlmm 45 0x2008>;
175354d7675SEmmanuel Vadot
176354d7675SEmmanuel Vadot		pinctrl-names = "default";
177354d7675SEmmanuel Vadot		pinctrl-0 = <&ts_int_active &ts_lcd_id_active>;
178354d7675SEmmanuel Vadot
179354d7675SEmmanuel Vadot		syna,reset-delay-ms = <200>;
180354d7675SEmmanuel Vadot		syna,startup-delay-ms = <220>;
181354d7675SEmmanuel Vadot
182354d7675SEmmanuel Vadot		rmi4-f01@1 {
183354d7675SEmmanuel Vadot			reg = <0x01>;
184354d7675SEmmanuel Vadot			syna,nosleep-mode = <1>;
185354d7675SEmmanuel Vadot		};
186354d7675SEmmanuel Vadot
187354d7675SEmmanuel Vadot		rmi4-f11@11 {
188354d7675SEmmanuel Vadot			reg = <0x11>;
189354d7675SEmmanuel Vadot			syna,sensor-type = <1>;
190354d7675SEmmanuel Vadot		};
191354d7675SEmmanuel Vadot	};
192354d7675SEmmanuel Vadot};
193354d7675SEmmanuel Vadot
194354d7675SEmmanuel Vadot&blsp_i2c2 {
195c66ec88fSEmmanuel Vadot	status = "okay";
196c66ec88fSEmmanuel Vadot
197c66ec88fSEmmanuel Vadot	/* SMB1351 charger */
198c66ec88fSEmmanuel Vadot};
199c66ec88fSEmmanuel Vadot
200c66ec88fSEmmanuel Vadot/* I2C3, 4, 5, 7 and 8 are disabled on this board. */
201c66ec88fSEmmanuel Vadot
202354d7675SEmmanuel Vadot&blsp_i2c6 {
203c66ec88fSEmmanuel Vadot	status = "okay";
204c66ec88fSEmmanuel Vadot
205c66ec88fSEmmanuel Vadot	/* NXP NFC */
206c66ec88fSEmmanuel Vadot};
207354d7675SEmmanuel Vadot
208354d7675SEmmanuel Vadot&blsp1_uart2 {
209354d7675SEmmanuel Vadot	status = "okay";
210354d7675SEmmanuel Vadot
211354d7675SEmmanuel Vadot	/* MSM serial console */
212c66ec88fSEmmanuel Vadot};
213354d7675SEmmanuel Vadot
214354d7675SEmmanuel Vadot&blsp2_uart1 {
215354d7675SEmmanuel Vadot	status = "okay";
216354d7675SEmmanuel Vadot
217354d7675SEmmanuel Vadot	/* HCI Bluetooth */
218354d7675SEmmanuel Vadot};
219354d7675SEmmanuel Vadot
220b97ee269SEmmanuel Vadot&pm660l_lpg {
221b97ee269SEmmanuel Vadot	qcom,power-source = <1>;
222b97ee269SEmmanuel Vadot
223b97ee269SEmmanuel Vadot	status = "okay";
224b97ee269SEmmanuel Vadot
225b97ee269SEmmanuel Vadot	multi-led {
226b97ee269SEmmanuel Vadot		color = <LED_COLOR_ID_RGB>;
227b97ee269SEmmanuel Vadot		function = LED_FUNCTION_STATUS;
228b97ee269SEmmanuel Vadot
229b97ee269SEmmanuel Vadot		#address-cells = <1>;
230b97ee269SEmmanuel Vadot		#size-cells = <0>;
231b97ee269SEmmanuel Vadot
232b97ee269SEmmanuel Vadot		led@1 {
233b97ee269SEmmanuel Vadot			reg = <1>;
234b97ee269SEmmanuel Vadot			color = <LED_COLOR_ID_BLUE>;
235b97ee269SEmmanuel Vadot		};
236b97ee269SEmmanuel Vadot
237b97ee269SEmmanuel Vadot		led@2 {
238b97ee269SEmmanuel Vadot			reg = <2>;
239b97ee269SEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
240b97ee269SEmmanuel Vadot		};
241b97ee269SEmmanuel Vadot
242b97ee269SEmmanuel Vadot		led@3 {
243b97ee269SEmmanuel Vadot			reg = <3>;
244b97ee269SEmmanuel Vadot			color = <LED_COLOR_ID_RED>;
245b97ee269SEmmanuel Vadot		};
246b97ee269SEmmanuel Vadot	};
247b97ee269SEmmanuel Vadot};
248b97ee269SEmmanuel Vadot
249e67e8565SEmmanuel Vadot&pon_pwrkey {
250e67e8565SEmmanuel Vadot	status = "okay";
251354d7675SEmmanuel Vadot};
252e67e8565SEmmanuel Vadot
253e67e8565SEmmanuel Vadot&pon_resin {
254e67e8565SEmmanuel Vadot	status = "okay";
255e67e8565SEmmanuel Vadot
256e67e8565SEmmanuel Vadot	linux,code = <KEY_VOLUMEUP>;
257354d7675SEmmanuel Vadot};
258354d7675SEmmanuel Vadot
259b97ee269SEmmanuel Vadot&qusb2phy0 {
260354d7675SEmmanuel Vadot	status = "okay";
261354d7675SEmmanuel Vadot
262354d7675SEmmanuel Vadot	vdd-supply = <&vreg_l1b_0p925>;
263354d7675SEmmanuel Vadot	vdda-pll-supply = <&vreg_l10a_1p8>;
264354d7675SEmmanuel Vadot	vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
265354d7675SEmmanuel Vadot};
266354d7675SEmmanuel Vadot
267354d7675SEmmanuel Vadot&rpm_requests {
2688bab661aSEmmanuel Vadot	regulators-0 {
269354d7675SEmmanuel Vadot		compatible = "qcom,rpm-pm660l-regulators";
270354d7675SEmmanuel Vadot
271354d7675SEmmanuel Vadot		vdd_s1-supply = <&vph_pwr>;
272354d7675SEmmanuel Vadot		vdd_s2-supply = <&vph_pwr>;
273354d7675SEmmanuel Vadot		vdd_s3_s4-supply = <&vph_pwr>;
274354d7675SEmmanuel Vadot		vdd_s5-supply = <&vph_pwr>;
275354d7675SEmmanuel Vadot		vdd_s6-supply = <&vph_pwr>;
276354d7675SEmmanuel Vadot
277354d7675SEmmanuel Vadot		vdd_l1_l9_l10-supply = <&vreg_s2b_1p05>;
278354d7675SEmmanuel Vadot		vdd_l2-supply = <&vreg_bob>;
279354d7675SEmmanuel Vadot		vdd_l3_l5_l7_l8-supply = <&vreg_bob>;
280354d7675SEmmanuel Vadot		vdd_l4_l6-supply = <&vreg_bob>;
281354d7675SEmmanuel Vadot		vdd_bob-supply = <&vph_pwr>;
282354d7675SEmmanuel Vadot
283354d7675SEmmanuel Vadot		vreg_s1b_1p125: s1 {
284354d7675SEmmanuel Vadot			regulator-min-microvolt = <1125000>;
285354d7675SEmmanuel Vadot			regulator-max-microvolt = <1125000>;
286354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <200>;
287354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
288354d7675SEmmanuel Vadot		};
289354d7675SEmmanuel Vadot
290354d7675SEmmanuel Vadot		vreg_s2b_1p05: s2 {
291354d7675SEmmanuel Vadot			regulator-min-microvolt = <1050000>;
292354d7675SEmmanuel Vadot			regulator-max-microvolt = <1050000>;
293354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <200>;
294354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
295354d7675SEmmanuel Vadot		};
296354d7675SEmmanuel Vadot
297354d7675SEmmanuel Vadot		/*
298354d7675SEmmanuel Vadot		 * At least on Nile's configuration, S3B/S4B (VDD_CX) and
299354d7675SEmmanuel Vadot		 * S5B (VDD_MX) are managed only through RPM Power Domains.
300354d7675SEmmanuel Vadot		 * Trying to set a voltage on the main supply will create
301354d7675SEmmanuel Vadot		 * havoc and freeze the SoC.
302354d7675SEmmanuel Vadot		 * In any case, reference voltages for these regulators are:
303354d7675SEmmanuel Vadot		 * S3B/S4B: 0.870V
304354d7675SEmmanuel Vadot		 * S5B: 0.915V
305354d7675SEmmanuel Vadot		 */
306354d7675SEmmanuel Vadot
307354d7675SEmmanuel Vadot		/* LDOs */
308354d7675SEmmanuel Vadot		vreg_l1b_0p925: l1 {
309354d7675SEmmanuel Vadot			regulator-min-microvolt = <920000>;
310354d7675SEmmanuel Vadot			regulator-max-microvolt = <928000>;
311354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
312354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
313354d7675SEmmanuel Vadot			regulator-allow-set-load;
314354d7675SEmmanuel Vadot		};
315354d7675SEmmanuel Vadot
316354d7675SEmmanuel Vadot		vreg_l2b_2p95: l2 {
317354d7675SEmmanuel Vadot			/*
318354d7675SEmmanuel Vadot			 * This regulator supports 1.648 - 3.104V on this board
319354d7675SEmmanuel Vadot			 * but we set a max voltage of anything less than 2.7V
320354d7675SEmmanuel Vadot			 * to satisfy a condition in sdhci.c that will disable
321354d7675SEmmanuel Vadot			 * 3.3V SDHCI signaling, which happens to be not really
322354d7675SEmmanuel Vadot			 * supported on the Xperia Nile/Ganges platform.
323354d7675SEmmanuel Vadot			 */
324354d7675SEmmanuel Vadot			regulator-min-microvolt = <1648000>;
325354d7675SEmmanuel Vadot			regulator-max-microvolt = <2696000>;
326354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
327354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
328354d7675SEmmanuel Vadot			regulator-allow-set-load;
329354d7675SEmmanuel Vadot		};
330354d7675SEmmanuel Vadot
331354d7675SEmmanuel Vadot		vreg_l3b_3p0: l3 {
332354d7675SEmmanuel Vadot			regulator-min-microvolt = <2800000>;
333354d7675SEmmanuel Vadot			regulator-max-microvolt = <2800000>;
334354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
335354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
336354d7675SEmmanuel Vadot			regulator-min-microamp = <200>;
337354d7675SEmmanuel Vadot			regulator-max-microamp = <600000>;
338354d7675SEmmanuel Vadot			regulator-system-load = <100000>;
339354d7675SEmmanuel Vadot			regulator-allow-set-load;
340354d7675SEmmanuel Vadot		};
341354d7675SEmmanuel Vadot
3428cc087a1SEmmanuel Vadot		vreg_l4b_2p95: l4 {
343354d7675SEmmanuel Vadot			regulator-min-microvolt = <2944000>;
344354d7675SEmmanuel Vadot			regulator-max-microvolt = <2952000>;
345354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
346354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
347354d7675SEmmanuel Vadot
348354d7675SEmmanuel Vadot			regulator-min-microamp = <200>;
349354d7675SEmmanuel Vadot			regulator-max-microamp = <600000>;
350354d7675SEmmanuel Vadot			regulator-system-load = <570000>;
351354d7675SEmmanuel Vadot			regulator-allow-set-load;
352354d7675SEmmanuel Vadot		};
353354d7675SEmmanuel Vadot
354354d7675SEmmanuel Vadot		/*
355354d7675SEmmanuel Vadot		 * Downstream specifies a range of 1721-3600mV,
356354d7675SEmmanuel Vadot		 * but the only assigned consumers are SDHCI2 VMMC
357354d7675SEmmanuel Vadot		 * and Coresight QPDI that both request pinned 2.95V.
358354d7675SEmmanuel Vadot		 * Tighten the range to 1.8-3.328 (closest to 3.3) to
359354d7675SEmmanuel Vadot		 * make the mmc driver happy.
360354d7675SEmmanuel Vadot		 */
3618cc087a1SEmmanuel Vadot		vreg_l5b_2p95: l5 {
362354d7675SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
363354d7675SEmmanuel Vadot			regulator-max-microvolt = <3328000>;
364354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
365354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
366354d7675SEmmanuel Vadot			regulator-allow-set-load;
367354d7675SEmmanuel Vadot			regulator-system-load = <800000>;
368354d7675SEmmanuel Vadot		};
369354d7675SEmmanuel Vadot
370354d7675SEmmanuel Vadot		vreg_l6b_3p3: l6 {
371354d7675SEmmanuel Vadot			regulator-min-microvolt = <1704000>;
372354d7675SEmmanuel Vadot			regulator-max-microvolt = <3312000>;
373354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
374354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
375354d7675SEmmanuel Vadot		};
376354d7675SEmmanuel Vadot
377354d7675SEmmanuel Vadot		vreg_l7b_3p125: l7 {
378354d7675SEmmanuel Vadot			regulator-min-microvolt = <2704000>;
379354d7675SEmmanuel Vadot			regulator-max-microvolt = <3128000>;
380354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
381354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
382354d7675SEmmanuel Vadot		};
383354d7675SEmmanuel Vadot
384354d7675SEmmanuel Vadot		vreg_l8b_3p3: l8 {
385354d7675SEmmanuel Vadot			regulator-min-microvolt = <2800000>;
386354d7675SEmmanuel Vadot			regulator-max-microvolt = <3400000>;
387354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
388354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
389354d7675SEmmanuel Vadot		};
390354d7675SEmmanuel Vadot
391354d7675SEmmanuel Vadot		/* L9B (870mV) is currently unused */
392354d7675SEmmanuel Vadot		/* L10B (915mV) is currently unused */
393354d7675SEmmanuel Vadot
394354d7675SEmmanuel Vadot		vreg_bob: bob {
395354d7675SEmmanuel Vadot			regulator-min-microvolt = <3304000>;
396354d7675SEmmanuel Vadot			regulator-max-microvolt = <3624000>;
397354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <500>;
398354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
399354d7675SEmmanuel Vadot		};
400354d7675SEmmanuel Vadot	};
401354d7675SEmmanuel Vadot
4028bab661aSEmmanuel Vadot	regulators-1 {
403354d7675SEmmanuel Vadot		compatible = "qcom,rpm-pm660-regulators";
404354d7675SEmmanuel Vadot
405354d7675SEmmanuel Vadot		vdd_s1-supply = <&vph_pwr>;
406354d7675SEmmanuel Vadot		vdd_s2-supply = <&vph_pwr>;
407354d7675SEmmanuel Vadot		vdd_s3-supply = <&vph_pwr>;
408354d7675SEmmanuel Vadot		vdd_s4-supply = <&vph_pwr>;
409354d7675SEmmanuel Vadot		vdd_s5-supply = <&vph_pwr>;
410354d7675SEmmanuel Vadot		vdd_s6-supply = <&vph_pwr>;
411354d7675SEmmanuel Vadot
412354d7675SEmmanuel Vadot		vdd_l1_l6_l7-supply = <&vreg_s5a_1p35>;
413354d7675SEmmanuel Vadot		vdd_l2_l3-supply = <&vreg_s2b_1p05>;
414354d7675SEmmanuel Vadot		vdd_l5-supply = <&vreg_s2b_1p05>;
415354d7675SEmmanuel Vadot		vdd_l8_l9_l10_l11_l12_l13_l14-supply = <&vreg_s4a_2p04>;
416354d7675SEmmanuel Vadot		vdd_l15_l16_l17_l18_l19-supply = <&vreg_bob>;
417354d7675SEmmanuel Vadot
418354d7675SEmmanuel Vadot		/*
419354d7675SEmmanuel Vadot		 * S1A (FTAPC0), S2A (FTAPC1), S3A (HFAPC1) are managed
420354d7675SEmmanuel Vadot		 * by the Core Power Reduction hardened (CPRh) and the
421354d7675SEmmanuel Vadot		 * Operating State Manager (OSM) HW automatically.
422354d7675SEmmanuel Vadot		 */
423354d7675SEmmanuel Vadot
424354d7675SEmmanuel Vadot		vreg_s4a_2p04: s4 {
425354d7675SEmmanuel Vadot			regulator-min-microvolt = <2040000>;
426354d7675SEmmanuel Vadot			regulator-max-microvolt = <2040000>;
427354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <200>;
428354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
429354d7675SEmmanuel Vadot			regulator-always-on;
430354d7675SEmmanuel Vadot		};
431354d7675SEmmanuel Vadot
432354d7675SEmmanuel Vadot		vreg_s5a_1p35: s5 {
433354d7675SEmmanuel Vadot			regulator-min-microvolt = <1224000>;
434354d7675SEmmanuel Vadot			regulator-max-microvolt = <1350000>;
435354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <200>;
436354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
437354d7675SEmmanuel Vadot		};
438354d7675SEmmanuel Vadot
439354d7675SEmmanuel Vadot		vreg_s6a_0p87: s6 {
440354d7675SEmmanuel Vadot			regulator-min-microvolt = <504000>;
441354d7675SEmmanuel Vadot			regulator-max-microvolt = <992000>;
442354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <150>;
443354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
444354d7675SEmmanuel Vadot		};
445354d7675SEmmanuel Vadot
446354d7675SEmmanuel Vadot		/* LDOs */
447354d7675SEmmanuel Vadot		vreg_l1a_1p225: l1 {
448354d7675SEmmanuel Vadot			regulator-min-microvolt = <1226000>;
449354d7675SEmmanuel Vadot			regulator-max-microvolt = <1250000>;
450354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
451354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
452354d7675SEmmanuel Vadot			regulator-allow-set-load;
453354d7675SEmmanuel Vadot		};
454354d7675SEmmanuel Vadot
455354d7675SEmmanuel Vadot		vreg_l2a_1p0: l2 {
456354d7675SEmmanuel Vadot			regulator-min-microvolt = <944000>;
457354d7675SEmmanuel Vadot			regulator-max-microvolt = <1008000>;
458354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
459354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
460354d7675SEmmanuel Vadot		};
461354d7675SEmmanuel Vadot
462354d7675SEmmanuel Vadot		vreg_l3a_1p0: l3 {
463354d7675SEmmanuel Vadot			regulator-min-microvolt = <944000>;
464354d7675SEmmanuel Vadot			regulator-max-microvolt = <1008000>;
465354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
466354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
467354d7675SEmmanuel Vadot		};
468354d7675SEmmanuel Vadot
469354d7675SEmmanuel Vadot		vreg_l5a_0p848: l5 {
470354d7675SEmmanuel Vadot			regulator-min-microvolt = <800000>;
471354d7675SEmmanuel Vadot			regulator-max-microvolt = <952000>;
472354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
473354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
474354d7675SEmmanuel Vadot		};
475354d7675SEmmanuel Vadot
476354d7675SEmmanuel Vadot		vreg_l6a_1p3: l6 {
477354d7675SEmmanuel Vadot			regulator-min-microvolt = <1304000>;
478354d7675SEmmanuel Vadot			regulator-max-microvolt = <1368000>;
479354d7675SEmmanuel Vadot			regulator-allow-set-load;
480354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
481354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
482354d7675SEmmanuel Vadot		};
483354d7675SEmmanuel Vadot
484354d7675SEmmanuel Vadot		vreg_l7a_1p2: l7 {
485354d7675SEmmanuel Vadot			regulator-min-microvolt = <1200000>;
486354d7675SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
487354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
488354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
489354d7675SEmmanuel Vadot		};
490354d7675SEmmanuel Vadot
491354d7675SEmmanuel Vadot		vreg_l8a_1p8: l8 {
492354d7675SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
493354d7675SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
494354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
495354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
496354d7675SEmmanuel Vadot			regulator-system-load = <325000>;
497354d7675SEmmanuel Vadot			regulator-allow-set-load;
498354d7675SEmmanuel Vadot		};
499354d7675SEmmanuel Vadot
500354d7675SEmmanuel Vadot		vreg_l9a_1p8: l9 {
501354d7675SEmmanuel Vadot			regulator-min-microvolt = <1804000>;
502354d7675SEmmanuel Vadot			regulator-max-microvolt = <1896000>;
503354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
504354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
505354d7675SEmmanuel Vadot			regulator-allow-set-load;
506354d7675SEmmanuel Vadot		};
507354d7675SEmmanuel Vadot
508354d7675SEmmanuel Vadot		vreg_l10a_1p8: l10 {
509354d7675SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
510354d7675SEmmanuel Vadot			regulator-max-microvolt = <1944000>;
511354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
512354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
513354d7675SEmmanuel Vadot			regulator-allow-set-load;
514354d7675SEmmanuel Vadot		};
515354d7675SEmmanuel Vadot
516354d7675SEmmanuel Vadot		vreg_l11a_1p8: l11 {
517354d7675SEmmanuel Vadot			regulator-min-microvolt = <1784000>;
518354d7675SEmmanuel Vadot			regulator-max-microvolt = <1944000>;
519354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
520354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
521354d7675SEmmanuel Vadot		};
522354d7675SEmmanuel Vadot
523354d7675SEmmanuel Vadot		vreg_l12a_1p8: l12 {
524354d7675SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
525354d7675SEmmanuel Vadot			regulator-max-microvolt = <1944000>;
526354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
527354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
528354d7675SEmmanuel Vadot		};
529354d7675SEmmanuel Vadot
530354d7675SEmmanuel Vadot		/* This gives power to the LPDDR4: never turn it off! */
531354d7675SEmmanuel Vadot		vreg_l13a_1p8: l13 {
532354d7675SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
533354d7675SEmmanuel Vadot			regulator-max-microvolt = <1944000>;
534354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
535354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
536354d7675SEmmanuel Vadot			regulator-boot-on;
537354d7675SEmmanuel Vadot			regulator-always-on;
538354d7675SEmmanuel Vadot		};
539354d7675SEmmanuel Vadot
540354d7675SEmmanuel Vadot		vreg_l14a_1p8: l14 {
541354d7675SEmmanuel Vadot			regulator-min-microvolt = <1710000>;
542354d7675SEmmanuel Vadot			regulator-max-microvolt = <1904000>;
543354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
544354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
545354d7675SEmmanuel Vadot		};
546354d7675SEmmanuel Vadot
547354d7675SEmmanuel Vadot		vreg_l15a_1p8: l15 {
548354d7675SEmmanuel Vadot			regulator-min-microvolt = <1648000>;
549354d7675SEmmanuel Vadot			regulator-max-microvolt = <2952000>;
550354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
551354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
552354d7675SEmmanuel Vadot		};
553354d7675SEmmanuel Vadot
554354d7675SEmmanuel Vadot		/* L16A (2.70V) is unused */
555354d7675SEmmanuel Vadot
556354d7675SEmmanuel Vadot		vreg_l17a_1p8: l17 {
557354d7675SEmmanuel Vadot			regulator-min-microvolt = <1648000>;
558354d7675SEmmanuel Vadot			regulator-max-microvolt = <2952000>;
559354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
560354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
561354d7675SEmmanuel Vadot		};
562354d7675SEmmanuel Vadot
563354d7675SEmmanuel Vadot		vreg_l18a_1v8: l18 {
564354d7675SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
565354d7675SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
566354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
567354d7675SEmmanuel Vadot			regulator-ramp-delay = <10>;
568354d7675SEmmanuel Vadot			regulator-min-microamp = <200>;
569354d7675SEmmanuel Vadot			regulator-max-microamp = <50000>;
570354d7675SEmmanuel Vadot			regulator-system-load = <10000>;
571354d7675SEmmanuel Vadot			regulator-allow-set-load;
572354d7675SEmmanuel Vadot		};
573354d7675SEmmanuel Vadot
574354d7675SEmmanuel Vadot		vreg_l19a_3p3: l19 {
575354d7675SEmmanuel Vadot			regulator-min-microvolt = <3312000>;
576354d7675SEmmanuel Vadot			regulator-max-microvolt = <3400000>;
577354d7675SEmmanuel Vadot			regulator-enable-ramp-delay = <250>;
578354d7675SEmmanuel Vadot			regulator-ramp-delay = <0>;
579354d7675SEmmanuel Vadot			regulator-allow-set-load;
580354d7675SEmmanuel Vadot		};
581354d7675SEmmanuel Vadot	};
582354d7675SEmmanuel Vadot};
583354d7675SEmmanuel Vadot
584b97ee269SEmmanuel Vadot&sdc2_state_on {
5858bab661aSEmmanuel Vadot	sd-cd-pins {
586b97ee269SEmmanuel Vadot		pins = "gpio54";
5878bab661aSEmmanuel Vadot		function = "gpio";
588b97ee269SEmmanuel Vadot		bias-pull-up;
589b97ee269SEmmanuel Vadot		drive-strength = <2>;
590b97ee269SEmmanuel Vadot	};
591b97ee269SEmmanuel Vadot};
592b97ee269SEmmanuel Vadot
593b97ee269SEmmanuel Vadot&sdc2_state_off {
5948bab661aSEmmanuel Vadot	sd-cd-pins {
595b97ee269SEmmanuel Vadot		pins = "gpio54";
5968bab661aSEmmanuel Vadot		function = "gpio";
597b97ee269SEmmanuel Vadot		bias-disable;
598b97ee269SEmmanuel Vadot		drive-strength = <2>;
599b97ee269SEmmanuel Vadot	};
600b97ee269SEmmanuel Vadot};
601b97ee269SEmmanuel Vadot
602354d7675SEmmanuel Vadot&sdhc_1 {
603354d7675SEmmanuel Vadot	status = "okay";
604354d7675SEmmanuel Vadot	supports-cqe;
605354d7675SEmmanuel Vadot
606354d7675SEmmanuel Vadot	/* SoMC Nile platform's eMMC doesn't support HS200 mode */
607354d7675SEmmanuel Vadot	mmc-ddr-1_8v;
608354d7675SEmmanuel Vadot	mmc-hs400-1_8v;
609354d7675SEmmanuel Vadot	mmc-hs400-enhanced-strobe;
610354d7675SEmmanuel Vadot
6118cc087a1SEmmanuel Vadot	vmmc-supply = <&vreg_l4b_2p95>;
612354d7675SEmmanuel Vadot	vqmmc-supply = <&vreg_l8a_1p8>;
613354d7675SEmmanuel Vadot};
614354d7675SEmmanuel Vadot
615354d7675SEmmanuel Vadot&sdhc_2 {
616354d7675SEmmanuel Vadot	status = "okay";
617354d7675SEmmanuel Vadot
6188cc087a1SEmmanuel Vadot	vmmc-supply = <&vreg_l5b_2p95>;
619354d7675SEmmanuel Vadot	vqmmc-supply = <&vreg_l2b_2p95>;
620354d7675SEmmanuel Vadot};
621354d7675SEmmanuel Vadot
622354d7675SEmmanuel Vadot&tlmm {
623354d7675SEmmanuel Vadot	gpio-reserved-ranges = <8 4>;
624354d7675SEmmanuel Vadot
6258bab661aSEmmanuel Vadot	ts_int_active: ts-int-active-state {
626354d7675SEmmanuel Vadot		pins = "gpio45";
6278bab661aSEmmanuel Vadot		function = "gpio";
628354d7675SEmmanuel Vadot		drive-strength = <8>;
629354d7675SEmmanuel Vadot		bias-pull-up;
630354d7675SEmmanuel Vadot	};
631354d7675SEmmanuel Vadot
6328bab661aSEmmanuel Vadot	ts_lcd_id_active: ts-lcd-id-active-state {
633354d7675SEmmanuel Vadot		pins = "gpio56";
6348bab661aSEmmanuel Vadot		function = "gpio";
635354d7675SEmmanuel Vadot		drive-strength = <8>;
636354d7675SEmmanuel Vadot		bias-disable;
637354d7675SEmmanuel Vadot	};
638354d7675SEmmanuel Vadot
6398bab661aSEmmanuel Vadot	imx300_vana_default: imx300-vana-default-state {
640354d7675SEmmanuel Vadot		pins = "gpio50";
641354d7675SEmmanuel Vadot		function = "gpio";
642354d7675SEmmanuel Vadot		bias-disable;
643354d7675SEmmanuel Vadot		drive-strength = <2>;
644354d7675SEmmanuel Vadot	};
645354d7675SEmmanuel Vadot
6468bab661aSEmmanuel Vadot	imx219_vana_default: imx219-vana-default-state {
647354d7675SEmmanuel Vadot		pins = "gpio51";
648354d7675SEmmanuel Vadot		function = "gpio";
649354d7675SEmmanuel Vadot		bias-disable;
650354d7675SEmmanuel Vadot		drive-strength = <2>;
651354d7675SEmmanuel Vadot	};
652354d7675SEmmanuel Vadot
6538bab661aSEmmanuel Vadot	cam_vdig_default: cam-vdig-default-state {
654354d7675SEmmanuel Vadot		pins = "gpio52";
655354d7675SEmmanuel Vadot		function = "gpio";
656354d7675SEmmanuel Vadot		bias-disable;
657354d7675SEmmanuel Vadot		drive-strength = <2>;
658354d7675SEmmanuel Vadot	};
659354d7675SEmmanuel Vadot};
660354d7675SEmmanuel Vadot
661354d7675SEmmanuel Vadot&usb3 {
662354d7675SEmmanuel Vadot	status = "okay";
663354d7675SEmmanuel Vadot};
664354d7675SEmmanuel Vadot
665354d7675SEmmanuel Vadot&usb3_dwc3 {
666354d7675SEmmanuel Vadot	dr_mode = "peripheral";
667354d7675SEmmanuel Vadot	extcon = <&extcon_usb>;
668c66ec88fSEmmanuel Vadot};
669