1// 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
12#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
13#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
14#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
80		cdsp_mem: cdsp@88f00000 {
81			reg = <0x0 0x88f00000 0x0 0x1e00000>;
82			no-map;
83		};
84
85		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	};
124
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	};
224};
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 {
272			/* Constrained for UFS VCC, at least until UFS driver scales voltage */
273			regulator-min-microvolt = <2952000>;
274			regulator-max-microvolt = <2952000>;
275			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";
514};
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	};
550};
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
575&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
614&pmk8350_rtc {
615	status = "okay";
616};
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	};
660};
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
699&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
719&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
862&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
884&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};
917
918&wifi {
919	qcom,ath11k-calibration-variant = "Fairphone_5";
920	status = "okay";
921};
922