blob: cd0db4f31d4af915058d2a817cc397d3cc5f40e7 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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;
Tom Rini93743d22024-04-01 09:08:13 -040026 serial1 = &uart6;
Tom Rini53633a82024-02-29 12:33:36 -050027 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>;
Tom Rini53633a82024-02-29 12:33:36 -050068 default-state = "off";
Tom Rini93743d22024-04-01 09:08:13 -040069 panic-indicator;
Tom Rini53633a82024-02-29 12:33:36 -050070 };
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
Tom Rini93743d22024-04-01 09:08:13 -04001267 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
Tom Rini53633a82024-02-29 12:33:36 -05001275 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
Tom Rini93743d22024-04-01 09:08:13 -04001308&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
Tom Rini53633a82024-02-29 12:33:36 -05001328&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 {
Tom Rini93743d22024-04-01 09:08:13 -04001457 svid = /bits/ 16 <0xff01>;
Tom Rini53633a82024-02-29 12:33:36 -05001458 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};