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