blob: fe227fd3f908e219e20bffe3561390ca6568468e [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0
2#include "qcom-msm8974pro.dtsi"
Tom Rini93743d22024-04-01 09:08:13 -04003#include "pm8841.dtsi"
4#include "pm8941.dtsi"
Tom Rini53633a82024-02-29 12:33:36 -05005#include <dt-bindings/input/input.h>
6#include <dt-bindings/leds/common.h>
7#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
8
9/ {
10 model = "Fairphone 2";
11 compatible = "fairphone,fp2", "qcom,msm8974pro", "qcom,msm8974";
12 chassis-type = "handset";
13
14 aliases {
15 mmc0 = &sdhc_1;
16 mmc1 = &sdhc_2;
17 serial0 = &blsp1_uart2;
18 };
19
20 chosen {
21 stdout-path = "serial0:115200n8";
22 };
23
24 gpio-keys {
25 compatible = "gpio-keys";
26
27 pinctrl-names = "default";
28 pinctrl-0 = <&gpio_keys_pin_a>;
29
30 key-camera-snapshot {
31 label = "camera_snapshot";
32 gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
33 linux,code = <KEY_CAMERA>;
34 wakeup-source;
35 debounce-interval = <15>;
36 };
37
38 key-volume-down {
39 label = "volume_down";
40 gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
41 linux,code = <KEY_VOLUMEDOWN>;
42 wakeup-source;
43 debounce-interval = <15>;
44 };
45
46 key-volume-up {
47 label = "volume_up";
48 gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
49 linux,code = <KEY_VOLUMEUP>;
50 wakeup-source;
51 debounce-interval = <15>;
52 };
53 };
54
55 vibrator {
56 compatible = "gpio-vibrator";
57 enable-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
58 vcc-supply = <&pm8941_l18>;
59 };
Tom Rini93743d22024-04-01 09:08:13 -040060
61 vreg_boost: vreg-boost {
62 compatible = "regulator-fixed";
63
64 regulator-name = "vreg-boost";
65 regulator-min-microvolt = <3150000>;
66 regulator-max-microvolt = <3150000>;
67
68 regulator-always-on;
69 regulator-boot-on;
70
71 gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
72 enable-active-high;
73
74 pinctrl-names = "default";
75 pinctrl-0 = <&boost_bypass_n_pin>;
76 };
77
78 vreg_vph_pwr: vreg-vph-pwr {
79 compatible = "regulator-fixed";
80 regulator-name = "vph-pwr";
81
82 regulator-min-microvolt = <3600000>;
83 regulator-max-microvolt = <3600000>;
84
85 regulator-always-on;
86 };
Tom Rini53633a82024-02-29 12:33:36 -050087};
88
89&blsp1_i2c2 {
90 status = "okay";
91
92 touchscreen@41 {
93 compatible = "ilitek,ili2120";
94 reg = <0x41>;
95 interrupt-parent = <&tlmm>;
96 interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
97 reset-gpios = <&tlmm 55 GPIO_ACTIVE_LOW>;
98
99 touchscreen-size-x = <1080>;
100 touchscreen-size-y = <1920>;
101 };
102};
103
104&blsp1_uart2 {
105 status = "okay";
106};
107
108&imem {
109 reboot-mode {
110 mode-normal = <0x77665501>;
111 mode-bootloader = <0x77665500>;
112 mode-recovery = <0x77665502>;
113 };
114};
115
116&pm8941_gpios {
117 gpio_keys_pin_a: gpio-keys-active-state {
118 pins = "gpio1", "gpio2", "gpio5";
119 function = "normal";
120
121 bias-pull-up;
122 power-source = <PM8941_GPIO_S3>;
123 };
124};
125
126&pm8941_lpg {
127 status = "okay";
128
129 qcom,power-source = <1>;
130
131 multi-led {
132 color = <LED_COLOR_ID_RGB>;
133 function = LED_FUNCTION_STATUS;
134
135 #address-cells = <1>;
136 #size-cells = <0>;
137
138 led@7 {
139 reg = <7>;
140 color = <LED_COLOR_ID_RED>;
141 };
142
143 led@6 {
144 reg = <6>;
145 color = <LED_COLOR_ID_GREEN>;
146 };
147
148 led@5 {
149 reg = <5>;
150 color = <LED_COLOR_ID_BLUE>;
151 };
152 };
153};
154
155&pronto {
156 status = "okay";
157
158 vddmx-supply = <&pm8841_s1>;
159 vddcx-supply = <&pm8841_s2>;
160 vddpx-supply = <&pm8941_s3>;
161
162 pinctrl-names = "default";
163 pinctrl-0 = <&wcnss_pin_a>;
164
165 iris {
166 vddxo-supply = <&pm8941_l6>;
167 vddrfa-supply = <&pm8941_l11>;
168 vddpa-supply = <&pm8941_l19>;
169 vdddig-supply = <&pm8941_s3>;
170 };
171
172 smd-edge {
173 qcom,remote-pid = <4>;
174 label = "pronto";
175
176 wcnss {
177 status = "okay";
178 };
179 };
180};
181
182&remoteproc_adsp {
183 status = "okay";
184 cx-supply = <&pm8841_s2>;
185};
186
187&remoteproc_mss {
188 status = "okay";
189 cx-supply = <&pm8841_s2>;
190 mss-supply = <&pm8841_s3>;
191 mx-supply = <&pm8841_s1>;
192 pll-supply = <&pm8941_l12>;
193};
194
195&rpm_requests {
196 regulators-0 {
197 compatible = "qcom,rpm-pm8841-regulators";
198
199 pm8841_s1: s1 {
200 regulator-min-microvolt = <675000>;
201 regulator-max-microvolt = <1050000>;
202 };
203
204 pm8841_s2: s2 {
205 regulator-min-microvolt = <500000>;
206 regulator-max-microvolt = <1050000>;
207 };
208
209 pm8841_s3: s3 {
210 regulator-min-microvolt = <1050000>;
211 regulator-max-microvolt = <1050000>;
212 };
213 };
214
215 regulators-1 {
216 compatible = "qcom,rpm-pm8941-regulators";
217
218 vdd_l1_l3-supply = <&pm8941_s1>;
219 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
220 vdd_l4_l11-supply = <&pm8941_s1>;
221 vdd_l5_l7-supply = <&pm8941_s2>;
222 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
223 vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
224 vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
225 vdd_l21-supply = <&vreg_boost>;
226
227 pm8941_s1: s1 {
228 regulator-min-microvolt = <1300000>;
229 regulator-max-microvolt = <1300000>;
230 regulator-always-on;
231 regulator-boot-on;
232 };
233
234 pm8941_s2: s2 {
235 regulator-min-microvolt = <2150000>;
236 regulator-max-microvolt = <2150000>;
237 regulator-boot-on;
238 };
239
240 pm8941_s3: s3 {
241 regulator-min-microvolt = <1800000>;
242 regulator-max-microvolt = <1800000>;
243 regulator-always-on;
244 regulator-boot-on;
245 };
246
247 pm8941_l1: l1 {
248 regulator-min-microvolt = <1225000>;
249 regulator-max-microvolt = <1225000>;
250 regulator-always-on;
251 regulator-boot-on;
252 };
253
254 pm8941_l2: l2 {
255 regulator-min-microvolt = <1200000>;
256 regulator-max-microvolt = <1200000>;
257 };
258
259 pm8941_l3: l3 {
260 regulator-min-microvolt = <1225000>;
261 regulator-max-microvolt = <1225000>;
262 };
263
264 pm8941_l4: l4 {
265 regulator-min-microvolt = <1225000>;
266 regulator-max-microvolt = <1225000>;
267 };
268
269 pm8941_l5: l5 {
270 regulator-min-microvolt = <1800000>;
271 regulator-max-microvolt = <1800000>;
272 };
273
274 pm8941_l6: l6 {
275 regulator-min-microvolt = <1800000>;
276 regulator-max-microvolt = <1800000>;
277 regulator-boot-on;
278 };
279
280 pm8941_l7: l7 {
281 regulator-min-microvolt = <1800000>;
282 regulator-max-microvolt = <1800000>;
283 regulator-boot-on;
284 };
285
286 pm8941_l8: l8 {
287 regulator-min-microvolt = <1800000>;
288 regulator-max-microvolt = <1800000>;
289 };
290
291 pm8941_l9: l9 {
292 regulator-min-microvolt = <1800000>;
293 regulator-max-microvolt = <2950000>;
294 };
295
296 pm8941_l10: l10 {
297 regulator-min-microvolt = <1800000>;
298 regulator-max-microvolt = <2950000>;
299 };
300
301 pm8941_l11: l11 {
302 regulator-min-microvolt = <1225000>;
303 regulator-max-microvolt = <1350000>;
304 };
305
306 pm8941_l12: l12 {
307 regulator-min-microvolt = <1800000>;
308 regulator-max-microvolt = <1800000>;
309 regulator-always-on;
310 regulator-boot-on;
311 };
312
313 pm8941_l13: l13 {
314 regulator-min-microvolt = <1800000>;
315 regulator-max-microvolt = <2950000>;
316 regulator-boot-on;
317 };
318
319 pm8941_l14: l14 {
320 regulator-min-microvolt = <1800000>;
321 regulator-max-microvolt = <1800000>;
322 };
323
324 pm8941_l15: l15 {
325 regulator-min-microvolt = <2050000>;
326 regulator-max-microvolt = <2050000>;
327 };
328
329 pm8941_l16: l16 {
330 regulator-min-microvolt = <2700000>;
331 regulator-max-microvolt = <2700000>;
332 };
333
334 pm8941_l17: l17 {
335 regulator-min-microvolt = <2850000>;
336 regulator-max-microvolt = <2850000>;
337 };
338
339 pm8941_l18: l18 {
340 regulator-min-microvolt = <2850000>;
341 regulator-max-microvolt = <2850000>;
342 };
343
344 pm8941_l19: l19 {
345 regulator-min-microvolt = <2900000>;
346 regulator-max-microvolt = <3350000>;
347 };
348
349 pm8941_l20: l20 {
350 regulator-min-microvolt = <2950000>;
351 regulator-max-microvolt = <2950000>;
352 regulator-system-load = <200000>;
353 regulator-allow-set-load;
354 regulator-boot-on;
355 };
356
357 pm8941_l21: l21 {
358 regulator-min-microvolt = <2950000>;
359 regulator-max-microvolt = <2950000>;
360 regulator-boot-on;
361 };
362
363 pm8941_l22: l22 {
364 regulator-min-microvolt = <3000000>;
365 regulator-max-microvolt = <3300000>;
366 };
367
368 pm8941_l23: l23 {
369 regulator-min-microvolt = <3000000>;
370 regulator-max-microvolt = <3000000>;
371 };
372
373 pm8941_l24: l24 {
374 regulator-min-microvolt = <3075000>;
375 regulator-max-microvolt = <3075000>;
376 regulator-boot-on;
377 };
378 };
379};
380
381&sdhc_1 {
382 status = "okay";
383
384 vmmc-supply = <&pm8941_l20>;
385 vqmmc-supply = <&pm8941_s3>;
386
387 pinctrl-names = "default", "sleep";
388 pinctrl-0 = <&sdc1_on>;
389 pinctrl-1 = <&sdc1_off>;
390};
391
392&sdhc_2 {
393 status = "okay";
394
395 vmmc-supply = <&pm8941_l21>;
396 vqmmc-supply = <&pm8941_l13>;
397
398 pinctrl-names = "default", "sleep";
399 pinctrl-0 = <&sdc2_on>;
400 pinctrl-1 = <&sdc2_off>;
401};
402
403&smbb {
404 usb-charge-current-limit = <1500000>;
405 qcom,fast-charge-safe-current = <1500000>;
406 qcom,fast-charge-current-limit = <1500000>;
407 qcom,fast-charge-safe-voltage = <4380000>;
408 qcom,fast-charge-high-threshold-voltage = <4350000>;
409 qcom,auto-recharge-threshold-voltage = <4240000>;
410 qcom,minimum-input-voltage = <4450000>;
Tom Rini93743d22024-04-01 09:08:13 -0400411
412 status = "okay";
Tom Rini53633a82024-02-29 12:33:36 -0500413};
414
415&tlmm {
416 sdc1_on: sdc1-on-state {
417 clk-pins {
418 pins = "sdc1_clk";
419 drive-strength = <16>;
420 bias-disable;
421 };
422
423 cmd-data-pins {
424 pins = "sdc1_cmd", "sdc1_data";
425 drive-strength = <10>;
426 bias-pull-up;
427 };
428 };
429
430 sdc2_on: sdc2-on-state {
431 clk-pins {
432 pins = "sdc2_clk";
433 drive-strength = <10>;
434 bias-disable;
435 };
436
437 cmd-data-pins {
438 pins = "sdc2_cmd", "sdc2_data";
439 drive-strength = <6>;
440 bias-pull-up;
441 };
442 };
443
444 wcnss_pin_a: wcnss-pin-active-state {
445 wlan-pins {
446 pins = "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
447 function = "wlan";
448
449 drive-strength = <6>;
450 bias-pull-down;
451 };
452
453 bt-pins {
454 pins = "gpio35", "gpio43", "gpio44";
455 function = "bt";
456
457 drive-strength = <2>;
458 bias-pull-down;
459 };
460
461 fm-pins {
462 pins = "gpio41", "gpio42";
463 function = "fm";
464
465 drive-strength = <2>;
466 bias-pull-down;
467 };
468 };
469};
470
471&usb {
472 status = "okay";
473
474 phys = <&usb_hs1_phy>;
475 phy-select = <&tcsr 0xb000 0>;
476 extcon = <&smbb>, <&usb_id>;
477 vbus-supply = <&chg_otg>;
478
479 hnp-disable;
480 srp-disable;
481 adp-disable;
482};
483
484&usb_hs1_phy {
485 status = "okay";
486
487 v1p8-supply = <&pm8941_l6>;
488 v3p3-supply = <&pm8941_l24>;
489
490 extcon = <&smbb>;
491 qcom,init-seq = /bits/ 8 <0x1 0x64>;
492};