blob: f3432701945f7f35713e05945a6b116ea85ceef6 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023, Luca Weiss <luca.weiss@fairphone.com>
4 */
5
6/dts-v1/;
7
8/* PM7250B is configured to use SID8/9 */
9#define PM7250B_SID 8
10#define PM7250B_SID1 9
11
Tom Rini93743d22024-04-01 09:08:13 -040012#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
13#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
Tom Rini53633a82024-02-29 12:33:36 -050014#include <dt-bindings/leds/common.h>
15#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
16#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
17#include "sc7280.dtsi"
18#include "pm7250b.dtsi"
19#include "pm7325.dtsi"
20#include "pm8350c.dtsi" /* PM7350C */
21#include "pmk8350.dtsi" /* PMK7325 */
22
23/delete-node/ &rmtfs_mem;
24
25/ {
26 model = "Fairphone 5";
27 compatible = "fairphone,fp5", "qcom,qcm6490";
28 chassis-type = "handset";
29
30 aliases {
31 serial0 = &uart5;
32 serial1 = &uart7;
33 };
34
35 chosen {
36 #address-cells = <2>;
37 #size-cells = <2>;
38 ranges;
39
40 framebuffer0: framebuffer@a000000 {
41 compatible = "simple-framebuffer";
42 reg = <0x0 0xe1000000 0x0 (2700 * 1224 * 4)>;
43 width = <1224>;
44 height = <2700>;
45 stride = <(1224 * 4)>;
46 format = "a8r8g8b8";
47 clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
48 };
49 };
50
51 gpio-keys {
52 compatible = "gpio-keys";
53
54 pinctrl-0 = <&volume_down_default>, <&hall_sensor_default>;
55 pinctrl-names = "default";
56
57 key-volume-up {
58 label = "Volume up";
59 gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
60 linux,code = <KEY_VOLUMEUP>;
61 };
62
63 /* Powered by the always-on vreg_l8c */
64 event-hall-sensor {
65 label = "Hall Effect Sensor";
66 gpios = <&tlmm 155 GPIO_ACTIVE_LOW>;
67 linux,input-type = <EV_SW>;
68 linux,code = <SW_LID>;
69 linux,can-disable;
70 wakeup-source;
71 };
72 };
73
Tom Rini6bb92fc2024-05-20 09:54:58 -060074 pmic-glink {
75 compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
76
77 #address-cells = <1>;
78 #size-cells = <0>;
79
Tom Rini762f85b2024-07-20 11:15:10 -060080 orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
81
Tom Rini6bb92fc2024-05-20 09:54:58 -060082 connector@0 {
83 compatible = "usb-c-connector";
84 reg = <0>;
85 power-role = "dual";
86 data-role = "dual";
87
88 ports {
89 #address-cells = <1>;
90 #size-cells = <0>;
91
92 port@0 {
93 reg = <0>;
94
95 pmic_glink_hs_in: endpoint {
96 remote-endpoint = <&usb_1_dwc3_hs>;
97 };
98 };
99
100 port@1 {
101 reg = <1>;
102
103 pmic_glink_ss_in: endpoint {
104 remote-endpoint = <&usb_1_dwc3_ss>;
105 };
106 };
107 };
108 };
109 };
110
Tom Rini53633a82024-02-29 12:33:36 -0500111 reserved-memory {
112 cont_splash_mem: cont-splash@e1000000 {
113 reg = <0x0 0xe1000000 0x0 0x2300000>;
114 no-map;
115 };
116
Tom Rini53633a82024-02-29 12:33:36 -0500117 cdsp_mem: cdsp@88f00000 {
118 reg = <0x0 0x88f00000 0x0 0x1e00000>;
119 no-map;
120 };
121
Tom Rini6bb92fc2024-05-20 09:54:58 -0600122 removed_mem: removed@c0000000 {
123 reg = <0x0 0xc0000000 0x0 0x5100000>;
124 no-map;
125 };
126
Tom Rini53633a82024-02-29 12:33:36 -0500127 rmtfs_mem: memory@f8500000 {
128 compatible = "qcom,rmtfs-mem";
129 reg = <0x0 0xf8500000 0x0 0x600000>;
130 no-map;
131
132 qcom,client-id = <1>;
133 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>;
134 };
135 };
136
137 ois_avdd0_1p8: regulator-ois-avdd0-1p8 {
138 compatible = "regulator-fixed";
139 regulator-name = "OIS_AVDD0_1P8";
140 regulator-min-microvolt = <1800000>;
141 regulator-max-microvolt = <1800000>;
142 gpio = <&tlmm 157 GPIO_ACTIVE_HIGH>;
143 enable-active-high;
144 vin-supply = <&vreg_bob>;
145 };
146
147 ois_dvdd_1p1: regulator-ois-dvdd-1p1 {
148 compatible = "regulator-fixed";
149 regulator-name = "OIS_DVDD_1P1";
150 regulator-min-microvolt = <1100000>;
151 regulator-max-microvolt = <1100000>;
152 gpio = <&tlmm 97 GPIO_ACTIVE_HIGH>;
153 enable-active-high;
154 vin-supply = <&vreg_s8b>;
155 };
156
157 afvdd_2p8: regulator-afvdd-2p8 {
158 compatible = "regulator-fixed";
159 regulator-name = "AFVDD_2P8";
160 regulator-min-microvolt = <2800000>;
161 regulator-max-microvolt = <2800000>;
162 gpio = <&tlmm 68 GPIO_ACTIVE_HIGH>;
163 enable-active-high;
164 vin-supply = <&vreg_bob>;
165 };
Tom Rini93743d22024-04-01 09:08:13 -0400166
167 thermal-zones {
168 camera-thermal {
169 polling-delay-passive = <0>;
170 polling-delay = <0>;
171 thermal-sensors = <&pmk8350_adc_tm 2>;
172
173 trips {
174 active-config0 {
175 temperature = <125000>;
176 hysteresis = <1000>;
177 type = "passive";
178 };
179 };
180 };
181
182 chg-skin-thermal {
183 polling-delay-passive = <0>;
184 polling-delay = <0>;
185 thermal-sensors = <&pm7250b_adc_tm 0>;
186
187 trips {
188 active-config0 {
189 temperature = <125000>;
190 hysteresis = <1000>;
191 type = "passive";
192 };
193 };
194 };
195
196 conn-thermal {
197 polling-delay-passive = <0>;
198 polling-delay = <0>;
199 thermal-sensors = <&pm7250b_adc_tm 1>;
200
201 trips {
202 active-config0 {
203 temperature = <125000>;
204 hysteresis = <1000>;
205 type = "passive";
206 };
207 };
208 };
209
210 quiet-thermal {
211 polling-delay-passive = <0>;
212 polling-delay = <0>;
213 thermal-sensors = <&pmk8350_adc_tm 1>;
214
215 trips {
216 active-config0 {
217 temperature = <125000>;
218 hysteresis = <1000>;
219 type = "passive";
220 };
221 };
222 };
223
224 rear-cam-thermal {
225 polling-delay-passive = <0>;
226 polling-delay = <0>;
227 thermal-sensors = <&pmk8350_adc_tm 4>;
228
229 trips {
230 active-config0 {
231 temperature = <125000>;
232 hysteresis = <1000>;
233 type = "passive";
234 };
235 };
236 };
237
238 sdm-skin-thermal {
239 polling-delay-passive = <0>;
240 polling-delay = <0>;
241 thermal-sensors = <&pmk8350_adc_tm 3>;
242
243 trips {
244 active-config0 {
245 temperature = <125000>;
246 hysteresis = <1000>;
247 type = "passive";
248 };
249 };
250 };
251
252 xo-thermal {
253 polling-delay-passive = <0>;
254 polling-delay = <0>;
255 thermal-sensors = <&pmk8350_adc_tm 0>;
256
257 trips {
258 active-config0 {
259 temperature = <125000>;
260 hysteresis = <1000>;
261 type = "passive";
262 };
263 };
264 };
265 };
Tom Rini53633a82024-02-29 12:33:36 -0500266};
267
268&apps_rsc {
269 regulators-0 {
270 compatible = "qcom,pm7325-rpmh-regulators";
271 qcom,pmic-id = "b";
272
273 vreg_s1b: smps1 {
274 regulator-min-microvolt = <1840000>;
275 regulator-max-microvolt = <2040000>;
276 };
277
278 vreg_s7b: smps7 {
279 regulator-min-microvolt = <535000>;
280 regulator-max-microvolt = <1120000>;
281 };
282
283 vreg_s8b: smps8 {
284 regulator-min-microvolt = <1200000>;
285 regulator-max-microvolt = <1500000>;
286 regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
287 };
288
289 vreg_l1b: ldo1 {
290 regulator-min-microvolt = <825000>;
291 regulator-max-microvolt = <925000>;
292 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
293 };
294
295 vreg_l2b: ldo2 {
296 regulator-min-microvolt = <2700000>;
297 regulator-max-microvolt = <3544000>;
298 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
299 };
300
301 vreg_l3b: ldo3 {
302 regulator-min-microvolt = <312000>;
303 regulator-max-microvolt = <910000>;
304 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
305 };
306
307 vreg_l6b: ldo6 {
308 regulator-min-microvolt = <1140000>;
309 regulator-max-microvolt = <1260000>;
310 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
311 };
312
313 vreg_l7b: ldo7 {
Tom Rini93743d22024-04-01 09:08:13 -0400314 /* Constrained for UFS VCC, at least until UFS driver scales voltage */
315 regulator-min-microvolt = <2952000>;
316 regulator-max-microvolt = <2952000>;
Tom Rini53633a82024-02-29 12:33:36 -0500317 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
318 };
319
320 vreg_l8b: ldo8 {
321 regulator-min-microvolt = <870000>;
322 regulator-max-microvolt = <970000>;
323 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
324 };
325
326 vreg_l9b: ldo9 {
327 regulator-min-microvolt = <1200000>;
328 regulator-max-microvolt = <1304000>;
329 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
330 };
331
332 vreg_l11b: ldo11 {
333 regulator-min-microvolt = <1504000>;
334 regulator-max-microvolt = <2000000>;
335 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
336 };
337
338 vreg_l12b: ldo12 {
339 regulator-min-microvolt = <751000>;
340 regulator-max-microvolt = <824000>;
341 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
342 };
343
344 vreg_l13b: ldo13 {
345 regulator-min-microvolt = <530000>;
346 regulator-max-microvolt = <824000>;
347 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
348 };
349
350 vreg_l14b: ldo14 {
351 regulator-min-microvolt = <1080000>;
352 regulator-max-microvolt = <1304000>;
353 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
354 };
355
356 vreg_l15b: ldo15 {
357 regulator-min-microvolt = <765000>;
358 regulator-max-microvolt = <1020000>;
359 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
360 };
361
362 vreg_l16b: ldo16 {
363 regulator-min-microvolt = <1100000>;
364 regulator-max-microvolt = <1300000>;
365 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
366 };
367
368 vreg_l17b: ldo17 {
369 regulator-min-microvolt = <1700000>;
370 regulator-max-microvolt = <1900000>;
371 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
372 };
373
374 vreg_l18b: ldo18 {
375 regulator-min-microvolt = <1800000>;
376 regulator-max-microvolt = <2000000>;
377 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
378 };
379
380 vreg_l19b: ldo19 {
381 regulator-min-microvolt = <1800000>;
382 regulator-max-microvolt = <2000000>;
383 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
384 };
385 };
386
387 regulators-1 {
388 compatible = "qcom,pm8350c-rpmh-regulators";
389 qcom,pmic-id = "c";
390
391 vreg_s1c: smps1 {
392 regulator-min-microvolt = <2190000>;
393 regulator-max-microvolt = <2210000>;
394 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
395 };
396
397 vreg_s9c: smps9 {
398 regulator-min-microvolt = <1010000>;
399 regulator-max-microvolt = <1170000>;
400 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
401 };
402
403 vreg_l1c: ldo1 {
404 regulator-min-microvolt = <1800000>;
405 regulator-max-microvolt = <1980000>;
406 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
407 };
408
409 vreg_l2c: ldo2 {
410 regulator-min-microvolt = <1800000>;
411 regulator-max-microvolt = <1950000>;
412 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
413 };
414
415 vreg_l3c: ldo3 {
416 regulator-min-microvolt = <3000000>;
417 regulator-max-microvolt = <3400000>;
418 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
419 };
420
421 vreg_l4c: ldo4 {
422 regulator-min-microvolt = <1620000>;
423 regulator-max-microvolt = <3300000>;
424 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
425 };
426
427 vreg_l5c: ldo5 {
428 regulator-min-microvolt = <1620000>;
429 regulator-max-microvolt = <3300000>;
430 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
431 };
432
433 vreg_l6c: ldo6 {
434 regulator-min-microvolt = <1650000>;
435 regulator-max-microvolt = <3544000>;
436 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
437 };
438
439 vreg_l7c: ldo7 {
440 regulator-min-microvolt = <3000000>;
441 regulator-max-microvolt = <3544000>;
442 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
443 };
444
445 vreg_l8c: ldo8 {
446 regulator-min-microvolt = <1620000>;
447 regulator-max-microvolt = <2000000>;
448 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
449 /* Hall sensor VDD */
450 regulator-always-on;
451 };
452
453 vreg_l9c: ldo9 {
454 regulator-min-microvolt = <2700000>;
455 regulator-max-microvolt = <3544000>;
456 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
457 };
458
459 vreg_l10c: ldo10 {
460 regulator-min-microvolt = <720000>;
461 regulator-max-microvolt = <1050000>;
462 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
463 };
464
465 vreg_l11c: ldo11 {
466 regulator-min-microvolt = <2800000>;
467 regulator-max-microvolt = <3544000>;
468 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
469 };
470
471 vreg_l12c: ldo12 {
472 regulator-min-microvolt = <1650000>;
473 regulator-max-microvolt = <2000000>;
474 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
475 };
476
477 vreg_l13c: ldo13 {
478 regulator-min-microvolt = <2700000>;
479 regulator-max-microvolt = <3544000>;
480 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
481 };
482
483 vreg_bob: bob {
484 regulator-min-microvolt = <3008000>;
485 regulator-max-microvolt = <3960000>;
486 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
487 };
488 };
489};
490
491&dispcc {
492 /* Disable for now so simple-framebuffer continues working */
493 status = "disabled";
494};
495
496&gcc {
497 protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
498 <GCC_EDP_CLKREF_EN>,
499 <GCC_MSS_CFG_AHB_CLK>,
500 <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
501 <GCC_MSS_OFFLINE_AXI_CLK>,
502 <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
503 <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
504 <GCC_MSS_SNOC_AXI_CLK>,
505 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
506 <GCC_QSPI_CORE_CLK>,
507 <GCC_QSPI_CORE_CLK_SRC>,
508 <GCC_SEC_CTRL_CLK_SRC>,
509 <GCC_WPSS_AHB_BDG_MST_CLK>,
510 <GCC_WPSS_AHB_CLK>,
511 <GCC_WPSS_RSCP_CLK>;
512};
513
514&gpi_dma0 {
515 status = "okay";
516};
517
518&gpi_dma1 {
519 status = "okay";
520};
521
522&i2c1 {
523 status = "okay";
524
525 /* PM8008 PMIC @ 8 and 9 */
526 /* Pixelworks @ 26 */
527 /* FSA4480 USB audio switch @ 42 */
528 /* AW86927FCR haptics @ 5a */
529};
530
531&i2c2 {
532 status = "okay";
533
534 /* AW88261FCR amplifier @ 34 */
535 /* AW88261FCR amplifier @ 35 */
536};
537
538&i2c4 {
539 status = "okay";
540
541 /* PTN36502 USB redriver @ 1a */
542};
543
544&i2c9 {
545 status = "okay";
546
547 /* ST21NFC NFC @ 28 */
548 /* VL53L3 ToF @ 29 */
549};
550
551&ipa {
552 qcom,gsi-loader = "self";
553 memory-region = <&ipa_fw_mem>;
554 firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mdt";
555 status = "okay";
Tom Rini93743d22024-04-01 09:08:13 -0400556};
557
558&pm7250b_adc {
559 channel@4d {
560 reg = <ADC5_AMUX_THM1_100K_PU>;
561 qcom,ratiometric;
562 qcom,hw-settle-time = <200>;
563 qcom,pre-scaling = <1 1>;
564 label = "charger_skin_therm";
565 };
566
567 channel@4f {
568 reg = <ADC5_AMUX_THM3_100K_PU>;
569 qcom,ratiometric;
570 qcom,hw-settle-time = <200>;
571 qcom,pre-scaling = <1 1>;
572 label = "conn_therm";
573 };
574};
575
576&pm7250b_adc_tm {
577 status = "okay";
578
579 charger-skin-therm@0 {
580 reg = <0>;
581 io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
582 qcom,ratiometric;
583 qcom,hw-settle-time-us = <200>;
584 };
585
586 conn-therm@1 {
587 reg = <1>;
588 io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
589 qcom,ratiometric;
590 qcom,hw-settle-time-us = <200>;
591 };
Tom Rini53633a82024-02-29 12:33:36 -0500592};
593
594&pm7325_gpios {
595 volume_down_default: volume-down-default-state {
596 pins = "gpio6";
597 function = PMIC_GPIO_FUNC_NORMAL;
598 power-source = <1>;
599 bias-pull-up;
600 input-enable;
601 };
602};
603
604&pm8350c_flash {
605 status = "okay";
606
607 led-0 {
608 function = LED_FUNCTION_FLASH;
609 color = <LED_COLOR_ID_WHITE>;
610 led-sources = <1>, <4>;
611 led-max-microamp = <500000>;
612 flash-max-microamp = <1500000>;
613 flash-max-timeout-us = <1280000>;
614 };
615};
616
Tom Rini93743d22024-04-01 09:08:13 -0400617&pmk8350_adc_tm {
618 status = "okay";
619
620 xo-therm@0 {
621 reg = <0>;
622 io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
623 qcom,ratiometric;
624 qcom,hw-settle-time-us = <200>;
625 };
626
627 quiet-therm@1 {
628 reg = <1>;
629 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
630 qcom,ratiometric;
631 qcom,hw-settle-time-us = <200>;
632 };
633
634 cam-flash-therm@2 {
635 reg = <2>;
636 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>;
637 qcom,ratiometric;
638 qcom,hw-settle-time-us = <200>;
639 };
640
641 sdm-skin-therm@3 {
642 reg = <3>;
643 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
644 qcom,ratiometric;
645 qcom,hw-settle-time-us = <200>;
646 };
647
648 wide-rfc-therm@4 {
649 reg = <4>;
650 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>;
651 qcom,ratiometric;
652 qcom,hw-settle-time-us = <200>;
653 };
654};
655
Tom Rini53633a82024-02-29 12:33:36 -0500656&pmk8350_rtc {
657 status = "okay";
Tom Rini93743d22024-04-01 09:08:13 -0400658};
659
660&pmk8350_vadc {
661 status = "okay";
662
663 channel@44 {
664 reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
665 qcom,ratiometric;
666 qcom,hw-settle-time = <200>;
667 qcom,pre-scaling = <1 1>;
668 label = "pmk8350_xo_therm";
669 };
670
671 channel@144 {
672 reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
673 qcom,ratiometric;
674 qcom,hw-settle-time = <200>;
675 qcom,pre-scaling = <1 1>;
676 label = "pm7325_quiet_therm";
677 };
678
679 channel@145 {
680 reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
681 qcom,ratiometric;
682 qcom,hw-settle-time = <200>;
683 qcom,pre-scaling = <1 1>;
684 label = "pm7325_cam_flash_therm";
685 };
686
687 channel@146 {
688 reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
689 qcom,ratiometric;
690 qcom,hw-settle-time = <200>;
691 qcom,pre-scaling = <1 1>;
692 label = "pm7325_sdm_skin_therm";
693 };
694
695 channel@147 {
696 reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
697 qcom,ratiometric;
698 qcom,hw-settle-time = <200>;
699 qcom,pre-scaling = <1 1>;
700 label = "pm7325_wide_rfc_therm";
701 };
Tom Rini53633a82024-02-29 12:33:36 -0500702};
703
704&pon_pwrkey {
705 status = "okay";
706};
707
708&pon_resin {
709 linux,code = <KEY_VOLUMEDOWN>;
710 status = "okay";
711};
712
713&qup_spi13_cs {
714 drive-strength = <6>;
715 bias-disable;
716};
717
718&qup_spi13_data_clk {
719 drive-strength = <6>;
720 bias-disable;
721};
722
723&qup_uart5_rx {
724 drive-strength = <2>;
725 bias-disable;
726};
727
728&qup_uart5_tx {
729 drive-strength = <2>;
730 bias-disable;
731};
732
733&qupv3_id_0 {
734 status = "okay";
735};
736
737&qupv3_id_1 {
738 status = "okay";
739};
740
Tom Rini93743d22024-04-01 09:08:13 -0400741&remoteproc_adsp {
742 firmware-name = "qcom/qcm6490/fairphone5/adsp.mbn";
743 status = "okay";
744};
745
746&remoteproc_cdsp {
747 firmware-name = "qcom/qcm6490/fairphone5/cdsp.mbn";
748 status = "okay";
749};
750
751&remoteproc_mpss {
752 firmware-name = "qcom/qcm6490/fairphone5/modem.mbn";
753 status = "okay";
754};
755
756&remoteproc_wpss {
757 firmware-name = "qcom/qcm6490/fairphone5/wpss.mbn";
758 status = "okay";
759};
760
Tom Rini53633a82024-02-29 12:33:36 -0500761&sdc2_clk {
762 drive-strength = <16>;
763 bias-disable;
764};
765
766&sdc2_cmd {
767 drive-strength = <10>;
768 bias-pull-up;
769};
770
771&sdc2_data {
772 drive-strength = <10>;
773 bias-pull-up;
774};
775
776&sdhc_2 {
777 vmmc-supply = <&vreg_l9c>;
778 vqmmc-supply = <&vreg_l6c>;
779
780 pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
781 pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
782
783 status = "okay";
784};
785
786&spi13 {
787 status = "okay";
788
789 /* Goodix touchscreen @ 0 */
790};
791
792&tlmm {
793 /*
794 * 32-33: SMB1394 (SPMI)
795 * 56-59: fingerprint reader (SPI)
796 */
797 gpio-reserved-ranges = <32 2>, <56 4>;
798
799 bluetooth_enable_default: bluetooth-enable-default-state {
800 pins = "gpio85";
801 function = "gpio";
802 output-low;
803 bias-disable;
804 };
805
806 hall_sensor_default: hall-sensor-default-state {
807 pins = "gpio155";
808 function = "gpio";
809 drive-strength = <2>;
810 bias-pull-up;
811 };
812
813 qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
814 pins = "gpio28";
815 function = "gpio";
816 /*
817 * Configure a bias-bus-hold on CTS to lower power
818 * usage when Bluetooth is turned off. Bus hold will
819 * maintain a low power state regardless of whether
820 * the Bluetooth module drives the pin in either
821 * direction or leaves the pin fully unpowered.
822 */
823 bias-bus-hold;
824 };
825
826 qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
827 pins = "gpio29";
828 function = "gpio";
829 /*
830 * Configure pull-down on RTS. As RTS is active low
831 * signal, pull it low to indicate the BT SoC that it
832 * can wakeup the system anytime from suspend state by
833 * pulling RX low (by sending wakeup bytes).
834 */
835 bias-pull-down;
836 };
837
838 qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
839 pins = "gpio30";
840 function = "gpio";
841 /*
842 * Configure pull-up on TX when it isn't actively driven
843 * to prevent BT SoC from receiving garbage during sleep.
844 */
845 bias-pull-up;
846 };
847
848 qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
849 pins = "gpio31";
850 function = "gpio";
851 /*
852 * Configure a pull-up on RX. This is needed to avoid
853 * garbage data when the TX pin of the Bluetooth module
854 * is floating which may cause spurious wakeups.
855 */
856 bias-pull-up;
857 };
858
859 sw_ctrl_default: sw-ctrl-default-state {
860 pins = "gpio86";
861 function = "gpio";
862 bias-pull-down;
863 };
864};
865
866&uart5 {
867 compatible = "qcom,geni-debug-uart";
868 status = "okay";
869};
870
871&uart7 {
872 /delete-property/interrupts;
873 interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
874 <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
875
876 pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
877 pinctrl-names = "default", "sleep";
878
879 status = "okay";
880
881 bluetooth: bluetooth {
882 compatible = "qcom,wcn6750-bt";
883
884 pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>;
885 pinctrl-names = "default";
886
887 enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
888 swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
889
890 vddio-supply = <&vreg_l19b>;
891 vddaon-supply = <&vreg_s7b>;
892 vddbtcxmx-supply = <&vreg_s7b>;
893 vddrfacmn-supply = <&vreg_s7b>;
894 vddrfa0p8-supply = <&vreg_s7b>;
895 vddrfa1p7-supply = <&vreg_s1b>;
896 vddrfa1p2-supply = <&vreg_s8b>;
897 vddrfa2p2-supply = <&vreg_s1c>;
898 vddasd-supply = <&vreg_l11c>;
899
900 max-speed = <3200000>;
901 };
902};
903
Tom Rini93743d22024-04-01 09:08:13 -0400904&ufs_mem_hc {
905 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
906
907 vcc-supply = <&vreg_l7b>;
908 vcc-max-microamp = <800000>;
909 /*
910 * Technically l9b enables an eLDO (supplied by s1b) which then powers
911 * VCCQ2 of the UFS.
912 */
913 vccq-supply = <&vreg_l9b>;
914 vccq-max-microamp = <900000>;
915
916 status = "okay";
917};
918
919&ufs_mem_phy {
920 vdda-phy-supply = <&vreg_l10c>;
921 vdda-pll-supply = <&vreg_l6b>;
922
923 status = "okay";
924};
925
Tom Rini53633a82024-02-29 12:33:36 -0500926&usb_1 {
927 status = "okay";
928};
929
930&usb_1_dwc3 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600931 dr_mode = "otg";
932 usb-role-switch;
933};
934
935&usb_1_dwc3_hs {
936 remote-endpoint = <&pmic_glink_hs_in>;
Tom Rini53633a82024-02-29 12:33:36 -0500937};
938
Tom Rini6bb92fc2024-05-20 09:54:58 -0600939&usb_1_dwc3_ss {
940 remote-endpoint = <&pmic_glink_ss_in>;
941};
942
Tom Rini53633a82024-02-29 12:33:36 -0500943&usb_1_hsphy {
944 vdda-pll-supply = <&vreg_l10c>;
945 vdda18-supply = <&vreg_l1c>;
946 vdda33-supply = <&vreg_l2b>;
947
948 qcom,hs-crossover-voltage-microvolt = <28000>;
949 qcom,hs-output-impedance-micro-ohms = <2600000>;
950 qcom,hs-rise-fall-time-bp = <5430>;
951 qcom,hs-disconnect-bp = <1743>;
952 qcom,hs-amplitude-bp = <2430>;
953
954 qcom,pre-emphasis-amplitude-bp = <20000>;
955 qcom,pre-emphasis-duration-bp = <20000>;
956
957 qcom,squelch-detector-bp = <(-2090)>;
958
959 status = "okay";
960};
961
962&usb_1_qmpphy {
963 vdda-phy-supply = <&vreg_l6b>;
964 vdda-pll-supply = <&vreg_l1b>;
965
Tom Rini6bb92fc2024-05-20 09:54:58 -0600966 status = "okay";
967};
968
969&venus {
970 firmware-name = "qcom/qcm6490/fairphone5/venus.mbn";
Tom Rini53633a82024-02-29 12:33:36 -0500971 status = "okay";
972};
Tom Rini93743d22024-04-01 09:08:13 -0400973
974&wifi {
975 qcom,ath11k-calibration-variant = "Fairphone_5";
976 status = "okay";
977};