xref: /linux/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts (revision fcc79e1714e8c2b8e216dc3149812edd37884eef)
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
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
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
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		mem-thermal {
211			polling-delay-passive = <0>;
212
213			thermal-sensors = <&pm7250b_adc_tm 2>;
214
215			trips {
216				active-config0 {
217					temperature = <125000>;
218					hysteresis = <1000>;
219					type = "passive";
220				};
221			};
222		};
223
224		pm8008-thermal {
225			polling-delay-passive = <100>;
226			thermal-sensors = <&pm8008>;
227
228			trips {
229				trip0 {
230					temperature = <95000>;
231					hysteresis = <0>;
232					type = "passive";
233				};
234
235				trip1 {
236					temperature = <115000>;
237					hysteresis = <0>;
238					type = "critical";
239				};
240			};
241		};
242
243		quiet-thermal {
244			polling-delay-passive = <0>;
245
246			thermal-sensors = <&pmk8350_adc_tm 1>;
247
248			trips {
249				active-config0 {
250					temperature = <125000>;
251					hysteresis = <1000>;
252					type = "passive";
253				};
254			};
255		};
256
257		rear-cam-thermal {
258			polling-delay-passive = <0>;
259
260			thermal-sensors = <&pmk8350_adc_tm 4>;
261
262			trips {
263				active-config0 {
264					temperature = <125000>;
265					hysteresis = <1000>;
266					type = "passive";
267				};
268			};
269		};
270
271		sdm-skin-thermal {
272			polling-delay-passive = <0>;
273
274			thermal-sensors = <&pmk8350_adc_tm 3>;
275
276			trips {
277				active-config0 {
278					temperature = <125000>;
279					hysteresis = <1000>;
280					type = "passive";
281				};
282			};
283		};
284
285		xo-thermal {
286			polling-delay-passive = <0>;
287
288			thermal-sensors = <&pmk8350_adc_tm 0>;
289
290			trips {
291				active-config0 {
292					temperature = <125000>;
293					hysteresis = <1000>;
294					type = "passive";
295				};
296			};
297		};
298	};
299};
300
301&apps_rsc {
302	regulators-0 {
303		compatible = "qcom,pm7325-rpmh-regulators";
304		qcom,pmic-id = "b";
305
306		vreg_s1b: smps1 {
307			regulator-name = "vreg_s1b";
308			regulator-min-microvolt = <1840000>;
309			regulator-max-microvolt = <2040000>;
310		};
311
312		vreg_s7b: smps7 {
313			regulator-name = "vreg_s7b";
314			regulator-min-microvolt = <535000>;
315			regulator-max-microvolt = <1120000>;
316		};
317
318		vreg_s8b: smps8 {
319			regulator-name = "vreg_s8b";
320			regulator-min-microvolt = <1200000>;
321			regulator-max-microvolt = <1500000>;
322			regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
323		};
324
325		vreg_l1b: ldo1 {
326			regulator-name = "vreg_l1b";
327			regulator-min-microvolt = <825000>;
328			regulator-max-microvolt = <925000>;
329			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
330		};
331
332		vreg_l2b: ldo2 {
333			regulator-name = "vreg_l2b";
334			regulator-min-microvolt = <2700000>;
335			regulator-max-microvolt = <3544000>;
336			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
337		};
338
339		vreg_l3b: ldo3 {
340			regulator-name = "vreg_l3b";
341			regulator-min-microvolt = <312000>;
342			regulator-max-microvolt = <910000>;
343			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
344		};
345
346		vreg_l6b: ldo6 {
347			regulator-name = "vreg_l6b";
348			regulator-min-microvolt = <1140000>;
349			regulator-max-microvolt = <1260000>;
350			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
351		};
352
353		vreg_l7b: ldo7 {
354			regulator-name = "vreg_l7b";
355			/* Constrained for UFS VCC, at least until UFS driver scales voltage */
356			regulator-min-microvolt = <2952000>;
357			regulator-max-microvolt = <2952000>;
358			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
359		};
360
361		vreg_l8b: ldo8 {
362			regulator-name = "vreg_l8b";
363			regulator-min-microvolt = <870000>;
364			regulator-max-microvolt = <970000>;
365			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
366		};
367
368		vreg_l9b: ldo9 {
369			regulator-name = "vreg_l9b";
370			regulator-min-microvolt = <1200000>;
371			regulator-max-microvolt = <1304000>;
372			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
373		};
374
375		vreg_l11b: ldo11 {
376			regulator-name = "vreg_l11b";
377			regulator-min-microvolt = <1504000>;
378			regulator-max-microvolt = <2000000>;
379			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
380		};
381
382		vreg_l12b: ldo12 {
383			regulator-name = "vreg_l12b";
384			regulator-min-microvolt = <751000>;
385			regulator-max-microvolt = <824000>;
386			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
387		};
388
389		vreg_l13b: ldo13 {
390			regulator-name = "vreg_l13b";
391			regulator-min-microvolt = <530000>;
392			regulator-max-microvolt = <824000>;
393			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
394		};
395
396		vreg_l14b: ldo14 {
397			regulator-name = "vreg_l14b";
398			regulator-min-microvolt = <1080000>;
399			regulator-max-microvolt = <1304000>;
400			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
401		};
402
403		vreg_l15b: ldo15 {
404			regulator-name = "vreg_l15b";
405			regulator-min-microvolt = <765000>;
406			regulator-max-microvolt = <1020000>;
407			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
408		};
409
410		vreg_l16b: ldo16 {
411			regulator-name = "vreg_l16b";
412			regulator-min-microvolt = <1100000>;
413			regulator-max-microvolt = <1300000>;
414			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
415		};
416
417		vreg_l17b: ldo17 {
418			regulator-name = "vreg_l17b";
419			regulator-min-microvolt = <1700000>;
420			regulator-max-microvolt = <1900000>;
421			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
422		};
423
424		vreg_l18b: ldo18 {
425			regulator-name = "vreg_l18b";
426			regulator-min-microvolt = <1800000>;
427			regulator-max-microvolt = <2000000>;
428			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
429		};
430
431		vreg_l19b: ldo19 {
432			regulator-name = "vreg_l19b";
433			regulator-min-microvolt = <1800000>;
434			regulator-max-microvolt = <2000000>;
435			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
436		};
437	};
438
439	regulators-1 {
440		compatible = "qcom,pm8350c-rpmh-regulators";
441		qcom,pmic-id = "c";
442
443		vreg_s1c: smps1 {
444			regulator-name = "vreg_s1c";
445			regulator-min-microvolt = <2190000>;
446			regulator-max-microvolt = <2210000>;
447			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
448		};
449
450		vreg_s9c: smps9 {
451			regulator-name = "vreg_s9c";
452			regulator-min-microvolt = <1010000>;
453			regulator-max-microvolt = <1170000>;
454			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
455		};
456
457		vreg_l1c: ldo1 {
458			regulator-name = "vreg_l1c";
459			regulator-min-microvolt = <1800000>;
460			regulator-max-microvolt = <1980000>;
461			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
462		};
463
464		vreg_l2c: ldo2 {
465			regulator-name = "vreg_l2c";
466			regulator-min-microvolt = <1800000>;
467			regulator-max-microvolt = <1950000>;
468			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
469		};
470
471		vreg_l3c: ldo3 {
472			regulator-name = "vreg_l3c";
473			regulator-min-microvolt = <3000000>;
474			regulator-max-microvolt = <3400000>;
475			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
476		};
477
478		vreg_l4c: ldo4 {
479			regulator-name = "vreg_l4c";
480			regulator-min-microvolt = <1620000>;
481			regulator-max-microvolt = <3300000>;
482			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
483		};
484
485		vreg_l5c: ldo5 {
486			regulator-name = "vreg_l5c";
487			regulator-min-microvolt = <1620000>;
488			regulator-max-microvolt = <3300000>;
489			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
490		};
491
492		vreg_l6c: ldo6 {
493			regulator-name = "vreg_l6c";
494			regulator-min-microvolt = <1650000>;
495			regulator-max-microvolt = <3544000>;
496			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
497		};
498
499		vreg_l7c: ldo7 {
500			regulator-name = "vreg_l7c";
501			regulator-min-microvolt = <3000000>;
502			regulator-max-microvolt = <3544000>;
503			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
504		};
505
506		vreg_l8c: ldo8 {
507			regulator-name = "vreg_l8c";
508			regulator-min-microvolt = <1620000>;
509			regulator-max-microvolt = <2000000>;
510			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
511			/* Hall sensor VDD */
512			regulator-always-on;
513		};
514
515		vreg_l9c: ldo9 {
516			regulator-name = "vreg_l9c";
517			regulator-min-microvolt = <2700000>;
518			regulator-max-microvolt = <3544000>;
519			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
520		};
521
522		vreg_l10c: ldo10 {
523			regulator-name = "vreg_l10c";
524			regulator-min-microvolt = <720000>;
525			regulator-max-microvolt = <1050000>;
526			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
527		};
528
529		vreg_l11c: ldo11 {
530			regulator-name = "vreg_l11c";
531			regulator-min-microvolt = <2800000>;
532			regulator-max-microvolt = <3544000>;
533			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
534		};
535
536		vreg_l12c: ldo12 {
537			regulator-name = "vreg_l12c";
538			regulator-min-microvolt = <1650000>;
539			regulator-max-microvolt = <2000000>;
540			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
541		};
542
543		vreg_l13c: ldo13 {
544			regulator-name = "vreg_l13c";
545			regulator-min-microvolt = <2700000>;
546			regulator-max-microvolt = <3544000>;
547			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
548		};
549
550		vreg_bob: bob {
551			regulator-name = "vreg_bob";
552			regulator-min-microvolt = <3008000>;
553			regulator-max-microvolt = <3960000>;
554			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
555		};
556	};
557};
558
559&dispcc {
560	/* Disable for now so simple-framebuffer continues working */
561	status = "disabled";
562};
563
564&gcc {
565	protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
566			   <GCC_EDP_CLKREF_EN>,
567			   <GCC_MSS_CFG_AHB_CLK>,
568			   <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
569			   <GCC_MSS_OFFLINE_AXI_CLK>,
570			   <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
571			   <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
572			   <GCC_MSS_SNOC_AXI_CLK>,
573			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
574			   <GCC_QSPI_CORE_CLK>,
575			   <GCC_QSPI_CORE_CLK_SRC>,
576			   <GCC_SEC_CTRL_CLK_SRC>,
577			   <GCC_WPSS_AHB_BDG_MST_CLK>,
578			   <GCC_WPSS_AHB_CLK>,
579			   <GCC_WPSS_RSCP_CLK>;
580};
581
582&gpi_dma0 {
583	status = "okay";
584};
585
586&gpi_dma1 {
587	status = "okay";
588};
589
590&i2c1 {
591	status = "okay";
592
593	pm8008: pmic@8 {
594		compatible = "qcom,pm8008";
595		reg = <0x8>;
596
597		interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>;
598		reset-gpios = <&pm8350c_gpios 3 GPIO_ACTIVE_LOW>;
599
600		vdd-l1-l2-supply = <&vreg_s8b>;
601		vdd-l3-l4-supply = <&vreg_bob>;
602		vdd-l5-supply = <&vreg_bob>;
603		vdd-l6-supply = <&vreg_s1b>;
604		vdd-l7-supply = <&vreg_bob>;
605
606		pinctrl-names = "default";
607		pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_default>;
608
609		gpio-controller;
610		#gpio-cells = <2>;
611		gpio-ranges = <&pm8008 0 0 2>;
612
613		interrupt-controller;
614		#interrupt-cells = <2>;
615
616		#thermal-sensor-cells = <0>;
617
618		regulators {
619			vreg_l1p: ldo1 {
620				regulator-name = "vreg_l1p";
621				regulator-min-microvolt = <1000000>;
622				regulator-max-microvolt = <1200000>;
623			};
624
625			vreg_l2p: ldo2 {
626				regulator-name = "vreg_l2p";
627				regulator-min-microvolt = <950000>;
628				regulator-max-microvolt = <1152000>;
629			};
630
631			vreg_l3p: ldo3 {
632				regulator-name = "vreg_l3p";
633				regulator-min-microvolt = <2700000>;
634				regulator-max-microvolt = <3000000>;
635			};
636
637			vreg_l4p: ldo4 {
638				regulator-name = "vreg_l4p";
639				regulator-min-microvolt = <2700000>;
640				regulator-max-microvolt = <2900000>;
641			};
642
643			vreg_l5p: ldo5 {
644				regulator-name = "vreg_l5p";
645				regulator-min-microvolt = <2704000>;
646				regulator-max-microvolt = <2900000>;
647			};
648
649			vreg_l6p: ldo6 {
650				regulator-name = "vreg_l6p";
651				regulator-min-microvolt = <1700000>;
652				regulator-max-microvolt = <1904000>;
653			};
654
655			vreg_l7p: ldo7 {
656				regulator-name = "vreg_l7p";
657				regulator-min-microvolt = <2700000>;
658				regulator-max-microvolt = <3000000>;
659			};
660		};
661	};
662
663	/* Pixelworks @ 26 */
664	/* FSA4480 USB audio switch @ 42 */
665	/* AW86927FCR haptics @ 5a */
666};
667
668&i2c2 {
669	status = "okay";
670
671	/* AW88261FCR amplifier @ 34 */
672	/* AW88261FCR amplifier @ 35 */
673};
674
675&i2c4 {
676	status = "okay";
677
678	/* PTN36502 USB redriver @ 1a */
679};
680
681&i2c9 {
682	status = "okay";
683
684	/* ST21NFC NFC @ 28 */
685	/* VL53L3 ToF @ 29 */
686};
687
688&ipa {
689	qcom,gsi-loader = "self";
690	memory-region = <&ipa_fw_mem>;
691	firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mbn";
692	status = "okay";
693};
694
695&pm7250b_adc {
696	pinctrl-0 = <&pm7250b_adc_default>;
697	pinctrl-names = "default";
698
699	channel@4d {
700		reg = <ADC5_AMUX_THM1_100K_PU>;
701		qcom,ratiometric;
702		qcom,hw-settle-time = <200>;
703		qcom,pre-scaling = <1 1>;
704		label = "charger_skin_therm";
705	};
706
707	channel@4f {
708		reg = <ADC5_AMUX_THM3_100K_PU>;
709		qcom,ratiometric;
710		qcom,hw-settle-time = <200>;
711		qcom,pre-scaling = <1 1>;
712		label = "conn_therm";
713	};
714
715	channel@53 {
716		reg = <ADC5_GPIO2_100K_PU>;
717		qcom,ratiometric;
718		qcom,hw-settle-time = <200>;
719		qcom,pre-scaling = <1 1>;
720		label = "mem_therm";
721	};
722};
723
724&pm7250b_adc_tm {
725	status = "okay";
726
727	charger-skin-therm@0 {
728		reg = <0>;
729		io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
730		qcom,ratiometric;
731		qcom,hw-settle-time-us = <200>;
732	};
733
734	conn-therm@1 {
735		reg = <1>;
736		io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
737		qcom,ratiometric;
738		qcom,hw-settle-time-us = <200>;
739	};
740
741	mem-therm@2 {
742		reg = <2>;
743		io-channels = <&pm7250b_adc ADC5_GPIO2_100K_PU>;
744		qcom,ratiometric;
745		qcom,hw-settle-time-us = <200>;
746	};
747};
748
749&pm7250b_gpios {
750	pm7250b_adc_default: adc-default-state {
751		pins = "gpio12";
752		function = PMIC_GPIO_FUNC_NORMAL;
753		bias-high-impedance;
754	};
755};
756
757&pm7325_gpios {
758	volume_down_default: volume-down-default-state {
759		pins = "gpio6";
760		function = PMIC_GPIO_FUNC_NORMAL;
761		power-source = <1>;
762		bias-pull-up;
763		input-enable;
764	};
765};
766
767&pm8350c_flash {
768	status = "okay";
769
770	led-0 {
771		function = LED_FUNCTION_FLASH;
772		color = <LED_COLOR_ID_WHITE>;
773		led-sources = <1>, <4>;
774		led-max-microamp = <500000>;
775		flash-max-microamp = <1500000>;
776		flash-max-timeout-us = <1280000>;
777	};
778};
779
780&pmk8350_adc_tm {
781	status = "okay";
782
783	xo-therm@0 {
784		reg = <0>;
785		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
786		qcom,ratiometric;
787		qcom,hw-settle-time-us = <200>;
788	};
789
790	quiet-therm@1 {
791		reg = <1>;
792		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
793		qcom,ratiometric;
794		qcom,hw-settle-time-us = <200>;
795	};
796
797	cam-flash-therm@2 {
798		reg = <2>;
799		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>;
800		qcom,ratiometric;
801		qcom,hw-settle-time-us = <200>;
802	};
803
804	sdm-skin-therm@3 {
805		reg = <3>;
806		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
807		qcom,ratiometric;
808		qcom,hw-settle-time-us = <200>;
809	};
810
811	wide-rfc-therm@4 {
812		reg = <4>;
813		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>;
814		qcom,ratiometric;
815		qcom,hw-settle-time-us = <200>;
816	};
817};
818
819&pm8350c_gpios {
820	pm8008_reset_n_default: pm8008-reset-n-default-state {
821		pins = "gpio3";
822		function = PMIC_GPIO_FUNC_NORMAL;
823		bias-pull-down;
824	};
825};
826
827&pmk8350_rtc {
828	status = "okay";
829};
830
831&pmk8350_vadc {
832	status = "okay";
833
834	channel@44 {
835		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
836		qcom,ratiometric;
837		qcom,hw-settle-time = <200>;
838		qcom,pre-scaling = <1 1>;
839		label = "pmk8350_xo_therm";
840	};
841
842	channel@144 {
843		reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
844		qcom,ratiometric;
845		qcom,hw-settle-time = <200>;
846		qcom,pre-scaling = <1 1>;
847		label = "pm7325_quiet_therm";
848	};
849
850	channel@145 {
851		reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
852		qcom,ratiometric;
853		qcom,hw-settle-time = <200>;
854		qcom,pre-scaling = <1 1>;
855		label = "pm7325_cam_flash_therm";
856	};
857
858	channel@146 {
859		reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
860		qcom,ratiometric;
861		qcom,hw-settle-time = <200>;
862		qcom,pre-scaling = <1 1>;
863		label = "pm7325_sdm_skin_therm";
864	};
865
866	channel@147 {
867		reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
868		qcom,ratiometric;
869		qcom,hw-settle-time = <200>;
870		qcom,pre-scaling = <1 1>;
871		label = "pm7325_wide_rfc_therm";
872	};
873};
874
875&pon_pwrkey {
876	status = "okay";
877};
878
879&pon_resin {
880	linux,code = <KEY_VOLUMEDOWN>;
881	status = "okay";
882};
883
884&qup_spi13_cs {
885	drive-strength = <6>;
886	bias-disable;
887};
888
889&qup_spi13_data_clk {
890	drive-strength = <6>;
891	bias-disable;
892};
893
894&qup_uart5_rx {
895	drive-strength = <2>;
896	bias-disable;
897};
898
899&qup_uart5_tx {
900	drive-strength = <2>;
901	bias-disable;
902};
903
904&qupv3_id_0 {
905	status = "okay";
906};
907
908&qupv3_id_1 {
909	status = "okay";
910};
911
912&remoteproc_adsp {
913	firmware-name = "qcom/qcm6490/fairphone5/adsp.mbn";
914	status = "okay";
915};
916
917&remoteproc_cdsp {
918	firmware-name = "qcom/qcm6490/fairphone5/cdsp.mbn";
919	status = "okay";
920};
921
922&remoteproc_mpss {
923	firmware-name = "qcom/qcm6490/fairphone5/modem.mbn";
924	status = "okay";
925};
926
927&remoteproc_wpss {
928	firmware-name = "qcom/qcm6490/fairphone5/wpss.mbn";
929	status = "okay";
930};
931
932&sdc2_clk {
933	drive-strength = <16>;
934	bias-disable;
935};
936
937&sdc2_cmd {
938	drive-strength = <10>;
939	bias-pull-up;
940};
941
942&sdc2_data {
943	drive-strength = <10>;
944	bias-pull-up;
945};
946
947&sdhc_2 {
948	vmmc-supply = <&vreg_l9c>;
949	vqmmc-supply = <&vreg_l6c>;
950
951	pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
952	pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
953
954	status = "okay";
955};
956
957&spi13 {
958	status = "okay";
959
960	/* Goodix touchscreen @ 0 */
961};
962
963&tlmm {
964	/*
965	 * 32-33: SMB1394 (SPMI)
966	 * 56-59: fingerprint reader (SPI)
967	 */
968	gpio-reserved-ranges = <32 2>, <56 4>;
969
970	bluetooth_enable_default: bluetooth-enable-default-state {
971		pins = "gpio85";
972		function = "gpio";
973		output-low;
974		bias-disable;
975	};
976
977	hall_sensor_default: hall-sensor-default-state {
978		pins = "gpio155";
979		function = "gpio";
980		drive-strength = <2>;
981		bias-pull-up;
982	};
983
984	pm8008_int_default: pm8008-int-default-state {
985		pins = "gpio25";
986		function = "gpio";
987		drive-strength = <2>;
988		bias-disable;
989	};
990
991	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
992		pins = "gpio28";
993		function = "gpio";
994		/*
995		 * Configure a bias-bus-hold on CTS to lower power
996		 * usage when Bluetooth is turned off. Bus hold will
997		 * maintain a low power state regardless of whether
998		 * the Bluetooth module drives the pin in either
999		 * direction or leaves the pin fully unpowered.
1000		 */
1001		bias-bus-hold;
1002	};
1003
1004	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
1005		pins = "gpio29";
1006		function = "gpio";
1007		/*
1008		 * Configure pull-down on RTS. As RTS is active low
1009		 * signal, pull it low to indicate the BT SoC that it
1010		 * can wakeup the system anytime from suspend state by
1011		 * pulling RX low (by sending wakeup bytes).
1012		 */
1013		bias-pull-down;
1014	};
1015
1016	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
1017		pins = "gpio30";
1018		function = "gpio";
1019		/*
1020		 * Configure pull-up on TX when it isn't actively driven
1021		 * to prevent BT SoC from receiving garbage during sleep.
1022		 */
1023		bias-pull-up;
1024	};
1025
1026	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
1027		pins = "gpio31";
1028		function = "gpio";
1029		/*
1030		 * Configure a pull-up on RX. This is needed to avoid
1031		 * garbage data when the TX pin of the Bluetooth module
1032		 * is floating which may cause spurious wakeups.
1033		 */
1034		bias-pull-up;
1035	};
1036
1037	sw_ctrl_default: sw-ctrl-default-state {
1038		pins = "gpio86";
1039		function = "gpio";
1040		bias-pull-down;
1041	};
1042};
1043
1044&uart5 {
1045	status = "okay";
1046};
1047
1048&uart7 {
1049	/delete-property/interrupts;
1050	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
1051			      <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
1052
1053	pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
1054	pinctrl-names = "default", "sleep";
1055
1056	status = "okay";
1057
1058	bluetooth: bluetooth {
1059		compatible = "qcom,wcn6750-bt";
1060
1061		pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>;
1062		pinctrl-names = "default";
1063
1064		enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
1065		swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
1066
1067		vddio-supply = <&vreg_l19b>;
1068		vddaon-supply = <&vreg_s7b>;
1069		vddbtcxmx-supply = <&vreg_s7b>;
1070		vddrfacmn-supply = <&vreg_s7b>;
1071		vddrfa0p8-supply = <&vreg_s7b>;
1072		vddrfa1p7-supply = <&vreg_s1b>;
1073		vddrfa1p2-supply = <&vreg_s8b>;
1074		vddrfa2p2-supply = <&vreg_s1c>;
1075		vddasd-supply = <&vreg_l11c>;
1076
1077		max-speed = <3200000>;
1078	};
1079};
1080
1081&ufs_mem_hc {
1082	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
1083
1084	vcc-supply = <&vreg_l7b>;
1085	vcc-max-microamp = <800000>;
1086	/*
1087	 * Technically l9b enables an eLDO (supplied by s1b) which then powers
1088	 * VCCQ2 of the UFS.
1089	 */
1090	vccq-supply = <&vreg_l9b>;
1091	vccq-max-microamp = <900000>;
1092
1093	status = "okay";
1094};
1095
1096&ufs_mem_phy {
1097	vdda-phy-supply = <&vreg_l10c>;
1098	vdda-pll-supply = <&vreg_l6b>;
1099
1100	status = "okay";
1101};
1102
1103&usb_1 {
1104	status = "okay";
1105};
1106
1107&usb_1_dwc3 {
1108	dr_mode = "otg";
1109	usb-role-switch;
1110};
1111
1112&usb_1_dwc3_hs {
1113	remote-endpoint = <&pmic_glink_hs_in>;
1114};
1115
1116&usb_1_dwc3_ss {
1117	remote-endpoint = <&pmic_glink_ss_in>;
1118};
1119
1120&usb_1_hsphy {
1121	vdda-pll-supply = <&vreg_l10c>;
1122	vdda18-supply = <&vreg_l1c>;
1123	vdda33-supply = <&vreg_l2b>;
1124
1125	qcom,hs-crossover-voltage-microvolt = <28000>;
1126	qcom,hs-output-impedance-micro-ohms = <2600000>;
1127	qcom,hs-rise-fall-time-bp = <5430>;
1128	qcom,hs-disconnect-bp = <1743>;
1129	qcom,hs-amplitude-bp = <2430>;
1130
1131	qcom,pre-emphasis-amplitude-bp = <20000>;
1132	qcom,pre-emphasis-duration-bp = <20000>;
1133
1134	qcom,squelch-detector-bp = <(-2090)>;
1135
1136	status = "okay";
1137};
1138
1139&usb_1_qmpphy {
1140	vdda-phy-supply = <&vreg_l6b>;
1141	vdda-pll-supply = <&vreg_l1b>;
1142
1143	status = "okay";
1144};
1145
1146&venus {
1147	firmware-name = "qcom/qcm6490/fairphone5/venus.mbn";
1148	status = "okay";
1149};
1150
1151&wifi {
1152	qcom,ath11k-calibration-variant = "Fairphone_5";
1153	status = "okay";
1154};
1155