1#include "qcom-msm8974.dtsi"
2#include "qcom-pm8841.dtsi"
3#include "qcom-pm8941.dtsi"
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/input/input.h>
6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
7
8
9/ {
10	model = "Fairphone 2";
11	compatible = "fairphone,fp2", "qcom,msm8974";
12
13	aliases {
14		serial0 = &blsp1_uart2;
15	};
16
17	chosen {
18		stdout-path = "serial0:115200n8";
19	};
20
21	gpio-keys {
22		compatible = "gpio-keys";
23		input-name = "gpio-keys";
24
25		pinctrl-names = "default";
26		pinctrl-0 = <&gpio_keys_pin_a>;
27
28		camera-snapshot {
29			label = "camera_snapshot";
30			gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
31			linux,code = <KEY_CAMERA>;
32			wakeup-source;
33			debounce-interval = <15>;
34		};
35
36		volume-down {
37			label = "volume_down";
38			gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
39			linux,code = <KEY_VOLUMEDOWN>;
40			wakeup-source;
41			debounce-interval = <15>;
42		};
43
44		volume-up {
45			label = "volume_up";
46			gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
47			linux,code = <KEY_VOLUMEUP>;
48			wakeup-source;
49			debounce-interval = <15>;
50		};
51	};
52
53	vibrator {
54		compatible = "gpio-vibrator";
55		enable-gpios = <&msmgpio 86 GPIO_ACTIVE_HIGH>;
56		vcc-supply = <&pm8941_l18>;
57	};
58
59	smd {
60		rpm {
61			rpm_requests {
62				pm8841-regulators {
63					s1 {
64						regulator-min-microvolt = <675000>;
65						regulator-max-microvolt = <1050000>;
66					};
67
68					s2 {
69						regulator-min-microvolt = <500000>;
70						regulator-max-microvolt = <1050000>;
71					};
72
73					s3 {
74						regulator-min-microvolt = <1050000>;
75						regulator-max-microvolt = <1050000>;
76					};
77				};
78
79				pm8941-regulators {
80					vdd_l1_l3-supply = <&pm8941_s1>;
81					vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
82					vdd_l4_l11-supply = <&pm8941_s1>;
83					vdd_l5_l7-supply = <&pm8941_s2>;
84					vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
85					vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
86					vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
87					vdd_l21-supply = <&vreg_boost>;
88
89					s1 {
90						regulator-min-microvolt = <1300000>;
91						regulator-max-microvolt = <1300000>;
92
93						regulator-always-on;
94						regulator-boot-on;
95					};
96
97					s2 {
98						regulator-min-microvolt = <2150000>;
99						regulator-max-microvolt = <2150000>;
100
101						regulator-boot-on;
102					};
103
104					s3 {
105						regulator-min-microvolt = <1800000>;
106						regulator-max-microvolt = <1800000>;
107
108						regulator-always-on;
109						regulator-boot-on;
110					};
111
112					l1 {
113						regulator-min-microvolt = <1225000>;
114						regulator-max-microvolt = <1225000>;
115
116						regulator-always-on;
117						regulator-boot-on;
118					};
119
120					l2 {
121						regulator-min-microvolt = <1200000>;
122						regulator-max-microvolt = <1200000>;
123					};
124
125					l3 {
126						regulator-min-microvolt = <1225000>;
127						regulator-max-microvolt = <1225000>;
128					};
129
130					l4 {
131						regulator-min-microvolt = <1225000>;
132						regulator-max-microvolt = <1225000>;
133					};
134
135					l5 {
136						regulator-min-microvolt = <1800000>;
137						regulator-max-microvolt = <1800000>;
138					};
139
140					l6 {
141						regulator-min-microvolt = <1800000>;
142						regulator-max-microvolt = <1800000>;
143
144						regulator-boot-on;
145					};
146
147					l7 {
148						regulator-min-microvolt = <1800000>;
149						regulator-max-microvolt = <1800000>;
150
151						regulator-boot-on;
152					};
153
154					l8 {
155						regulator-min-microvolt = <1800000>;
156						regulator-max-microvolt = <1800000>;
157					};
158
159					l9 {
160						regulator-min-microvolt = <1800000>;
161						regulator-max-microvolt = <2950000>;
162					};
163
164					l10 {
165						regulator-min-microvolt = <1800000>;
166						regulator-max-microvolt = <2950000>;
167					};
168
169					l11 {
170						regulator-min-microvolt = <1225000>;
171						regulator-max-microvolt = <1350000>;
172					};
173
174					l12 {
175						regulator-min-microvolt = <1800000>;
176						regulator-max-microvolt = <1800000>;
177
178						regulator-always-on;
179						regulator-boot-on;
180					};
181
182					l13 {
183						regulator-min-microvolt = <1800000>;
184						regulator-max-microvolt = <2950000>;
185
186						regulator-boot-on;
187					};
188
189					l14 {
190						regulator-min-microvolt = <1800000>;
191						regulator-max-microvolt = <1800000>;
192					};
193
194					l15 {
195						regulator-min-microvolt = <2050000>;
196						regulator-max-microvolt = <2050000>;
197					};
198
199					l16 {
200						regulator-min-microvolt = <2700000>;
201						regulator-max-microvolt = <2700000>;
202					};
203
204					l17 {
205						regulator-min-microvolt = <2850000>;
206						regulator-max-microvolt = <2850000>;
207					};
208
209					l18 {
210						regulator-min-microvolt = <2850000>;
211						regulator-max-microvolt = <2850000>;
212					};
213
214					l19 {
215						regulator-min-microvolt = <2900000>;
216						regulator-max-microvolt = <3350000>;
217					};
218
219					l20 {
220						regulator-min-microvolt = <2950000>;
221						regulator-max-microvolt = <2950000>;
222
223						regulator-boot-on;
224						regulator-system-load = <200000>;
225						regulator-allow-set-load;
226					};
227
228					l21 {
229						regulator-min-microvolt = <2950000>;
230						regulator-max-microvolt = <2950000>;
231
232						regulator-boot-on;
233					};
234
235					l22 {
236						regulator-min-microvolt = <3000000>;
237						regulator-max-microvolt = <3300000>;
238					};
239
240					l23 {
241						regulator-min-microvolt = <3000000>;
242						regulator-max-microvolt = <3000000>;
243					};
244
245					l24 {
246						regulator-min-microvolt = <3075000>;
247						regulator-max-microvolt = <3075000>;
248
249						regulator-boot-on;
250					};
251				};
252			};
253		};
254	};
255};
256
257&soc {
258	serial@f991e000 {
259		status = "okay";
260	};
261
262	remoteproc@fb21b000 {
263		status = "okay";
264
265		vddmx-supply = <&pm8841_s1>;
266		vddcx-supply = <&pm8841_s2>;
267
268		pinctrl-names = "default";
269		pinctrl-0 = <&wcnss_pin_a>;
270
271		smd-edge {
272			qcom,remote-pid = <4>;
273			label = "pronto";
274
275			wcnss {
276				status = "okay";
277			};
278		};
279	};
280
281	pinctrl@fd510000 {
282		sdhc1_pin_a: sdhc1-pin-active {
283			clk {
284				pins = "sdc1_clk";
285				drive-strength = <16>;
286				bias-disable;
287			};
288
289			cmd-data {
290				pins = "sdc1_cmd", "sdc1_data";
291				drive-strength = <10>;
292				bias-pull-up;
293			};
294		};
295
296		sdhc2_pin_a: sdhc2-pin-active {
297			clk {
298				pins = "sdc2_clk";
299				drive-strength = <10>;
300				bias-disable;
301			};
302
303			cmd-data {
304				pins = "sdc2_cmd", "sdc2_data";
305				drive-strength = <6>;
306				bias-pull-up;
307			};
308		};
309
310		wcnss_pin_a: wcnss-pin-active {
311			wlan {
312				pins =  "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
313				function = "wlan";
314
315				drive-strength = <6>;
316				bias-pull-down;
317			};
318
319			bt {
320				pins = "gpio35", "gpio43", "gpio44";
321				function = "bt";
322
323				drive-strength = <2>;
324				bias-pull-down;
325			};
326
327			fm {
328				pins = "gpio41", "gpio42";
329				function = "fm";
330
331				drive-strength = <2>;
332				bias-pull-down;
333			};
334		};
335	};
336
337	sdhci@f9824900 {
338		status = "okay";
339
340		vmmc-supply = <&pm8941_l20>;
341		vqmmc-supply = <&pm8941_s3>;
342
343		bus-width = <8>;
344		non-removable;
345
346		pinctrl-names = "default";
347		pinctrl-0 = <&sdhc1_pin_a>;
348	};
349
350	sdhci@f98a4900 {
351		status = "okay";
352
353		vmmc-supply = <&pm8941_l21>;
354		vqmmc-supply = <&pm8941_l13>;
355
356		bus-width = <4>;
357
358		pinctrl-names = "default";
359		pinctrl-0 = <&sdhc2_pin_a>;
360	};
361
362	usb@f9a55000 {
363		status = "okay";
364
365		phys = <&usb_hs1_phy>;
366		phy-select = <&tcsr 0xb000 0>;
367		extcon = <&smbb>, <&usb_id>;
368		vbus-supply = <&chg_otg>;
369
370		hnp-disable;
371		srp-disable;
372		adp-disable;
373
374		ulpi {
375			phy@a {
376				status = "okay";
377
378				v1p8-supply = <&pm8941_l6>;
379				v3p3-supply = <&pm8941_l24>;
380
381				extcon = <&smbb>;
382				qcom,init-seq = /bits/ 8 <0x1 0x64>;
383			};
384		};
385	};
386
387	imem@fe805000 {
388		status = "okay";
389
390		reboot-mode {
391			mode-normal	= <0x77665501>;
392			mode-bootloader	= <0x77665500>;
393			mode-recovery	= <0x77665502>;
394		};
395	};
396};
397
398&spmi_bus {
399	pm8941@0 {
400		gpios@c000 {
401			gpio_keys_pin_a: gpio-keys-active {
402				pins = "gpio1", "gpio2", "gpio5";
403				function = "normal";
404
405				bias-pull-up;
406				power-source = <PM8941_GPIO_S3>;
407			};
408		};
409	};
410};
411