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