xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/qrb5165-rb5.dts (revision 9bc300465e48e19d794d88d0c158a2adb92c7197)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2020, Linaro Ltd.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/leds/common.h>
9#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10#include <dt-bindings/sound/qcom,q6afe.h>
11#include <dt-bindings/sound/qcom,q6asm.h>
12#include <dt-bindings/usb/pd.h>
13#include "sm8250.dtsi"
14#include "pm8150.dtsi"
15#include "pm8150b.dtsi"
16#include "pm8150l.dtsi"
17
18/ {
19	model = "Qualcomm Technologies, Inc. Robotics RB5";
20	compatible = "qcom,qrb5165-rb5", "qcom,sm8250";
21	qcom,msm-id = <455 0x20001>;
22	qcom,board-id = <11 3>;
23
24	aliases {
25		serial0 = &uart12;
26		serial1 = &uart6;
27		sdhc2 = &sdhc_2;
28	};
29
30	chosen {
31		stdout-path = "serial0:115200n8";
32	};
33
34	/* Fixed crystal oscillator dedicated to MCP2518FD */
35	clk40M: can-clock {
36		compatible = "fixed-clock";
37		#clock-cells = <0>;
38		clock-frequency = <40000000>;
39	};
40
41	dc12v: dc12v-regulator {
42		compatible = "regulator-fixed";
43		regulator-name = "DC12V";
44		regulator-min-microvolt = <12000000>;
45		regulator-max-microvolt = <12000000>;
46		regulator-always-on;
47	};
48
49	hdmi-out {
50		compatible = "hdmi-connector";
51		type = "a";
52
53		port {
54			hdmi_con: endpoint {
55				remote-endpoint = <&lt9611_out>;
56			};
57		};
58	};
59
60	leds {
61		compatible = "gpio-leds";
62
63		led-user4 {
64			label = "green:user4";
65			function = LED_FUNCTION_INDICATOR;
66			color = <LED_COLOR_ID_GREEN>;
67			gpios = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>;
68			default-state = "off";
69			panic-indicator;
70		};
71
72		led-wlan {
73			label = "yellow:wlan";
74			function = LED_FUNCTION_WLAN;
75			color = <LED_COLOR_ID_YELLOW>;
76			gpios = <&pm8150_gpios 9 GPIO_ACTIVE_HIGH>;
77			linux,default-trigger = "phy0tx";
78			default-state = "off";
79		};
80
81		led-bt {
82			label = "blue:bt";
83			function = LED_FUNCTION_BLUETOOTH;
84			color = <LED_COLOR_ID_BLUE>;
85			gpios = <&pm8150_gpios 7 GPIO_ACTIVE_HIGH>;
86			linux,default-trigger = "bluetooth-power";
87			default-state = "off";
88		};
89	};
90
91	lt9611_1v2: lt9611-vdd12-regulator {
92		compatible = "regulator-fixed";
93		regulator-name = "LT9611_1V2";
94
95		vin-supply = <&vdc_3v3>;
96		regulator-min-microvolt = <1200000>;
97		regulator-max-microvolt = <1200000>;
98	};
99
100	lt9611_3v3: lt9611-3v3 {
101		compatible = "regulator-fixed";
102		regulator-name = "LT9611_3V3";
103
104		vin-supply = <&vdc_3v3>;
105		regulator-min-microvolt = <3300000>;
106		regulator-max-microvolt = <3300000>;
107		regulator-boot-on;
108		regulator-always-on;
109	};
110
111	thermal-zones {
112		conn-thermal {
113			polling-delay-passive = <0>;
114			polling-delay = <0>;
115			thermal-sensors = <&pm8150b_adc_tm 0>;
116
117			trips {
118				active-config0 {
119					temperature = <125000>;
120					hysteresis = <1000>;
121					type = "critical";
122				};
123			};
124		};
125
126		pm8150l-pcb-thermal {
127			polling-delay-passive = <0>;
128			polling-delay = <0>;
129			thermal-sensors = <&pm8150l_adc_tm 1>;
130
131			trips {
132				active-config0 {
133					temperature = <50000>;
134					hysteresis = <4000>;
135					type = "passive";
136				};
137			};
138		};
139
140		skin-msm-thermal {
141			polling-delay-passive = <0>;
142			polling-delay = <0>;
143			thermal-sensors = <&pm8150l_adc_tm 0>;
144
145			trips {
146				active-config0 {
147					temperature = <50000>;
148					hysteresis = <4000>;
149					type = "passive";
150				};
151			};
152		};
153
154		wifi-thermal {
155			polling-delay-passive = <0>;
156			polling-delay = <0>;
157			thermal-sensors = <&pm8150_adc_tm 1>;
158
159			trips {
160				active-config0 {
161					temperature = <52000>;
162					hysteresis = <4000>;
163					type = "passive";
164				};
165			};
166		};
167
168		xo-thermal {
169			polling-delay-passive = <0>;
170			polling-delay = <0>;
171			thermal-sensors = <&pm8150_adc_tm 0>;
172
173			trips {
174				active-config0 {
175					temperature = <50000>;
176					hysteresis = <4000>;
177					type = "passive";
178				};
179			};
180		};
181	};
182
183	vbat: vbat-regulator {
184		compatible = "regulator-fixed";
185		regulator-name = "VBAT";
186		vin-supply = <&vreg_l11c_3p3>;
187		regulator-min-microvolt = <4200000>;
188		regulator-max-microvolt = <4200000>;
189		regulator-always-on;
190	};
191
192	vbat_som: vbat-som-regulator {
193		compatible = "regulator-fixed";
194		regulator-name = "VBAT_SOM";
195		vin-supply = <&dc12v>;
196		regulator-min-microvolt = <4200000>;
197		regulator-max-microvolt = <4200000>;
198		regulator-always-on;
199	};
200
201	vdc_3v3: vdc-3v3-regulator {
202		compatible = "regulator-fixed";
203		regulator-name = "VDC_3V3";
204		vin-supply = <&vreg_l11c_3p3>;
205		regulator-min-microvolt = <3300000>;
206		regulator-max-microvolt = <3300000>;
207		regulator-always-on;
208	};
209
210	vdc_5v: vdc-5v-regulator {
211		compatible = "regulator-fixed";
212		regulator-name = "VDC_5V";
213
214		regulator-min-microvolt = <5000000>;
215		regulator-max-microvolt = <5000000>;
216		regulator-always-on;
217		vin-supply = <&vreg_l11c_3p3>;
218	};
219
220	vph_pwr: vph-pwr-regulator {
221		compatible = "regulator-fixed";
222		regulator-name = "vph_pwr";
223		regulator-min-microvolt = <3700000>;
224		regulator-max-microvolt = <3700000>;
225		regulator-always-on;
226	};
227
228	vreg_s4a_1p8: vreg-s4a-1p8 {
229		compatible = "regulator-fixed";
230		regulator-name = "vreg_s4a_1p8";
231		regulator-min-microvolt = <1800000>;
232		regulator-max-microvolt = <1800000>;
233		regulator-always-on;
234	};
235};
236
237&adsp {
238	status = "okay";
239	firmware-name = "qcom/sm8250/adsp.mbn";
240};
241
242&apps_rsc {
243	regulators-0 {
244		compatible = "qcom,pm8009-1-rpmh-regulators";
245		qcom,pmic-id = "f";
246
247		vdd-s1-supply = <&vph_pwr>;
248		vdd-s2-supply = <&vph_pwr>;
249		vdd-l2-supply = <&vreg_s8c_1p3>;
250		vdd-l5-l6-supply = <&vreg_bob>;
251		vdd-l7-supply = <&vreg_s4a_1p8>;
252
253		vreg_s2f_0p95: smps2 {
254			regulator-name = "vreg_s2f_0p95";
255			regulator-min-microvolt = <900000>;
256			regulator-max-microvolt = <952000>;
257			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
258		};
259
260		vreg_l1f_1p1: ldo1 {
261			regulator-name = "vreg_l1f_1p1";
262			regulator-min-microvolt = <1104000>;
263			regulator-max-microvolt = <1104000>;
264			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
265		};
266
267		vreg_l2f_1p2: ldo2 {
268			regulator-name = "vreg_l2f_1p2";
269			regulator-min-microvolt = <1200000>;
270			regulator-max-microvolt = <1200000>;
271			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
272		};
273
274		vreg_l6f_2p8: ldo6 {
275			regulator-name = "vreg_l6f_2p8";
276			regulator-min-microvolt = <2800000>;
277			regulator-max-microvolt = <2800000>;
278			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
279		};
280
281		vreg_l7f_1p8: ldo7 {
282			regulator-name = "vreg_l7f_1p8";
283			regulator-min-microvolt = <1800000>;
284			regulator-max-microvolt = <1800000>;
285			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
286		};
287	};
288
289	regulators-1 {
290		compatible = "qcom,pm8150-rpmh-regulators";
291		qcom,pmic-id = "a";
292
293		vdd-s1-supply = <&vph_pwr>;
294		vdd-s2-supply = <&vph_pwr>;
295		vdd-s3-supply = <&vph_pwr>;
296		vdd-s4-supply = <&vph_pwr>;
297		vdd-s5-supply = <&vph_pwr>;
298		vdd-s6-supply = <&vph_pwr>;
299		vdd-s7-supply = <&vph_pwr>;
300		vdd-s8-supply = <&vph_pwr>;
301		vdd-s9-supply = <&vph_pwr>;
302		vdd-s10-supply = <&vph_pwr>;
303		vdd-l2-l10-supply = <&vreg_bob>;
304		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p95>;
305		vdd-l6-l9-supply = <&vreg_s8c_1p3>;
306		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
307		vdd-l13-l16-l17-supply = <&vreg_bob>;
308
309		vreg_l2a_3p1: ldo2 {
310			regulator-name = "vreg_l2a_3p1";
311			regulator-min-microvolt = <3072000>;
312			regulator-max-microvolt = <3072000>;
313			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
314		};
315
316		vreg_l3a_0p9: ldo3 {
317			regulator-name = "vreg_l3a_0p9";
318			regulator-min-microvolt = <928000>;
319			regulator-max-microvolt = <932000>;
320			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
321		};
322
323		vreg_l5a_0p88: ldo5 {
324			regulator-name = "vreg_l5a_0p88";
325			regulator-min-microvolt = <880000>;
326			regulator-max-microvolt = <880000>;
327			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
328		};
329
330		vreg_l6a_1p2: ldo6 {
331			regulator-name = "vreg_l6a_1p2";
332			regulator-min-microvolt = <1200000>;
333			regulator-max-microvolt = <1200000>;
334			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
335		};
336
337		vreg_l7a_1p7: ldo7 {
338			regulator-name = "vreg_l7a_1p7";
339			regulator-min-microvolt = <1704000>;
340			regulator-max-microvolt = <1800000>;
341			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
342		};
343
344		vreg_l9a_1p2: ldo9 {
345			regulator-name = "vreg_l9a_1p2";
346			regulator-min-microvolt = <1200000>;
347			regulator-max-microvolt = <1200000>;
348			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
349		};
350
351		vreg_l10a_1p8: ldo10 {
352			regulator-name = "vreg_l10a_1p8";
353			regulator-min-microvolt = <1800000>;
354			regulator-max-microvolt = <1800000>;
355			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
356		};
357
358		vreg_l12a_1p8: ldo12 {
359			regulator-name = "vreg_l12a_1p8";
360			regulator-min-microvolt = <1800000>;
361			regulator-max-microvolt = <1800000>;
362			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
363		};
364
365		vreg_l13a_ts_3p0: ldo13 {
366			regulator-name = "vreg_l13a_ts_3p0";
367			regulator-min-microvolt = <3008000>;
368			regulator-max-microvolt = <3008000>;
369			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
370		};
371
372		vreg_l14a_1p8: ldo14 {
373			regulator-name = "vreg_l14a_1p8";
374			regulator-min-microvolt = <1800000>;
375			regulator-max-microvolt = <1880000>;
376			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
377		};
378
379		vreg_l15a_1p8: ldo15 {
380			regulator-name = "vreg_l15a_1p8";
381			regulator-min-microvolt = <1800000>;
382			regulator-max-microvolt = <1800000>;
383			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
384		};
385
386		vreg_l16a_2p7: ldo16 {
387			regulator-name = "vreg_l16a_2p7";
388			regulator-min-microvolt = <2704000>;
389			regulator-max-microvolt = <2960000>;
390			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
391		};
392
393		vreg_l17a_3p0: ldo17 {
394			regulator-name = "vreg_l17a_3p0";
395			regulator-min-microvolt = <2856000>;
396			regulator-max-microvolt = <3008000>;
397			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
398		};
399
400		vreg_l18a_0p92: ldo18 {
401			regulator-name = "vreg_l18a_0p92";
402			regulator-min-microvolt = <800000>;
403			regulator-max-microvolt = <912000>;
404			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
405		};
406
407		vreg_s5a_1p9: smps5 {
408			regulator-name = "vreg_s5a_1p9";
409			regulator-min-microvolt = <1904000>;
410			regulator-max-microvolt = <2000000>;
411			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
412		};
413
414		vreg_s6a_0p95: smps6 {
415			regulator-name = "vreg_s6a_0p95";
416			regulator-min-microvolt = <920000>;
417			regulator-max-microvolt = <1128000>;
418			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
419		};
420	};
421
422	regulators-2 {
423		compatible = "qcom,pm8150l-rpmh-regulators";
424		qcom,pmic-id = "c";
425
426		vdd-s1-supply = <&vph_pwr>;
427		vdd-s2-supply = <&vph_pwr>;
428		vdd-s3-supply = <&vph_pwr>;
429		vdd-s4-supply = <&vph_pwr>;
430		vdd-s5-supply = <&vph_pwr>;
431		vdd-s6-supply = <&vph_pwr>;
432		vdd-s7-supply = <&vph_pwr>;
433		vdd-s8-supply = <&vph_pwr>;
434		vdd-l1-l8-supply = <&vreg_s4a_1p8>;
435		vdd-l2-l3-supply = <&vreg_s8c_1p3>;
436		vdd-l4-l5-l6-supply = <&vreg_bob>;
437		vdd-l7-l11-supply = <&vreg_bob>;
438		vdd-l9-l10-supply = <&vreg_bob>;
439		vdd-bob-supply = <&vph_pwr>;
440
441		vreg_bob: bob {
442			regulator-name = "vreg_bob";
443			regulator-min-microvolt = <3008000>;
444			regulator-max-microvolt = <4000000>;
445			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
446		};
447
448		vreg_l1c_1p8: ldo1 {
449			regulator-name = "vreg_l1c_1p8";
450			regulator-min-microvolt = <1800000>;
451			regulator-max-microvolt = <1800000>;
452			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
453		};
454
455		vreg_l2c_1p2: ldo2 {
456			regulator-name = "vreg_l2c_1p2";
457			regulator-min-microvolt = <1200000>;
458			regulator-max-microvolt = <1200000>;
459			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
460		};
461
462		vreg_l3c_0p8: ldo3 {
463			regulator-name = "vreg_l3c_0p8";
464			regulator-min-microvolt = <800000>;
465			regulator-max-microvolt = <800000>;
466			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
467		};
468
469		vreg_l4c_1p7: ldo4 {
470			regulator-name = "vreg_l4c_1p7";
471			regulator-min-microvolt = <1704000>;
472			regulator-max-microvolt = <2928000>;
473			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
474		};
475
476		vreg_l5c_1p8: ldo5 {
477			regulator-name = "vreg_l5c_1p8";
478			regulator-min-microvolt = <1800000>;
479			regulator-max-microvolt = <2928000>;
480			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
481		};
482
483		vreg_l6c_2p96: ldo6 {
484			regulator-name = "vreg_l6c_2p96";
485			regulator-min-microvolt = <1800000>;
486			regulator-max-microvolt = <2960000>;
487			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
488		};
489
490		vreg_l7c_cam_vcm0_2p85: ldo7 {
491			regulator-name = "vreg_l7c_cam_vcm0_2p85";
492			regulator-min-microvolt = <2856000>;
493			regulator-max-microvolt = <3104000>;
494			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
495		};
496
497		vreg_l8c_1p8: ldo8 {
498			regulator-name = "vreg_l8c_1p8";
499			regulator-min-microvolt = <1800000>;
500			regulator-max-microvolt = <1800000>;
501			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
502		};
503
504		vreg_l9c_2p96: ldo9 {
505			regulator-name = "vreg_l9c_2p96";
506			regulator-min-microvolt = <2704000>;
507			regulator-max-microvolt = <2960000>;
508			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
509		};
510
511		vreg_l10c_3p0: ldo10 {
512			regulator-name = "vreg_l10c_3p0";
513			regulator-min-microvolt = <3000000>;
514			regulator-max-microvolt = <3000000>;
515			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
516		};
517
518		vreg_l11c_3p3: ldo11 {
519			regulator-name = "vreg_l11c_3p3";
520			regulator-min-microvolt = <3296000>;
521			regulator-max-microvolt = <3296000>;
522			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
523			regulator-always-on;
524		};
525
526		vreg_s8c_1p3: smps8 {
527			regulator-name = "vreg_s8c_1p3";
528			regulator-min-microvolt = <1352000>;
529			regulator-max-microvolt = <1352000>;
530			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
531		};
532	};
533};
534
535&cdsp {
536	status = "okay";
537	firmware-name = "qcom/sm8250/cdsp.mbn";
538};
539
540&gmu {
541	status = "okay";
542};
543
544&gpu {
545	status = "okay";
546
547	zap-shader {
548		memory-region = <&gpu_mem>;
549		firmware-name = "qcom/sm8250/a650_zap.mbn";
550	};
551};
552
553/* LS-I2C0 */
554&i2c4 {
555	status = "okay";
556};
557
558&i2c5 {
559	status = "okay";
560	clock-frequency = <400000>;
561
562	lt9611_codec: hdmi-bridge@2b {
563		compatible = "lontium,lt9611uxc";
564		reg = <0x2b>;
565		#sound-dai-cells = <1>;
566
567		interrupts-extended = <&tlmm 63 IRQ_TYPE_EDGE_FALLING>;
568
569		reset-gpios = <&pm8150l_gpios 5 GPIO_ACTIVE_HIGH>;
570
571		vdd-supply = <&lt9611_1v2>;
572		vcc-supply = <&lt9611_3v3>;
573
574		pinctrl-names = "default";
575		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
576
577		ports {
578			#address-cells = <1>;
579			#size-cells = <0>;
580
581			port@0 {
582				reg = <0>;
583
584				lt9611_a: endpoint {
585					remote-endpoint = <&mdss_dsi0_out>;
586				};
587			};
588
589#if 0
590			port@1 {
591				reg = <1>;
592
593				lt9611_b: endpoint {
594					remote-endpoint = <&mdss_dsi1_out>;
595				};
596			};
597#endif
598
599			port@2 {
600				reg = <2>;
601
602				lt9611_out: endpoint {
603					remote-endpoint = <&hdmi_con>;
604				};
605			};
606
607		};
608	};
609};
610
611/* LS-I2C1 */
612&i2c15 {
613	status = "okay";
614
615	typec-mux@1c {
616		compatible = "onnn,nb7vpq904m";
617		reg = <0x1c>;
618
619		vcc-supply = <&vreg_s4a_1p8>;
620
621		retimer-switch;
622		orientation-switch;
623
624		ports {
625			#address-cells = <1>;
626			#size-cells = <0>;
627
628			port@0 {
629				reg = <0>;
630
631				redriver_usb_con_ss: endpoint {
632					remote-endpoint = <&pm8150b_typec_mux_in>;
633				};
634			};
635
636			port@1 {
637				reg = <1>;
638
639				redriver_phy_con_ss: endpoint {
640					remote-endpoint = <&usb_1_qmpphy_out>;
641					data-lanes = <0 1 2 3>;
642				};
643			};
644
645			port@2 {
646				reg = <2>;
647
648				redriver_usb_con_sbu: endpoint {
649					remote-endpoint = <&pm8150b_typec_sbu_out>;
650				};
651			};
652		};
653	};
654};
655
656&mdss {
657	status = "okay";
658};
659
660&mdss_dp {
661	status = "okay";
662};
663
664&mdss_dp_out {
665	data-lanes = <0 1>;
666	remote-endpoint = <&usb_1_qmpphy_dp_in>;
667};
668
669&mdss_dsi0 {
670	status = "okay";
671	vdda-supply = <&vreg_l9a_1p2>;
672
673#if 0
674	qcom,dual-dsi-mode;
675	qcom,master-dsi;
676#endif
677
678	ports {
679		port@1 {
680			endpoint {
681				remote-endpoint = <&lt9611_a>;
682				data-lanes = <0 1 2 3>;
683			};
684		};
685	};
686};
687
688&mdss_dsi0_phy {
689	status = "okay";
690	vdds-supply = <&vreg_l5a_0p88>;
691};
692
693&pm8150_adc {
694	channel@4c {
695		reg = <ADC5_XO_THERM_100K_PU>;
696		qcom,ratiometric;
697		qcom,hw-settle-time = <200>;
698		label = "xo_therm";
699	};
700
701	channel@4e {
702		reg = <ADC5_AMUX_THM2_100K_PU>;
703		qcom,ratiometric;
704		qcom,hw-settle-time = <200>;
705		label = "wifi_therm";
706	};
707};
708
709&pm8150_adc_tm {
710	status = "okay";
711
712	xo-therm@0 {
713		reg = <0>;
714		io-channels = <&pm8150_adc ADC5_XO_THERM_100K_PU>;
715		qcom,ratiometric;
716		qcom,hw-settle-time-us = <200>;
717	};
718
719	wifi-therm@1 {
720		reg = <1>;
721		io-channels = <&pm8150_adc ADC5_AMUX_THM2_100K_PU>;
722		qcom,ratiometric;
723		qcom,hw-settle-time-us = <200>;
724	};
725};
726
727&pcie0 {
728	status = "okay";
729};
730
731&pcie0_phy {
732	status = "okay";
733	vdda-phy-supply = <&vreg_l5a_0p88>;
734	vdda-pll-supply = <&vreg_l9a_1p2>;
735};
736
737&pcie1 {
738	status = "okay";
739};
740
741&pcie1_phy {
742	status = "okay";
743	vdda-phy-supply = <&vreg_l5a_0p88>;
744	vdda-pll-supply = <&vreg_l9a_1p2>;
745};
746
747&pcie2 {
748	status = "okay";
749};
750
751&pcie2_phy {
752	status = "okay";
753	vdda-phy-supply = <&vreg_l5a_0p88>;
754	vdda-pll-supply = <&vreg_l9a_1p2>;
755};
756
757&pm8150_gpios {
758	gpio-reserved-ranges = <1 1>, <3 2>, <7 1>;
759	gpio-line-names =
760		"NC",
761		"OPTION2",
762		"PM_GPIO-F",
763		"PM_SLP_CLK_IN",
764		"OPTION1",
765		"VOL_UP_N",
766		"PM8250_GPIO7", /* Blue LED */
767		"SP_ARI_PWR_ALARM",
768		"GPIO_9_P", /* Yellow LED */
769		"GPIO_10_P"; /* Green LED */
770};
771
772&pm8150b_adc {
773	channel@4f {
774		reg = <ADC5_AMUX_THM3_100K_PU>;
775		qcom,ratiometric;
776		qcom,hw-settle-time = <200>;
777		label = "conn_therm";
778	};
779};
780
781&pm8150b_adc_tm {
782	status = "okay";
783
784	conn-therm@0 {
785		reg = <0>;
786		io-channels = <&pm8150b_adc ADC5_AMUX_THM3_100K_PU>;
787		qcom,ratiometric;
788		qcom,hw-settle-time-us = <200>;
789	};
790};
791
792&pm8150b_gpios {
793	gpio-line-names =
794		"NC",
795		"NC",
796		"NC",
797		"NC",
798		"HAP_BOOST_EN", /* SOM */
799		"SMB_STAT", /* SOM */
800		"NC",
801		"NC",
802		"SDM_FORCE_USB_BOOT",
803		"NC",
804		"NC",
805		"NC";
806};
807
808&pm8150l_adc {
809	channel@4e {
810		reg = <ADC5_AMUX_THM2_100K_PU>;
811		qcom,ratiometric;
812		qcom,hw-settle-time = <200>;
813		label = "skin_msm_therm";
814	};
815
816	channel@4f {
817		reg = <ADC5_AMUX_THM3_100K_PU>;
818		qcom,ratiometric;
819		qcom,hw-settle-time = <200>;
820		label = "pm8150l_therm";
821	};
822};
823
824&pm8150l_adc_tm {
825	status = "okay";
826
827	skin-msm-therm@0 {
828		reg = <0>;
829		io-channels = <&pm8150l_adc ADC5_AMUX_THM2_100K_PU>;
830		qcom,ratiometric;
831		qcom,hw-settle-time-us = <200>;
832	};
833
834	pm8150l-therm@1 {
835		reg = <1>;
836		io-channels = <&pm8150l_adc ADC5_AMUX_THM3_100K_PU>;
837		qcom,ratiometric;
838		qcom,hw-settle-time-us = <200>;
839	};
840};
841
842&pm8150l_gpios {
843	gpio-line-names =
844		"NC",
845		"PM3003A_EN",
846		"NC",
847		"NC",
848		"PM_GPIO5", /* HDMI RST_N */
849		"PM_GPIO-A", /* PWM */
850		"PM_GPIO7",
851		"NC",
852		"NC",
853		"PM_GPIO-B",
854		"NC",
855		"PM3003A_MODE";
856
857	lt9611_rst_pin: lt9611-rst-state {
858		pins = "gpio5";
859		function = "normal";
860
861		output-high;
862		input-disable;
863		power-source = <0>;
864	};
865};
866
867&pm8150l_lpg {
868	status = "okay";
869
870	#address-cells = <1>;
871	#size-cells = <0>;
872
873	led@1 {
874		reg = <1>;
875		color = <LED_COLOR_ID_GREEN>;
876		function = LED_FUNCTION_HEARTBEAT;
877		function-enumerator = <3>;
878
879		linux,default-trigger = "heartbeat";
880		default-state = "on";
881	};
882
883	led@2 {
884		reg = <2>;
885		color = <LED_COLOR_ID_GREEN>;
886		function = LED_FUNCTION_INDICATOR;
887		function-enumerator = <2>;
888		default-state = "on";
889	};
890
891	led@3 {
892		reg = <3>;
893		color = <LED_COLOR_ID_GREEN>;
894		function = LED_FUNCTION_INDICATOR;
895		function-enumerator = <1>;
896	};
897};
898
899&pon_pwrkey {
900	status = "okay";
901};
902
903&pon_resin {
904	status = "okay";
905
906	linux,code = <KEY_VOLUMEDOWN>;
907};
908
909&qupv3_id_0 {
910	status = "okay";
911};
912
913&qupv3_id_1 {
914	status = "okay";
915};
916
917&qupv3_id_2 {
918	status = "okay";
919};
920
921&q6afedai {
922	dai@16 {
923		reg = <PRIMARY_MI2S_RX>;
924		qcom,sd-lines = <0 1 2 3>;
925	};
926};
927
928/* TERT I2S Uses 1 I2S SD Lines for audio on LT9611 HDMI Bridge */
929&q6afedai {
930	dai@20 {
931		reg = <TERTIARY_MI2S_RX>;
932		qcom,sd-lines = <0>;
933	};
934};
935
936&q6asmdai {
937	dai@0 {
938		reg = <0>;
939	};
940
941	dai@1 {
942		reg = <1>;
943	};
944
945	dai@2 {
946		reg = <2>;
947	};
948};
949
950&sdhc_2 {
951	status = "okay";
952	pinctrl-names = "default";
953	pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
954	vmmc-supply = <&vreg_l9c_2p96>;
955	vqmmc-supply = <&vreg_l6c_2p96>;
956	cd-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
957	bus-width = <4>;
958	no-sdio;
959	no-mmc;
960};
961
962&sound {
963	compatible = "qcom,qrb5165-rb5-sndcard";
964	pinctrl-0 = <&tert_mi2s_active>;
965	pinctrl-names = "default";
966	model = "Qualcomm-RB5-WSA8815-Speakers-DMIC0";
967	audio-routing =
968		"SpkrLeft IN", "WSA_SPK1 OUT",
969		"SpkrRight IN", "WSA_SPK2 OUT",
970		"VA DMIC0", "vdd-micb",
971		"VA DMIC1", "vdd-micb",
972		"MM_DL1",  "MultiMedia1 Playback",
973		"MM_DL2",  "MultiMedia2 Playback",
974		"MultiMedia3 Capture", "MM_UL3";
975
976	mm1-dai-link {
977		link-name = "MultiMedia1";
978		cpu {
979			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
980		};
981	};
982
983	mm2-dai-link {
984		link-name = "MultiMedia2";
985		cpu {
986			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
987		};
988	};
989
990	mm3-dai-link {
991		link-name = "MultiMedia3";
992		cpu {
993			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
994		};
995	};
996
997	hdmi-dai-link {
998		link-name = "HDMI Playback";
999		cpu {
1000			sound-dai = <&q6afedai TERTIARY_MI2S_RX>;
1001		};
1002
1003		platform {
1004			sound-dai = <&q6routing>;
1005		};
1006
1007		codec {
1008			sound-dai = <&lt9611_codec 0>;
1009		};
1010	};
1011
1012	dma-dai-link {
1013		link-name = "WSA Playback";
1014		cpu {
1015			sound-dai = <&q6afedai WSA_CODEC_DMA_RX_0>;
1016		};
1017
1018		platform {
1019			sound-dai = <&q6routing>;
1020		};
1021
1022		codec {
1023			sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro 0>;
1024		};
1025	};
1026
1027	va-dai-link {
1028		link-name = "VA Capture";
1029		cpu {
1030			sound-dai = <&q6afedai VA_CODEC_DMA_TX_0>;
1031		};
1032
1033		platform {
1034			sound-dai = <&q6routing>;
1035		};
1036
1037		codec {
1038			sound-dai = <&vamacro 0>;
1039		};
1040	};
1041};
1042
1043/* CAN */
1044&spi0 {
1045	status = "okay";
1046	pinctrl-names = "default";
1047	pinctrl-0 = <&qup_spi0_data_clk>, <&qup_spi0_cs_gpio>;
1048	cs-gpios = <&tlmm 31 GPIO_ACTIVE_LOW>;
1049
1050	can@0 {
1051		compatible = "microchip,mcp2518fd";
1052		reg = <0>;
1053		clocks = <&clk40M>;
1054		interrupts-extended = <&tlmm 15 IRQ_TYPE_LEVEL_LOW>;
1055		spi-max-frequency = <10000000>;
1056		vdd-supply = <&vdc_5v>;
1057		xceiver-supply = <&vdc_5v>;
1058	};
1059};
1060
1061&swr0 {
1062	status = "okay";
1063
1064	left_spkr: speaker@0,3 {
1065		compatible = "sdw10217211000";
1066		reg = <0 3>;
1067		powerdown-gpios = <&tlmm 130 GPIO_ACTIVE_LOW>;
1068		#thermal-sensor-cells = <0>;
1069		sound-name-prefix = "SpkrLeft";
1070		#sound-dai-cells = <0>;
1071	};
1072
1073	right_spkr: speaker@0,4 {
1074		compatible = "sdw10217211000";
1075		reg = <0 4>;
1076		powerdown-gpios = <&tlmm 130 GPIO_ACTIVE_LOW>;
1077		#thermal-sensor-cells = <0>;
1078		sound-name-prefix = "SpkrRight";
1079		#sound-dai-cells = <0>;
1080	};
1081};
1082
1083&tlmm {
1084	gpio-reserved-ranges = <40 4>;
1085	gpio-line-names =
1086		"GPIO-MM",
1087		"GPIO-NN",
1088		"GPIO-OO",
1089		"GPIO-PP",
1090		"GPIO-A",
1091		"GPIO-C",
1092		"GPIO-E",
1093		"GPIO-D",
1094		"I2C0-SDA",
1095		"I2C0-SCL",
1096		"GPIO-TT", /* GPIO_10 */
1097		"NC",
1098		"GPIO_12_I2C_SDA",
1099		"GPIO_13_I2C_SCL",
1100		"GPIO-X",
1101		"GPIO_15_RGMII_INT",
1102		"HST_BT_UART_CTS",
1103		"HST_BT_UART_RFR",
1104		"HST_BT_UART_TX",
1105		"HST_BT_UART_RX",
1106		"HST_WLAN_EN", /* GPIO_20 */
1107		"HST_BT_EN",
1108		"GPIO-AAA",
1109		"GPIO-BBB",
1110		"GPIO-CCC",
1111		"GPIO-Z",
1112		"GPIO-DDD",
1113		"GPIO-BB",
1114		"GPIO_28_CAN_SPI_MISO",
1115		"GPIO_29_CAN_SPI_MOSI",
1116		"GPIO_30_CAN_SPI_CLK", /* GPIO_30 */
1117		"GPIO_31_CAN_SPI_CS",
1118		"GPIO-UU",
1119		"NC",
1120		"UART1_TXD_SOM",
1121		"UART1_RXD_SOM",
1122		"UART0_CTS",
1123		"UART0_RTS",
1124		"UART0_TXD",
1125		"UART0_RXD",
1126		"SPI1_MISO", /* GPIO_40 */
1127		"SPI1_MOSI",
1128		"SPI1_CLK",
1129		"SPI1_CS",
1130		"I2C1_SDA",
1131		"I2C1_SCL",
1132		"GPIO-F",
1133		"GPIO-JJ",
1134		"Board_ID1",
1135		"Board_ID2",
1136		"NC", /* GPIO_50 */
1137		"NC",
1138		"SPI0_MISO",
1139		"SPI0_MOSI",
1140		"SPI0_SCLK",
1141		"SPI0_CS",
1142		"GPIO-QQ",
1143		"GPIO-RR",
1144		"USB2LAN_RESET",
1145		"USB2LAN_EXTWAKE",
1146		"NC", /* GPIO_60 */
1147		"NC",
1148		"NC",
1149		"LT9611_INT",
1150		"GPIO-AA",
1151		"USB_CC_DIR",
1152		"GPIO-G",
1153		"GPIO-LL",
1154		"USB_DP_HPD_1P8",
1155		"NC",
1156		"NC", /* GPIO_70 */
1157		"SD_CMD",
1158		"SD_DAT3",
1159		"SD_SCLK",
1160		"SD_DAT2",
1161		"SD_DAT1",
1162		"SD_DAT0", /* BOOT_CFG3 */
1163		"SD_UFS_CARD_DET_N",
1164		"GPIO-II",
1165		"PCIE0_RST_N",
1166		"PCIE0_CLK_REQ_N", /* GPIO_80 */
1167		"PCIE0_WAKE_N",
1168		"GPIO-CC",
1169		"GPIO-DD",
1170		"GPIO-EE",
1171		"GPIO-FF",
1172		"GPIO-GG",
1173		"GPIO-HH",
1174		"GPIO-VV",
1175		"GPIO-WW",
1176		"NC", /* GPIO_90 */
1177		"NC",
1178		"GPIO-K",
1179		"GPIO-I",
1180		"CSI0_MCLK",
1181		"CSI1_MCLK",
1182		"CSI2_MCLK",
1183		"CSI3_MCLK",
1184		"GPIO-AA", /* CSI4_MCLK */
1185		"GPIO-BB", /* CSI5_MCLK */
1186		"GPIO-KK", /* GPIO_100 */
1187		"CCI_I2C_SDA0",
1188		"CCI_I2C_SCL0",
1189		"CCI_I2C_SDA1",
1190		"CCI_I2C_SCL1",
1191		"CCI_I2C_SDA2",
1192		"CCI_I2C_SCL2",
1193		"CCI_I2C_SDA3",
1194		"CCI_I2C_SCL3",
1195		"GPIO-L",
1196		"NC", /* GPIO_110 */
1197		"NC",
1198		"ACCEL_INT",
1199		"GYRO_INT",
1200		"GPIO-J",
1201		"GPIO-YY",
1202		"GPIO-H",
1203		"GPIO-ZZ",
1204		"NC",
1205		"NC",
1206		"NC", /* GPIO_120 */
1207		"NC",
1208		"MAG_INT",
1209		"MAG_DRDY_INT",
1210		"HST_SW_CTRL",
1211		"GPIO-M",
1212		"GPIO-N",
1213		"GPIO-O",
1214		"GPIO-P",
1215		"PS_INT",
1216		"WSA1_EN", /* GPIO_130 */
1217		"USB_HUB_RESET",
1218		"SDM_FORCE_USB_BOOT",
1219		"I2S1_CLK_HDMI",
1220		"I2S1_DATA0_HDMI",
1221		"I2S1_WS_HDMI",
1222		"GPIO-B",
1223		"GPIO_137", /* To LT9611_I2S_MCLK_3V3 */
1224		"PCM_CLK",
1225		"PCM_DI",
1226		"PCM_DO", /* GPIO_140 */
1227		"PCM_FS",
1228		"HST_SLIM_CLK",
1229		"HST_SLIM_DATA",
1230		"GPIO-U",
1231		"GPIO-Y",
1232		"GPIO-R",
1233		"GPIO-Q",
1234		"GPIO-S",
1235		"GPIO-T",
1236		"GPIO-V", /* GPIO_150 */
1237		"GPIO-W",
1238		"DMIC_CLK1",
1239		"DMIC_DATA1",
1240		"DMIC_CLK2",
1241		"DMIC_DATA2",
1242		"WSA_SWR_CLK",
1243		"WSA_SWR_DATA",
1244		"DMIC_CLK3",
1245		"DMIC_DATA3",
1246		"I2C4_SDA", /* GPIO_160 */
1247		"I2C4_SCL",
1248		"SPI3_CS1",
1249		"SPI3_CS2",
1250		"SPI2_MISO_LS3",
1251		"SPI2_MOSI_LS3",
1252		"SPI2_CLK_LS3",
1253		"SPI2_ACCEL_CS_LS3",
1254		"SPI2_CS1",
1255		"NC",
1256		"GPIO-SS", /* GPIO_170 */
1257		"GPIO-XX",
1258		"SPI3_MISO",
1259		"SPI3_MOSI",
1260		"SPI3_CLK",
1261		"SPI3_CS",
1262		"HST_BLE_SNS_UART_TX",
1263		"HST_BLE_SNS_UART_RX",
1264		"HST_WLAN_UART_TX",
1265		"HST_WLAN_UART_RX";
1266
1267	bt_en_state: bt-default-state {
1268		pins = "gpio21";
1269		function = "gpio";
1270		drive-strength = <16>;
1271		output-low;
1272		bias-pull-up;
1273	};
1274
1275	lt9611_irq_pin: lt9611-irq-state {
1276		pins = "gpio63";
1277		function = "gpio";
1278		bias-disable;
1279	};
1280
1281	sdc2_default_state: sdc2-default-state {
1282		clk-pins {
1283			pins = "sdc2_clk";
1284			bias-disable;
1285			drive-strength = <16>;
1286		};
1287
1288		cmd-pins {
1289			pins = "sdc2_cmd";
1290			bias-pull-up;
1291			drive-strength = <10>;
1292		};
1293
1294		data-pins {
1295			pins = "sdc2_data";
1296			bias-pull-up;
1297			drive-strength = <10>;
1298		};
1299	};
1300
1301	sdc2_card_det_n: sd-card-det-n-state {
1302		pins = "gpio77";
1303		function = "gpio";
1304		bias-pull-up;
1305	};
1306};
1307
1308&uart6 {
1309	status = "okay";
1310
1311	bluetooth {
1312		compatible = "qcom,qca6390-bt";
1313
1314		pinctrl-names = "default";
1315		pinctrl-0 = <&bt_en_state>;
1316
1317		enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
1318
1319		vddio-supply = <&vreg_s4a_1p8>;
1320		vddpmu-supply = <&vreg_s2f_0p95>;
1321		vddaon-supply = <&vreg_s6a_0p95>;
1322		vddrfa0p9-supply = <&vreg_s2f_0p95>;
1323		vddrfa1p3-supply = <&vreg_s8c_1p3>;
1324		vddrfa1p9-supply = <&vreg_s5a_1p9>;
1325	};
1326};
1327
1328&uart12 {
1329	status = "okay";
1330};
1331
1332&ufs_mem_hc {
1333	status = "okay";
1334
1335	vcc-supply = <&vreg_l17a_3p0>;
1336	vcc-max-microamp = <800000>;
1337	vccq-supply = <&vreg_l6a_1p2>;
1338	vccq-max-microamp = <800000>;
1339	vccq2-supply = <&vreg_s4a_1p8>;
1340	vccq2-max-microamp = <800000>;
1341};
1342
1343&ufs_mem_phy {
1344	status = "okay";
1345
1346	vdda-phy-supply = <&vreg_l5a_0p88>;
1347	vdda-pll-supply = <&vreg_l9a_1p2>;
1348};
1349
1350&usb_1 {
1351	status = "okay";
1352};
1353
1354&usb_1_dwc3 {
1355	dr_mode = "otg";
1356	usb-role-switch;
1357};
1358
1359&usb_1_role_switch_out {
1360	remote-endpoint = <&pm8150b_role_switch_in>;
1361};
1362
1363&usb_1_hsphy {
1364	status = "okay";
1365
1366	vdda-pll-supply = <&vreg_l5a_0p88>;
1367	vdda33-supply = <&vreg_l2a_3p1>;
1368	vdda18-supply = <&vreg_l12a_1p8>;
1369};
1370
1371&usb_1_qmpphy {
1372	status = "okay";
1373
1374	vdda-phy-supply = <&vreg_l9a_1p2>;
1375	vdda-pll-supply = <&vreg_l18a_0p92>;
1376	orientation-switch;
1377};
1378
1379&usb_1_qmpphy_out {
1380	remote-endpoint = <&redriver_phy_con_ss>;
1381};
1382
1383&usb_2 {
1384	status = "okay";
1385};
1386
1387&usb_2_dwc3 {
1388	dr_mode = "host";
1389};
1390
1391&usb_2_hsphy {
1392	status = "okay";
1393
1394	vdda-pll-supply = <&vreg_l5a_0p88>;
1395	vdda33-supply = <&vreg_l2a_3p1>;
1396	vdda18-supply = <&vreg_l12a_1p8>;
1397};
1398
1399&usb_2_qmpphy {
1400	status = "okay";
1401
1402	vdda-phy-supply = <&vreg_l9a_1p2>;
1403	vdda-pll-supply = <&vreg_l18a_0p92>;
1404};
1405
1406&vamacro {
1407	pinctrl-0 = <&dmic01_active>;
1408	pinctrl-names = "default";
1409	vdd-micb-supply = <&vreg_s4a_1p8>;
1410	qcom,dmic-sample-rate = <600000>;
1411};
1412
1413&venus {
1414	status = "okay";
1415};
1416
1417&wsamacro {
1418	status = "okay";
1419};
1420
1421/* PINCTRL - additions to nodes defined in sm8250.dtsi */
1422&qup_spi0_cs_gpio {
1423	drive-strength = <6>;
1424	bias-disable;
1425};
1426
1427&qup_spi0_data_clk {
1428	drive-strength = <6>;
1429	bias-disable;
1430};
1431
1432&pm8150b_vbus {
1433	regulator-min-microamp = <500000>;
1434	regulator-max-microamp = <3000000>;
1435	status = "okay";
1436};
1437
1438&pm8150b_typec {
1439	status = "okay";
1440
1441	vdd-pdphy-supply = <&vreg_l2a_3p1>;
1442
1443	connector {
1444		compatible = "usb-c-connector";
1445
1446		power-role = "source";
1447		data-role = "dual";
1448		self-powered;
1449
1450		source-pdos = <PDO_FIXED(5000, 3000,
1451					 PDO_FIXED_DUAL_ROLE |
1452					 PDO_FIXED_USB_COMM |
1453					 PDO_FIXED_DATA_SWAP)>;
1454
1455		altmodes {
1456			displayport {
1457				svid = /bits/ 16 <0xff01>;
1458				vdo = <0x00001c46>;
1459			};
1460		};
1461
1462		ports {
1463			#address-cells = <1>;
1464			#size-cells = <0>;
1465
1466			port@0 {
1467				reg = <0>;
1468				pm8150b_role_switch_in: endpoint {
1469					remote-endpoint = <&usb_1_role_switch_out>;
1470				};
1471			};
1472
1473			port@1 {
1474				reg = <1>;
1475				pm8150b_typec_mux_in: endpoint {
1476					remote-endpoint = <&redriver_usb_con_ss>;
1477				};
1478			};
1479
1480			port@2 {
1481				reg = <2>;
1482
1483				pm8150b_typec_sbu_out: endpoint {
1484					remote-endpoint = <&redriver_usb_con_sbu>;
1485				};
1486			};
1487		};
1488	};
1489};
1490
1491&usb_1_qmpphy_dp_in {
1492	remote-endpoint = <&mdss_dp_out>;
1493};
1494