1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2724ba675SRob Herring#include "qcom-msm8974pro.dtsi"
3*9d004cdaSDmitry Baryshkov#include "pm8841.dtsi"
4*9d004cdaSDmitry Baryshkov#include "pm8941.dtsi"
5724ba675SRob Herring#include <dt-bindings/input/input.h>
6724ba675SRob Herring#include <dt-bindings/leds/common.h>
7724ba675SRob Herring#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
8724ba675SRob Herring
9724ba675SRob Herring/ {
10724ba675SRob Herring	model = "Fairphone 2";
11724ba675SRob Herring	compatible = "fairphone,fp2", "qcom,msm8974pro", "qcom,msm8974";
12724ba675SRob Herring	chassis-type = "handset";
13724ba675SRob Herring
14724ba675SRob Herring	aliases {
15724ba675SRob Herring		mmc0 = &sdhc_1;
16724ba675SRob Herring		mmc1 = &sdhc_2;
17724ba675SRob Herring		serial0 = &blsp1_uart2;
18724ba675SRob Herring	};
19724ba675SRob Herring
20724ba675SRob Herring	chosen {
21724ba675SRob Herring		stdout-path = "serial0:115200n8";
22724ba675SRob Herring	};
23724ba675SRob Herring
24724ba675SRob Herring	gpio-keys {
25724ba675SRob Herring		compatible = "gpio-keys";
26724ba675SRob Herring
27724ba675SRob Herring		pinctrl-names = "default";
28724ba675SRob Herring		pinctrl-0 = <&gpio_keys_pin_a>;
29724ba675SRob Herring
30724ba675SRob Herring		key-camera-snapshot {
31724ba675SRob Herring			label = "camera_snapshot";
32724ba675SRob Herring			gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
33724ba675SRob Herring			linux,code = <KEY_CAMERA>;
34724ba675SRob Herring			wakeup-source;
35724ba675SRob Herring			debounce-interval = <15>;
36724ba675SRob Herring		};
37724ba675SRob Herring
38724ba675SRob Herring		key-volume-down {
39724ba675SRob Herring			label = "volume_down";
40724ba675SRob Herring			gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
41724ba675SRob Herring			linux,code = <KEY_VOLUMEDOWN>;
42724ba675SRob Herring			wakeup-source;
43724ba675SRob Herring			debounce-interval = <15>;
44724ba675SRob Herring		};
45724ba675SRob Herring
46724ba675SRob Herring		key-volume-up {
47724ba675SRob Herring			label = "volume_up";
48724ba675SRob Herring			gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
49724ba675SRob Herring			linux,code = <KEY_VOLUMEUP>;
50724ba675SRob Herring			wakeup-source;
51724ba675SRob Herring			debounce-interval = <15>;
52724ba675SRob Herring		};
53724ba675SRob Herring	};
54724ba675SRob Herring
55724ba675SRob Herring	vibrator {
56724ba675SRob Herring		compatible = "gpio-vibrator";
57724ba675SRob Herring		enable-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
58724ba675SRob Herring		vcc-supply = <&pm8941_l18>;
59724ba675SRob Herring	};
60724ba675SRob Herring};
61724ba675SRob Herring
62724ba675SRob Herring&blsp1_i2c2 {
63724ba675SRob Herring	status = "okay";
64724ba675SRob Herring
65724ba675SRob Herring	touchscreen@41 {
66724ba675SRob Herring		compatible = "ilitek,ili2120";
67724ba675SRob Herring		reg = <0x41>;
68724ba675SRob Herring		interrupt-parent = <&tlmm>;
69724ba675SRob Herring		interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
70724ba675SRob Herring		reset-gpios = <&tlmm 55 GPIO_ACTIVE_LOW>;
71724ba675SRob Herring
72724ba675SRob Herring		touchscreen-size-x = <1080>;
73724ba675SRob Herring		touchscreen-size-y = <1920>;
74724ba675SRob Herring	};
75724ba675SRob Herring};
76724ba675SRob Herring
77724ba675SRob Herring&blsp1_uart2 {
78724ba675SRob Herring	status = "okay";
79724ba675SRob Herring};
80724ba675SRob Herring
81724ba675SRob Herring&imem {
82724ba675SRob Herring	reboot-mode {
83724ba675SRob Herring		mode-normal = <0x77665501>;
84724ba675SRob Herring		mode-bootloader = <0x77665500>;
85724ba675SRob Herring		mode-recovery = <0x77665502>;
86724ba675SRob Herring	};
87724ba675SRob Herring};
88724ba675SRob Herring
89724ba675SRob Herring&pm8941_gpios {
90724ba675SRob Herring	gpio_keys_pin_a: gpio-keys-active-state {
91724ba675SRob Herring		pins = "gpio1", "gpio2", "gpio5";
92724ba675SRob Herring		function = "normal";
93724ba675SRob Herring
94724ba675SRob Herring		bias-pull-up;
95724ba675SRob Herring		power-source = <PM8941_GPIO_S3>;
96724ba675SRob Herring	};
97724ba675SRob Herring};
98724ba675SRob Herring
99724ba675SRob Herring&pm8941_lpg {
100724ba675SRob Herring	status = "okay";
101724ba675SRob Herring
102724ba675SRob Herring	qcom,power-source = <1>;
103724ba675SRob Herring
104724ba675SRob Herring	multi-led {
105724ba675SRob Herring		color = <LED_COLOR_ID_RGB>;
106724ba675SRob Herring		function = LED_FUNCTION_STATUS;
107724ba675SRob Herring
108724ba675SRob Herring		#address-cells = <1>;
109724ba675SRob Herring		#size-cells = <0>;
110724ba675SRob Herring
111724ba675SRob Herring		led@7 {
112724ba675SRob Herring			reg = <7>;
113724ba675SRob Herring			color = <LED_COLOR_ID_RED>;
114724ba675SRob Herring		};
115724ba675SRob Herring
116724ba675SRob Herring		led@6 {
117724ba675SRob Herring			reg = <6>;
118724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
119724ba675SRob Herring		};
120724ba675SRob Herring
121724ba675SRob Herring		led@5 {
122724ba675SRob Herring			reg = <5>;
123724ba675SRob Herring			color = <LED_COLOR_ID_BLUE>;
124724ba675SRob Herring		};
125724ba675SRob Herring	};
126724ba675SRob Herring};
127724ba675SRob Herring
128724ba675SRob Herring&pronto {
129724ba675SRob Herring	status = "okay";
130724ba675SRob Herring
131724ba675SRob Herring	vddmx-supply = <&pm8841_s1>;
132724ba675SRob Herring	vddcx-supply = <&pm8841_s2>;
133724ba675SRob Herring	vddpx-supply = <&pm8941_s3>;
134724ba675SRob Herring
135724ba675SRob Herring	pinctrl-names = "default";
136724ba675SRob Herring	pinctrl-0 = <&wcnss_pin_a>;
137724ba675SRob Herring
138724ba675SRob Herring	iris {
139724ba675SRob Herring		vddxo-supply = <&pm8941_l6>;
140724ba675SRob Herring		vddrfa-supply = <&pm8941_l11>;
141724ba675SRob Herring		vddpa-supply = <&pm8941_l19>;
142724ba675SRob Herring		vdddig-supply = <&pm8941_s3>;
143724ba675SRob Herring	};
144724ba675SRob Herring
145724ba675SRob Herring	smd-edge {
146724ba675SRob Herring		qcom,remote-pid = <4>;
147724ba675SRob Herring		label = "pronto";
148724ba675SRob Herring
149724ba675SRob Herring		wcnss {
150724ba675SRob Herring			status = "okay";
151724ba675SRob Herring		};
152724ba675SRob Herring	};
153724ba675SRob Herring};
154724ba675SRob Herring
155724ba675SRob Herring&remoteproc_adsp {
156724ba675SRob Herring	status = "okay";
157724ba675SRob Herring	cx-supply = <&pm8841_s2>;
158724ba675SRob Herring};
159724ba675SRob Herring
160724ba675SRob Herring&remoteproc_mss {
161724ba675SRob Herring	status = "okay";
162724ba675SRob Herring	cx-supply = <&pm8841_s2>;
163724ba675SRob Herring	mss-supply = <&pm8841_s3>;
164724ba675SRob Herring	mx-supply = <&pm8841_s1>;
165724ba675SRob Herring	pll-supply = <&pm8941_l12>;
166724ba675SRob Herring};
167724ba675SRob Herring
168724ba675SRob Herring&rpm_requests {
169724ba675SRob Herring	regulators-0 {
170724ba675SRob Herring		compatible = "qcom,rpm-pm8841-regulators";
171724ba675SRob Herring
172724ba675SRob Herring		pm8841_s1: s1 {
173724ba675SRob Herring			regulator-min-microvolt = <675000>;
174724ba675SRob Herring			regulator-max-microvolt = <1050000>;
175724ba675SRob Herring		};
176724ba675SRob Herring
177724ba675SRob Herring		pm8841_s2: s2 {
178724ba675SRob Herring			regulator-min-microvolt = <500000>;
179724ba675SRob Herring			regulator-max-microvolt = <1050000>;
180724ba675SRob Herring		};
181724ba675SRob Herring
182724ba675SRob Herring		pm8841_s3: s3 {
183724ba675SRob Herring			regulator-min-microvolt = <1050000>;
184724ba675SRob Herring			regulator-max-microvolt = <1050000>;
185724ba675SRob Herring		};
186724ba675SRob Herring	};
187724ba675SRob Herring
188724ba675SRob Herring	regulators-1 {
189724ba675SRob Herring		compatible = "qcom,rpm-pm8941-regulators";
190724ba675SRob Herring
191724ba675SRob Herring		vdd_l1_l3-supply = <&pm8941_s1>;
192724ba675SRob Herring		vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
193724ba675SRob Herring		vdd_l4_l11-supply = <&pm8941_s1>;
194724ba675SRob Herring		vdd_l5_l7-supply = <&pm8941_s2>;
195724ba675SRob Herring		vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
196724ba675SRob Herring		vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
197724ba675SRob Herring		vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
198724ba675SRob Herring		vdd_l21-supply = <&vreg_boost>;
199724ba675SRob Herring
200724ba675SRob Herring		pm8941_s1: s1 {
201724ba675SRob Herring			regulator-min-microvolt = <1300000>;
202724ba675SRob Herring			regulator-max-microvolt = <1300000>;
203724ba675SRob Herring			regulator-always-on;
204724ba675SRob Herring			regulator-boot-on;
205724ba675SRob Herring		};
206724ba675SRob Herring
207724ba675SRob Herring		pm8941_s2: s2 {
208724ba675SRob Herring			regulator-min-microvolt = <2150000>;
209724ba675SRob Herring			regulator-max-microvolt = <2150000>;
210724ba675SRob Herring			regulator-boot-on;
211724ba675SRob Herring		};
212724ba675SRob Herring
213724ba675SRob Herring		pm8941_s3: s3 {
214724ba675SRob Herring			regulator-min-microvolt = <1800000>;
215724ba675SRob Herring			regulator-max-microvolt = <1800000>;
216724ba675SRob Herring			regulator-always-on;
217724ba675SRob Herring			regulator-boot-on;
218724ba675SRob Herring		};
219724ba675SRob Herring
220724ba675SRob Herring		pm8941_l1: l1 {
221724ba675SRob Herring			regulator-min-microvolt = <1225000>;
222724ba675SRob Herring			regulator-max-microvolt = <1225000>;
223724ba675SRob Herring			regulator-always-on;
224724ba675SRob Herring			regulator-boot-on;
225724ba675SRob Herring		};
226724ba675SRob Herring
227724ba675SRob Herring		pm8941_l2: l2 {
228724ba675SRob Herring			regulator-min-microvolt = <1200000>;
229724ba675SRob Herring			regulator-max-microvolt = <1200000>;
230724ba675SRob Herring		};
231724ba675SRob Herring
232724ba675SRob Herring		pm8941_l3: l3 {
233724ba675SRob Herring			regulator-min-microvolt = <1225000>;
234724ba675SRob Herring			regulator-max-microvolt = <1225000>;
235724ba675SRob Herring		};
236724ba675SRob Herring
237724ba675SRob Herring		pm8941_l4: l4 {
238724ba675SRob Herring			regulator-min-microvolt = <1225000>;
239724ba675SRob Herring			regulator-max-microvolt = <1225000>;
240724ba675SRob Herring		};
241724ba675SRob Herring
242724ba675SRob Herring		pm8941_l5: l5 {
243724ba675SRob Herring			regulator-min-microvolt = <1800000>;
244724ba675SRob Herring			regulator-max-microvolt = <1800000>;
245724ba675SRob Herring		};
246724ba675SRob Herring
247724ba675SRob Herring		pm8941_l6: l6 {
248724ba675SRob Herring			regulator-min-microvolt = <1800000>;
249724ba675SRob Herring			regulator-max-microvolt = <1800000>;
250724ba675SRob Herring			regulator-boot-on;
251724ba675SRob Herring		};
252724ba675SRob Herring
253724ba675SRob Herring		pm8941_l7: l7 {
254724ba675SRob Herring			regulator-min-microvolt = <1800000>;
255724ba675SRob Herring			regulator-max-microvolt = <1800000>;
256724ba675SRob Herring			regulator-boot-on;
257724ba675SRob Herring		};
258724ba675SRob Herring
259724ba675SRob Herring		pm8941_l8: l8 {
260724ba675SRob Herring			regulator-min-microvolt = <1800000>;
261724ba675SRob Herring			regulator-max-microvolt = <1800000>;
262724ba675SRob Herring		};
263724ba675SRob Herring
264724ba675SRob Herring		pm8941_l9: l9 {
265724ba675SRob Herring			regulator-min-microvolt = <1800000>;
266724ba675SRob Herring			regulator-max-microvolt = <2950000>;
267724ba675SRob Herring		};
268724ba675SRob Herring
269724ba675SRob Herring		pm8941_l10: l10 {
270724ba675SRob Herring			regulator-min-microvolt = <1800000>;
271724ba675SRob Herring			regulator-max-microvolt = <2950000>;
272724ba675SRob Herring		};
273724ba675SRob Herring
274724ba675SRob Herring		pm8941_l11: l11 {
275724ba675SRob Herring			regulator-min-microvolt = <1225000>;
276724ba675SRob Herring			regulator-max-microvolt = <1350000>;
277724ba675SRob Herring		};
278724ba675SRob Herring
279724ba675SRob Herring		pm8941_l12: l12 {
280724ba675SRob Herring			regulator-min-microvolt = <1800000>;
281724ba675SRob Herring			regulator-max-microvolt = <1800000>;
282724ba675SRob Herring			regulator-always-on;
283724ba675SRob Herring			regulator-boot-on;
284724ba675SRob Herring		};
285724ba675SRob Herring
286724ba675SRob Herring		pm8941_l13: l13 {
287724ba675SRob Herring			regulator-min-microvolt = <1800000>;
288724ba675SRob Herring			regulator-max-microvolt = <2950000>;
289724ba675SRob Herring			regulator-boot-on;
290724ba675SRob Herring		};
291724ba675SRob Herring
292724ba675SRob Herring		pm8941_l14: l14 {
293724ba675SRob Herring			regulator-min-microvolt = <1800000>;
294724ba675SRob Herring			regulator-max-microvolt = <1800000>;
295724ba675SRob Herring		};
296724ba675SRob Herring
297724ba675SRob Herring		pm8941_l15: l15 {
298724ba675SRob Herring			regulator-min-microvolt = <2050000>;
299724ba675SRob Herring			regulator-max-microvolt = <2050000>;
300724ba675SRob Herring		};
301724ba675SRob Herring
302724ba675SRob Herring		pm8941_l16: l16 {
303724ba675SRob Herring			regulator-min-microvolt = <2700000>;
304724ba675SRob Herring			regulator-max-microvolt = <2700000>;
305724ba675SRob Herring		};
306724ba675SRob Herring
307724ba675SRob Herring		pm8941_l17: l17 {
308724ba675SRob Herring			regulator-min-microvolt = <2850000>;
309724ba675SRob Herring			regulator-max-microvolt = <2850000>;
310724ba675SRob Herring		};
311724ba675SRob Herring
312724ba675SRob Herring		pm8941_l18: l18 {
313724ba675SRob Herring			regulator-min-microvolt = <2850000>;
314724ba675SRob Herring			regulator-max-microvolt = <2850000>;
315724ba675SRob Herring		};
316724ba675SRob Herring
317724ba675SRob Herring		pm8941_l19: l19 {
318724ba675SRob Herring			regulator-min-microvolt = <2900000>;
319724ba675SRob Herring			regulator-max-microvolt = <3350000>;
320724ba675SRob Herring		};
321724ba675SRob Herring
322724ba675SRob Herring		pm8941_l20: l20 {
323724ba675SRob Herring			regulator-min-microvolt = <2950000>;
324724ba675SRob Herring			regulator-max-microvolt = <2950000>;
325724ba675SRob Herring			regulator-system-load = <200000>;
326724ba675SRob Herring			regulator-allow-set-load;
327724ba675SRob Herring			regulator-boot-on;
328724ba675SRob Herring		};
329724ba675SRob Herring
330724ba675SRob Herring		pm8941_l21: l21 {
331724ba675SRob Herring			regulator-min-microvolt = <2950000>;
332724ba675SRob Herring			regulator-max-microvolt = <2950000>;
333724ba675SRob Herring			regulator-boot-on;
334724ba675SRob Herring		};
335724ba675SRob Herring
336724ba675SRob Herring		pm8941_l22: l22 {
337724ba675SRob Herring			regulator-min-microvolt = <3000000>;
338724ba675SRob Herring			regulator-max-microvolt = <3300000>;
339724ba675SRob Herring		};
340724ba675SRob Herring
341724ba675SRob Herring		pm8941_l23: l23 {
342724ba675SRob Herring			regulator-min-microvolt = <3000000>;
343724ba675SRob Herring			regulator-max-microvolt = <3000000>;
344724ba675SRob Herring		};
345724ba675SRob Herring
346724ba675SRob Herring		pm8941_l24: l24 {
347724ba675SRob Herring			regulator-min-microvolt = <3075000>;
348724ba675SRob Herring			regulator-max-microvolt = <3075000>;
349724ba675SRob Herring			regulator-boot-on;
350724ba675SRob Herring		};
351724ba675SRob Herring	};
352724ba675SRob Herring};
353724ba675SRob Herring
354724ba675SRob Herring&sdhc_1 {
355724ba675SRob Herring	status = "okay";
356724ba675SRob Herring
357724ba675SRob Herring	vmmc-supply = <&pm8941_l20>;
358724ba675SRob Herring	vqmmc-supply = <&pm8941_s3>;
359724ba675SRob Herring
360724ba675SRob Herring	pinctrl-names = "default", "sleep";
361724ba675SRob Herring	pinctrl-0 = <&sdc1_on>;
362724ba675SRob Herring	pinctrl-1 = <&sdc1_off>;
363724ba675SRob Herring};
364724ba675SRob Herring
365724ba675SRob Herring&sdhc_2 {
366724ba675SRob Herring	status = "okay";
367724ba675SRob Herring
368724ba675SRob Herring	vmmc-supply = <&pm8941_l21>;
369724ba675SRob Herring	vqmmc-supply = <&pm8941_l13>;
370724ba675SRob Herring
371724ba675SRob Herring	pinctrl-names = "default", "sleep";
372724ba675SRob Herring	pinctrl-0 = <&sdc2_on>;
373724ba675SRob Herring	pinctrl-1 = <&sdc2_off>;
374724ba675SRob Herring};
375724ba675SRob Herring
376724ba675SRob Herring&smbb {
377724ba675SRob Herring	usb-charge-current-limit = <1500000>;
378724ba675SRob Herring	qcom,fast-charge-safe-current = <1500000>;
379724ba675SRob Herring	qcom,fast-charge-current-limit = <1500000>;
380724ba675SRob Herring	qcom,fast-charge-safe-voltage = <4380000>;
381724ba675SRob Herring	qcom,fast-charge-high-threshold-voltage = <4350000>;
382724ba675SRob Herring	qcom,auto-recharge-threshold-voltage = <4240000>;
383724ba675SRob Herring	qcom,minimum-input-voltage = <4450000>;
384724ba675SRob Herring};
385724ba675SRob Herring
386724ba675SRob Herring&tlmm {
387724ba675SRob Herring	sdc1_on: sdc1-on-state {
388724ba675SRob Herring		clk-pins {
389724ba675SRob Herring			pins = "sdc1_clk";
390724ba675SRob Herring			drive-strength = <16>;
391724ba675SRob Herring			bias-disable;
392724ba675SRob Herring		};
393724ba675SRob Herring
394724ba675SRob Herring		cmd-data-pins {
395724ba675SRob Herring			pins = "sdc1_cmd", "sdc1_data";
396724ba675SRob Herring			drive-strength = <10>;
397724ba675SRob Herring			bias-pull-up;
398724ba675SRob Herring		};
399724ba675SRob Herring	};
400724ba675SRob Herring
401724ba675SRob Herring	sdc2_on: sdc2-on-state {
402724ba675SRob Herring		clk-pins {
403724ba675SRob Herring			pins = "sdc2_clk";
404724ba675SRob Herring			drive-strength = <10>;
405724ba675SRob Herring			bias-disable;
406724ba675SRob Herring		};
407724ba675SRob Herring
408724ba675SRob Herring		cmd-data-pins {
409724ba675SRob Herring			pins = "sdc2_cmd", "sdc2_data";
410724ba675SRob Herring			drive-strength = <6>;
411724ba675SRob Herring			bias-pull-up;
412724ba675SRob Herring		};
413724ba675SRob Herring	};
414724ba675SRob Herring
415724ba675SRob Herring	wcnss_pin_a: wcnss-pin-active-state {
416724ba675SRob Herring		wlan-pins {
417724ba675SRob Herring			pins = "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
418724ba675SRob Herring			function = "wlan";
419724ba675SRob Herring
420724ba675SRob Herring			drive-strength = <6>;
421724ba675SRob Herring			bias-pull-down;
422724ba675SRob Herring		};
423724ba675SRob Herring
424724ba675SRob Herring		bt-pins {
425724ba675SRob Herring			pins = "gpio35", "gpio43", "gpio44";
426724ba675SRob Herring			function = "bt";
427724ba675SRob Herring
428724ba675SRob Herring			drive-strength = <2>;
429724ba675SRob Herring			bias-pull-down;
430724ba675SRob Herring		};
431724ba675SRob Herring
432724ba675SRob Herring		fm-pins {
433724ba675SRob Herring			pins = "gpio41", "gpio42";
434724ba675SRob Herring			function = "fm";
435724ba675SRob Herring
436724ba675SRob Herring			drive-strength = <2>;
437724ba675SRob Herring			bias-pull-down;
438724ba675SRob Herring		};
439724ba675SRob Herring	};
440724ba675SRob Herring};
441724ba675SRob Herring
442724ba675SRob Herring&usb {
443724ba675SRob Herring	status = "okay";
444724ba675SRob Herring
445724ba675SRob Herring	phys = <&usb_hs1_phy>;
446724ba675SRob Herring	phy-select = <&tcsr 0xb000 0>;
447724ba675SRob Herring	extcon = <&smbb>, <&usb_id>;
448724ba675SRob Herring	vbus-supply = <&chg_otg>;
449724ba675SRob Herring
450724ba675SRob Herring	hnp-disable;
451724ba675SRob Herring	srp-disable;
452724ba675SRob Herring	adp-disable;
453724ba675SRob Herring};
454724ba675SRob Herring
455724ba675SRob Herring&usb_hs1_phy {
456724ba675SRob Herring	status = "okay";
457724ba675SRob Herring
458724ba675SRob Herring	v1p8-supply = <&pm8941_l6>;
459724ba675SRob Herring	v3p3-supply = <&pm8941_l24>;
460724ba675SRob Herring
461724ba675SRob Herring	extcon = <&smbb>;
462724ba675SRob Herring	qcom,init-seq = /bits/ 8 <0x1 0x64>;
463724ba675SRob Herring};
464