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