xref: /linux/arch/arm64/boot/dts/qcom/qcm6490-shift-otter.dts (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023, Luca Weiss <luca.weiss@fairphone.com>
4 * Copyright (c) 2024, Casey Connolly <casey.connolly@linaro.org>
5 */
6
7/dts-v1/;
8
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 "kodiak.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 = "SHIFT SHIFTphone 8";
27	compatible = "shift,otter", "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		stdout-path = "serial0:115200n8";
41
42		framebuffer0: framebuffer@a000000 {
43			compatible = "simple-framebuffer";
44			reg = <0x0 0xe1000000 0x0 (2400 * 1080 * 4)>;
45			width = <1080>;
46			height = <2400>;
47			stride = <(1080 * 4)>;
48			format = "a8r8g8b8";
49			clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
50		};
51	};
52
53	gpio-keys {
54		compatible = "gpio-keys";
55
56		pinctrl-0 = <&volume_down_default>;
57		pinctrl-names = "default";
58
59		key-volume-up {
60			label = "Volume up";
61			gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
62			linux,code = <KEY_VOLUMEUP>;
63			debounce-interval = <15>;
64		};
65	};
66
67	pmic-glink {
68		compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
69
70		#address-cells = <1>;
71		#size-cells = <0>;
72
73		connector@0 {
74			compatible = "usb-c-connector";
75			reg = <0>;
76			power-role = "dual";
77			data-role = "dual";
78
79			ports {
80				#address-cells = <1>;
81				#size-cells = <0>;
82
83				port@0 {
84					reg = <0>;
85
86					pmic_glink_hs_in: endpoint {
87						remote-endpoint = <&usb_1_dwc3_hs>;
88					};
89				};
90
91				port@1 {
92					reg = <1>;
93
94					pmic_glink_ss_in: endpoint {
95						remote-endpoint = <&usb_dp_qmpphy_out>;
96					};
97				};
98
99				port@2 {
100					reg = <2>;
101
102					pmic_glink_sbu: endpoint {
103						remote-endpoint = <&fsa4480_sbu_mux>;
104					};
105				};
106			};
107		};
108	};
109
110	reserved-memory {
111		cont_splash_mem: cont-splash@e1000000 {
112			reg = <0x0 0xe1000000 0x0 0x2300000>;
113			no-map;
114		};
115
116		cdsp_mem: cdsp@88f00000 {
117			reg = <0x0 0x88f00000 0x0 0x1e00000>;
118			no-map;
119		};
120
121		removed_mem: removed@c0000000 {
122			reg = <0x0 0xc0000000 0x0 0x5100000>;
123			no-map;
124		};
125
126		rmtfs_mem: rmtfs@f8500000 {
127			compatible = "qcom,rmtfs-mem";
128			reg = <0x0 0xf8500000 0x0 0x600000>;
129			no-map;
130
131			qcom,client-id = <1>;
132			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>;
133		};
134	};
135
136	thermal-zones {
137		camera-thermal {
138			thermal-sensors = <&pmk8350_adc_tm 2>;
139
140			trips {
141				active-config0 {
142					temperature = <125000>;
143					hysteresis = <1000>;
144					type = "passive";
145				};
146			};
147		};
148
149		chg-skin-thermal {
150			thermal-sensors = <&pm7250b_adc_tm 0>;
151
152			trips {
153				active-config0 {
154					temperature = <125000>;
155					hysteresis = <1000>;
156					type = "passive";
157				};
158			};
159		};
160
161		conn-thermal {
162			thermal-sensors = <&pm7250b_adc_tm 1>;
163
164			trips {
165				active-config0 {
166					temperature = <125000>;
167					hysteresis = <1000>;
168					type = "passive";
169				};
170			};
171		};
172
173		quiet-thermal {
174			thermal-sensors = <&pmk8350_adc_tm 1>;
175
176			trips {
177				active-config0 {
178					temperature = <125000>;
179					hysteresis = <1000>;
180					type = "passive";
181				};
182			};
183		};
184
185		rear-cam-thermal {
186			thermal-sensors = <&pmk8350_adc_tm 4>;
187
188			trips {
189				active-config0 {
190					temperature = <125000>;
191					hysteresis = <1000>;
192					type = "passive";
193				};
194			};
195		};
196
197		sdm-skin-thermal {
198			thermal-sensors = <&pmk8350_adc_tm 3>;
199
200			trips {
201				active-config0 {
202					temperature = <125000>;
203					hysteresis = <1000>;
204					type = "passive";
205				};
206			};
207		};
208
209		xo-thermal {
210			thermal-sensors = <&pmk8350_adc_tm 0>;
211
212			trips {
213				active-config0 {
214					temperature = <125000>;
215					hysteresis = <1000>;
216					type = "passive";
217				};
218			};
219		};
220	};
221};
222
223&apps_rsc {
224	regulators-0 {
225		compatible = "qcom,pm7325-rpmh-regulators";
226		qcom,pmic-id = "b";
227
228		vreg_s1b: smps1 {
229			regulator-name = "vreg_s1b";
230			regulator-min-microvolt = <1840000>;
231			regulator-max-microvolt = <2040000>;
232		};
233
234		vreg_s7b: smps7 {
235			regulator-name = "vreg_s7b";
236			regulator-min-microvolt = <535000>;
237			regulator-max-microvolt = <1120000>;
238		};
239
240		vreg_s8b: smps8 {
241			regulator-name = "vreg_s8b";
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-name = "vreg_l1b";
249			regulator-min-microvolt = <825000>;
250			regulator-max-microvolt = <925000>;
251			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
252		};
253
254		vreg_l2b: ldo2 {
255			regulator-name = "vreg_l2b";
256			regulator-min-microvolt = <2700000>;
257			regulator-max-microvolt = <3544000>;
258			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
259		};
260
261		vreg_l3b: ldo3 {
262			regulator-name = "vreg_l3b";
263			regulator-min-microvolt = <312000>;
264			regulator-max-microvolt = <910000>;
265			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
266		};
267
268		vreg_l6b: ldo6 {
269			regulator-name = "vreg_l6b";
270			regulator-min-microvolt = <1140000>;
271			regulator-max-microvolt = <1260000>;
272			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
273		};
274
275		vreg_l7b: ldo7 {
276			regulator-name = "vreg_l7b";
277			/* Constrained for UFS VCC, at least until UFS driver scales voltage */
278			regulator-min-microvolt = <2952000>;
279			regulator-max-microvolt = <2952000>;
280			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
281		};
282
283		vreg_l8b: ldo8 {
284			regulator-name = "vreg_l8b";
285			regulator-min-microvolt = <870000>;
286			regulator-max-microvolt = <970000>;
287			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
288		};
289
290		vreg_l9b: ldo9 {
291			regulator-name = "vreg_l9b";
292			regulator-min-microvolt = <1200000>;
293			regulator-max-microvolt = <1304000>;
294			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
295		};
296
297		vreg_l11b: ldo11 {
298			regulator-name = "vreg_l11b";
299			regulator-min-microvolt = <1504000>;
300			regulator-max-microvolt = <2000000>;
301			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
302		};
303
304		vreg_l12b: ldo12 {
305			regulator-name = "vreg_l12b";
306			regulator-min-microvolt = <751000>;
307			regulator-max-microvolt = <824000>;
308			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
309		};
310
311		vreg_l13b: ldo13 {
312			regulator-name = "vreg_l13b";
313			regulator-min-microvolt = <530000>;
314			regulator-max-microvolt = <824000>;
315			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
316		};
317
318		vreg_l14b: ldo14 {
319			regulator-name = "vreg_l14b";
320			regulator-min-microvolt = <1080000>;
321			regulator-max-microvolt = <1304000>;
322			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
323		};
324
325		vreg_l15b: ldo15 {
326			regulator-name = "vreg_l15b";
327			regulator-min-microvolt = <765000>;
328			regulator-max-microvolt = <1020000>;
329			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
330		};
331
332		vreg_l16b: ldo16 {
333			regulator-name = "vreg_l16b";
334			regulator-min-microvolt = <1100000>;
335			regulator-max-microvolt = <1300000>;
336			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
337		};
338
339		vreg_l17b: ldo17 {
340			regulator-name = "vreg_l17b";
341			regulator-min-microvolt = <1700000>;
342			regulator-max-microvolt = <1900000>;
343			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
344		};
345
346		vreg_l18b: ldo18 {
347			regulator-name = "vreg_l18b";
348			regulator-min-microvolt = <1800000>;
349			regulator-max-microvolt = <2000000>;
350			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
351		};
352
353		vreg_l19b: ldo19 {
354			regulator-name = "vreg_l19b";
355			regulator-min-microvolt = <1800000>;
356			regulator-max-microvolt = <2000000>;
357			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
358		};
359	};
360
361	regulators-1 {
362		compatible = "qcom,pm8350c-rpmh-regulators";
363		qcom,pmic-id = "c";
364
365		vreg_s1c: smps1 {
366			regulator-name = "vreg_s1c";
367			regulator-min-microvolt = <2190000>;
368			regulator-max-microvolt = <2210000>;
369			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
370		};
371
372		vreg_s9c: smps9 {
373			regulator-name = "vreg_s9c";
374			regulator-min-microvolt = <1010000>;
375			regulator-max-microvolt = <1170000>;
376			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
377		};
378
379		vreg_l1c: ldo1 {
380			regulator-name = "vreg_l1c";
381			regulator-min-microvolt = <1800000>;
382			regulator-max-microvolt = <1980000>;
383			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
384		};
385
386		vreg_l2c: ldo2 {
387			regulator-name = "vreg_l2c";
388			regulator-min-microvolt = <1800000>;
389			regulator-max-microvolt = <1950000>;
390			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
391		};
392
393		vreg_l3c: ldo3 {
394			regulator-name = "vreg_l3c";
395			regulator-min-microvolt = <3000000>;
396			regulator-max-microvolt = <3400000>;
397			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
398		};
399
400		vreg_l4c: ldo4 {
401			regulator-name = "vreg_l4c";
402			regulator-min-microvolt = <1620000>;
403			regulator-max-microvolt = <3300000>;
404			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
405		};
406
407		vreg_l5c: ldo5 {
408			regulator-name = "vreg_l5c";
409			regulator-min-microvolt = <1620000>;
410			regulator-max-microvolt = <3300000>;
411			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
412		};
413
414		vreg_l6c: ldo6 {
415			regulator-name = "vreg_l6c";
416			regulator-min-microvolt = <1650000>;
417			regulator-max-microvolt = <3544000>;
418			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
419		};
420
421		vreg_l7c: ldo7 {
422			regulator-name = "vreg_l7c";
423			regulator-min-microvolt = <3000000>;
424			regulator-max-microvolt = <3544000>;
425			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
426		};
427
428		vreg_l8c: ldo8 {
429			regulator-name = "vreg_l8c";
430			regulator-min-microvolt = <1620000>;
431			regulator-max-microvolt = <2000000>;
432			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
433		};
434
435		vreg_l9c: ldo9 {
436			regulator-name = "vreg_l9c";
437			regulator-min-microvolt = <2700000>;
438			regulator-max-microvolt = <3544000>;
439			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
440		};
441
442		vreg_l10c: ldo10 {
443			regulator-name = "vreg_l10c";
444			regulator-min-microvolt = <720000>;
445			regulator-max-microvolt = <1050000>;
446			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
447		};
448
449		vreg_l11c: ldo11 {
450			regulator-name = "vreg_l11c";
451			regulator-min-microvolt = <2800000>;
452			regulator-max-microvolt = <3544000>;
453			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
454		};
455
456		vreg_l12c: ldo12 {
457			regulator-name = "vreg_l12c";
458			regulator-min-microvolt = <1650000>;
459			regulator-max-microvolt = <2000000>;
460			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
461		};
462
463		vreg_l13c: ldo13 {
464			regulator-name = "vreg_l13c";
465			regulator-min-microvolt = <2700000>;
466			regulator-max-microvolt = <3544000>;
467			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
468		};
469
470		vreg_bob: bob {
471			regulator-name = "vreg_bob";
472			regulator-min-microvolt = <3008000>;
473			regulator-max-microvolt = <3960000>;
474			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
475		};
476	};
477};
478
479&gcc {
480	protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
481			   <GCC_EDP_CLKREF_EN>,
482			   <GCC_MSS_CFG_AHB_CLK>,
483			   <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
484			   <GCC_MSS_OFFLINE_AXI_CLK>,
485			   <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
486			   <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
487			   <GCC_MSS_SNOC_AXI_CLK>,
488			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
489			   <GCC_QSPI_CORE_CLK>,
490			   <GCC_QSPI_CORE_CLK_SRC>,
491			   <GCC_SEC_CTRL_CLK_SRC>,
492			   <GCC_WPSS_AHB_BDG_MST_CLK>,
493			   <GCC_WPSS_AHB_CLK>,
494			   <GCC_WPSS_RSCP_CLK>;
495};
496
497&gpi_dma0 {
498	status = "okay";
499};
500
501&gpi_dma1 {
502	status = "okay";
503};
504
505&gpu {
506	status = "okay";
507};
508
509&gpu_zap_shader {
510	firmware-name = "qcom/qcm6490/SHIFT/otter/a660_zap.mbn";
511};
512
513&i2c1 {
514	status = "okay";
515
516	/* PM8008 PMIC @ 8 and 9 */
517	/* rtc6226 FM receiver @ 64 */
518
519	typec-mux@42 {
520		compatible = "fcs,fsa4480";
521		reg = <0x42>;
522
523		vcc-supply = <&vreg_bob>;
524
525		mode-switch;
526		orientation-switch;
527
528		port {
529			fsa4480_sbu_mux: endpoint {
530				remote-endpoint = <&pmic_glink_sbu>;
531			};
532		};
533	};
534};
535
536&i2c4 {
537	status = "okay";
538
539	/* tas2563 audio codec @ 4d */
540};
541
542&i2c9 {
543	status = "okay";
544
545	/* TMS(?) NFC @ 28 */
546	/* Ti drv2624 haptics @ 5a */
547};
548
549&i2c13 {
550	status = "okay";
551
552	/* focaltech FT3658U @ 38 */
553};
554
555&ipa {
556	qcom,gsi-loader = "self";
557	memory-region = <&ipa_fw_mem>;
558	firmware-name = "qcom/qcm6490/SHIFT/otter/ipa_fws.mbn";
559	status = "okay";
560};
561
562&lpass_audiocc {
563	compatible = "qcom,qcm6490-lpassaudiocc";
564	/delete-property/ power-domains;
565};
566
567&pm7250b_adc {
568	channel@4d {
569		reg = <ADC5_AMUX_THM1_100K_PU>;
570		qcom,ratiometric;
571		qcom,hw-settle-time = <200>;
572		qcom,pre-scaling = <1 1>;
573		label = "charger_skin_therm";
574	};
575
576	channel@4f {
577		reg = <ADC5_AMUX_THM3_100K_PU>;
578		qcom,ratiometric;
579		qcom,hw-settle-time = <200>;
580		qcom,pre-scaling = <1 1>;
581		label = "conn_therm";
582	};
583};
584
585&pm7250b_adc_tm {
586	status = "okay";
587
588	charger-skin-therm@0 {
589		reg = <0>;
590		io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
591		qcom,ratiometric;
592		qcom,hw-settle-time-us = <200>;
593	};
594
595	conn-therm@1 {
596		reg = <1>;
597		io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
598		qcom,ratiometric;
599		qcom,hw-settle-time-us = <200>;
600	};
601};
602
603&pm7325_gpios {
604	volume_down_default: volume-down-default-state {
605		pins = "gpio6";
606		function = PMIC_GPIO_FUNC_NORMAL;
607		power-source = <1>;
608		bias-pull-up;
609		input-enable;
610	};
611};
612
613&pm8350c_flash {
614	status = "okay";
615
616	led-0 {
617		function = LED_FUNCTION_FLASH;
618		color = <LED_COLOR_ID_WHITE>;
619		led-sources = <1>, <2>;
620		led-max-microamp = <500000>;
621		flash-max-microamp = <1500000>;
622		flash-max-timeout-us = <1280000>;
623	};
624};
625
626&pm8350c_pwm {
627	status = "okay";
628
629	multi-led {
630		color = <LED_COLOR_ID_RGB>;
631		function = LED_FUNCTION_STATUS;
632
633		#address-cells = <1>;
634		#size-cells = <0>;
635
636		led@1 {
637			reg = <1>;
638			color = <LED_COLOR_ID_RED>;
639		};
640
641		led@2 {
642			reg = <2>;
643			color = <LED_COLOR_ID_GREEN>;
644		};
645
646		led@3 {
647			reg = <3>;
648			color = <LED_COLOR_ID_BLUE>;
649		};
650	};
651};
652
653&pmk8350_adc_tm {
654	status = "okay";
655
656	xo-therm@0 {
657		reg = <0>;
658		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
659		qcom,ratiometric;
660		qcom,hw-settle-time-us = <200>;
661	};
662
663	quiet-therm@1 {
664		reg = <1>;
665		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
666		qcom,ratiometric;
667		qcom,hw-settle-time-us = <200>;
668	};
669
670	cam-flash-therm@2 {
671		reg = <2>;
672		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>;
673		qcom,ratiometric;
674		qcom,hw-settle-time-us = <200>;
675	};
676
677	sdm-skin-therm@3 {
678		reg = <3>;
679		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
680		qcom,ratiometric;
681		qcom,hw-settle-time-us = <200>;
682	};
683
684	wide-rfc-therm@4 {
685		reg = <4>;
686		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>;
687		qcom,ratiometric;
688		qcom,hw-settle-time-us = <200>;
689	};
690};
691
692&pmk8350_rtc {
693	status = "okay";
694};
695
696&pmk8350_vadc {
697	status = "okay";
698
699	channel@44 {
700		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
701		qcom,ratiometric;
702		qcom,hw-settle-time = <200>;
703		qcom,pre-scaling = <1 1>;
704		label = "pmk8350_xo_therm";
705	};
706
707	channel@144 {
708		reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
709		qcom,ratiometric;
710		qcom,hw-settle-time = <200>;
711		qcom,pre-scaling = <1 1>;
712		label = "pm7325_quiet_therm";
713	};
714
715	channel@145 {
716		reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
717		qcom,ratiometric;
718		qcom,hw-settle-time = <200>;
719		qcom,pre-scaling = <1 1>;
720		label = "pm7325_cam_flash_therm";
721	};
722
723	channel@146 {
724		reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
725		qcom,ratiometric;
726		qcom,hw-settle-time = <200>;
727		qcom,pre-scaling = <1 1>;
728		label = "pm7325_sdm_skin_therm";
729	};
730
731	channel@147 {
732		reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
733		qcom,ratiometric;
734		qcom,hw-settle-time = <200>;
735		qcom,pre-scaling = <1 1>;
736		label = "pm7325_wide_rfc_therm";
737	};
738};
739
740&pon_pwrkey {
741	status = "okay";
742};
743
744&pon_resin {
745	linux,code = <KEY_VOLUMEDOWN>;
746	status = "okay";
747};
748
749&qup_spi13_cs {
750	drive-strength = <6>;
751	bias-disable;
752};
753
754&qup_spi13_data_clk {
755	drive-strength = <6>;
756	bias-disable;
757};
758
759&qup_uart5_rx {
760	drive-strength = <2>;
761	bias-disable;
762};
763
764&qup_uart5_tx {
765	drive-strength = <2>;
766	bias-disable;
767};
768
769&qupv3_id_0 {
770	status = "okay";
771};
772
773&qupv3_id_1 {
774	status = "okay";
775};
776
777&remoteproc_adsp {
778	firmware-name = "qcom/qcm6490/SHIFT/otter/adsp.mbn";
779	status = "okay";
780};
781
782&remoteproc_cdsp {
783	firmware-name = "qcom/qcm6490/SHIFT/otter/cdsp.mbn";
784	status = "okay";
785};
786
787&remoteproc_mpss {
788	firmware-name = "qcom/qcm6490/SHIFT/otter/modem.mbn";
789	status = "okay";
790};
791
792&remoteproc_wpss {
793	firmware-name = "qcom/qcm6490/SHIFT/otter/wpss.mbn";
794	status = "okay";
795};
796
797&sdc2_clk {
798	drive-strength = <16>;
799	bias-disable;
800};
801
802&sdc2_cmd {
803	drive-strength = <10>;
804	bias-pull-up;
805};
806
807&sdc2_data {
808	drive-strength = <10>;
809	bias-pull-up;
810};
811
812&sdhc_2 {
813	vmmc-supply = <&vreg_l9c>;
814	vqmmc-supply = <&vreg_l6c>;
815
816	pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
817	pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
818
819	status = "okay";
820};
821
822&tlmm {
823	/*
824	 * 48-52: protected by XPU, not sure why.
825	 */
826	gpio-reserved-ranges = <48 4>;
827
828	bluetooth_enable_default: bluetooth-enable-default-state {
829		pins = "gpio85";
830		function = "gpio";
831		output-low;
832		bias-disable;
833	};
834
835	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
836		pins = "gpio28";
837		function = "gpio";
838		/*
839		 * Configure a bias-bus-hold on CTS to lower power
840		 * usage when Bluetooth is turned off. Bus hold will
841		 * maintain a low power state regardless of whether
842		 * the Bluetooth module drives the pin in either
843		 * direction or leaves the pin fully unpowered.
844		 */
845		bias-bus-hold;
846	};
847
848	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
849		pins = "gpio29";
850		function = "gpio";
851		/*
852		 * Configure pull-down on RTS. As RTS is active low
853		 * signal, pull it low to indicate the BT SoC that it
854		 * can wakeup the system anytime from suspend state by
855		 * pulling RX low (by sending wakeup bytes).
856		 */
857		bias-pull-down;
858	};
859
860	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
861		pins = "gpio30";
862		function = "gpio";
863		/*
864		 * Configure pull-up on TX when it isn't actively driven
865		 * to prevent BT SoC from receiving garbage during sleep.
866		 */
867		bias-pull-up;
868	};
869
870	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
871		pins = "gpio31";
872		function = "gpio";
873		/*
874		 * Configure a pull-up on RX. This is needed to avoid
875		 * garbage data when the TX pin of the Bluetooth module
876		 * is floating which may cause spurious wakeups.
877		 */
878		bias-pull-up;
879	};
880
881	sw_ctrl_default: sw-ctrl-default-state {
882		pins = "gpio86";
883		function = "gpio";
884		bias-pull-down;
885	};
886};
887
888&uart5 {
889	compatible = "qcom,geni-debug-uart";
890	status = "okay";
891};
892
893&uart7 {
894	/delete-property/interrupts;
895	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
896			      <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
897
898	pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
899	pinctrl-names = "default", "sleep";
900
901	status = "okay";
902
903	bluetooth: bluetooth {
904		compatible = "qcom,wcn6750-bt";
905
906		pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>;
907		pinctrl-names = "default";
908
909		enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
910		swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
911
912		vddio-supply = <&vreg_l19b>;
913		vddaon-supply = <&vreg_s7b>;
914		vddbtcxmx-supply = <&vreg_s7b>;
915		vddrfacmn-supply = <&vreg_s7b>;
916		vddrfa0p8-supply = <&vreg_s7b>;
917		vddrfa1p7-supply = <&vreg_s1b>;
918		vddrfa1p2-supply = <&vreg_s8b>;
919		vddrfa2p2-supply = <&vreg_s1c>;
920		vddasd-supply = <&vreg_l11c>;
921
922		max-speed = <3200000>;
923	};
924};
925
926&ufs_mem_hc {
927	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
928
929	vcc-supply = <&vreg_l7b>;
930	vcc-max-microamp = <800000>;
931	/*
932	 * Technically l9b enables an eLDO (supplied by s1b) which then powers
933	 * VCCQ2 of the UFS.
934	 */
935	vccq-supply = <&vreg_l9b>;
936	vccq-max-microamp = <900000>;
937
938	status = "okay";
939};
940
941&ufs_mem_phy {
942	vdda-phy-supply = <&vreg_l10c>;
943	vdda-pll-supply = <&vreg_l6b>;
944
945	status = "okay";
946};
947
948&usb_1 {
949	dr_mode = "otg";
950	usb-role-switch;
951
952	status = "okay";
953};
954
955&usb_1_dwc3_hs {
956	remote-endpoint = <&pmic_glink_hs_in>;
957};
958
959&usb_1_hsphy {
960	vdda-pll-supply = <&vreg_l10c>;
961	vdda18-supply = <&vreg_l1c>;
962	vdda33-supply = <&vreg_l2b>;
963
964	qcom,hs-crossover-voltage-microvolt = <28000>;
965	qcom,hs-output-impedance-micro-ohms = <2600000>;
966	qcom,hs-rise-fall-time-bp = <5430>;
967	qcom,hs-disconnect-bp = <1743>;
968	qcom,hs-amplitude-bp = <2430>;
969
970	qcom,pre-emphasis-amplitude-bp = <20000>;
971	qcom,pre-emphasis-duration-bp = <20000>;
972
973	qcom,squelch-detector-bp = <(-2090)>;
974
975	status = "okay";
976};
977
978&usb_1_qmpphy {
979	vdda-phy-supply = <&vreg_l6b>;
980	vdda-pll-supply = <&vreg_l1b>;
981
982	status = "okay";
983};
984
985&usb_dp_qmpphy_out {
986	remote-endpoint = <&pmic_glink_ss_in>;
987};
988
989&venus {
990	firmware-name = "qcom/qcm6490/SHIFT/otter/venus.mbn";
991
992	status = "okay";
993};
994
995&wifi {
996	qcom,calibration-variant = "SHIFTphone_8";
997
998	status = "okay";
999};
1000