xref: /linux/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts (revision 24168c5e6dfbdd5b414f048f47f75d64533296ca)
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	pmic-glink {
75		compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
76
77		#address-cells = <1>;
78		#size-cells = <0>;
79
80		orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
81
82		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
111	reserved-memory {
112		cont_splash_mem: cont-splash@e1000000 {
113			reg = <0x0 0xe1000000 0x0 0x2300000>;
114			no-map;
115		};
116
117		cdsp_mem: cdsp@88f00000 {
118			reg = <0x0 0x88f00000 0x0 0x1e00000>;
119			no-map;
120		};
121
122		removed_mem: removed@c0000000 {
123			reg = <0x0 0xc0000000 0x0 0x5100000>;
124			no-map;
125		};
126
127		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	};
166
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	};
266};
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 {
314			/* Constrained for UFS VCC, at least until UFS driver scales voltage */
315			regulator-min-microvolt = <2952000>;
316			regulator-max-microvolt = <2952000>;
317			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";
556};
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	};
592};
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
617&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
656&pmk8350_rtc {
657	status = "okay";
658};
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	};
702};
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
741&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
761&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
904&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
926&usb_1 {
927	status = "okay";
928};
929
930&usb_1_dwc3 {
931	dr_mode = "otg";
932	usb-role-switch;
933};
934
935&usb_1_dwc3_hs {
936	remote-endpoint = <&pmic_glink_hs_in>;
937};
938
939&usb_1_dwc3_ss {
940	remote-endpoint = <&pmic_glink_ss_in>;
941};
942
943&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
966	status = "okay";
967};
968
969&venus {
970	firmware-name = "qcom/qcm6490/fairphone5/venus.mbn";
971	status = "okay";
972};
973
974&wifi {
975	qcom,ath11k-calibration-variant = "Fairphone_5";
976	status = "okay";
977};
978