xref: /linux/arch/arm64/boot/dts/qcom/lemans-evk.dts (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2024-2025, Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/pwm/pwm.h>
10#include <dt-bindings/sound/qcom,q6afe.h>
11#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
12
13#include "lemans.dtsi"
14#include "lemans-pmics.dtsi"
15
16/ {
17	model = "Qualcomm Technologies, Inc. Lemans EVK";
18	compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";
19
20	aliases {
21		ethernet0 = &ethernet0;
22		mmc1 = &sdhc;
23		serial0 = &uart10;
24		serial1 = &uart17;
25		serial2 = &uart0;
26	};
27
28	dmic: audio-codec-0 {
29		compatible = "dmic-codec";
30		#sound-dai-cells = <0>;
31		num-channels = <1>;
32	};
33
34	max98357a: audio-codec-1 {
35		compatible = "maxim,max98357a";
36		#sound-dai-cells = <0>;
37	};
38
39	chosen {
40		stdout-path = "serial0:115200n8";
41	};
42
43	connector-0 {
44		compatible = "usb-c-connector";
45		label = "USB0-Type-C";
46		data-role = "dual";
47		power-role = "dual";
48
49		vbus-supply = <&usb0_vbus>;
50
51		ports {
52			#address-cells = <1>;
53			#size-cells = <0>;
54
55			port@0 {
56				reg = <0>;
57
58				usb0_con_hs_ep: endpoint {
59					remote-endpoint = <&usb_0_dwc3_hs>;
60				};
61			};
62
63			port@1 {
64				reg = <1>;
65
66				usb0_con_ss_ep: endpoint {
67					remote-endpoint = <&hd3ss3220_0_in_ep>;
68				};
69			};
70		};
71	};
72
73	connector-1 {
74		compatible = "usb-c-connector";
75		label = "USB1-Type-C";
76		data-role = "host";
77		power-role = "source";
78
79		vbus-supply = <&usb1_vbus>;
80
81		ports {
82			#address-cells = <1>;
83			#size-cells = <0>;
84
85			port@0 {
86				reg = <0>;
87
88				usb1_con_hs_ep: endpoint {
89					remote-endpoint = <&usb_hub_2_1>;
90				};
91			};
92
93			port@1 {
94				reg = <1>;
95
96				usb1_con_ss_ep: endpoint {
97					remote-endpoint = <&hd3ss3220_1_in_ep>;
98				};
99
100			};
101		};
102	};
103
104	connector-2 {
105		compatible = "gpio-usb-b-connector", "usb-b-connector";
106		label = "micro-USB";
107		type = "micro";
108
109		id-gpios = <&pmm8654au_2_gpios 11 GPIO_ACTIVE_HIGH>;
110		vbus-gpios = <&expander3 3 GPIO_ACTIVE_HIGH>;
111		vbus-supply = <&usb2_vbus>;
112
113		pinctrl-0 = <&usb2_id>;
114		pinctrl-names = "default";
115
116		port {
117			usb2_con_hs_ep: endpoint {
118				remote-endpoint = <&usb_2_dwc3_hs>;
119			};
120		};
121	};
122
123	connector-3 {
124		compatible = "pcie-m2-e-connector";
125		vpcie3v3-supply = <&vreg_wcn_3p3>;
126
127		ports {
128			#address-cells = <1>;
129			#size-cells = <0>;
130
131			port@0 {
132				reg = <0>;
133				#address-cells = <1>;
134				#size-cells = <0>;
135
136				m2_e_pcie_ep: endpoint@0 {
137					reg = <0>;
138					remote-endpoint = <&pcieport0_ep>;
139				};
140			};
141
142			port@3 {
143				reg = <3>;
144				#address-cells = <1>;
145				#size-cells = <0>;
146
147				m2_e_uart_ep: endpoint@0 {
148					reg = <0>;
149					remote-endpoint = <&uart17_ep>;
150				};
151			};
152		};
153	};
154
155	edp0-connector {
156		compatible = "dp-connector";
157		label = "EDP0";
158		type = "mini";
159
160		port {
161			edp0_connector_in: endpoint {
162				remote-endpoint = <&mdss0_dp0_out>;
163			};
164		};
165	};
166
167	edp1-connector {
168		compatible = "dp-connector";
169		label = "EDP1";
170		type = "mini";
171
172		port {
173			edp1_connector_in: endpoint {
174				remote-endpoint = <&mdss0_dp1_out>;
175			};
176		};
177	};
178
179	sound {
180		compatible = "qcom,qcs9100-sndcard";
181		model = "LEMANS-EVK";
182
183		pinctrl-0 = <&hs0_mi2s_active>, <&hs2_mi2s_active>;
184		pinctrl-names = "default";
185
186		hs0-mi2s-playback-dai-link {
187			link-name = "HS0 MI2S Playback";
188
189			codec {
190				sound-dai = <&max98357a>;
191			};
192
193			cpu {
194				sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
195			};
196
197			platform {
198				sound-dai = <&q6apm>;
199			};
200		};
201
202		hs2-mi2s-capture-dai-link {
203			link-name = "HS2 MI2S Capture";
204
205			codec {
206				sound-dai = <&dmic>;
207			};
208
209			cpu {
210				sound-dai = <&q6apmbedai TERTIARY_MI2S_TX>;
211			};
212
213			platform {
214				sound-dai = <&q6apm>;
215			};
216		};
217	};
218
219	usb0_vbus: regulator-usb0-vbus {
220		compatible = "regulator-fixed";
221		regulator-name = "usb0_vbus";
222		gpio = <&expander1 2 GPIO_ACTIVE_HIGH>;
223		regulator-min-microvolt = <5000000>;
224		regulator-max-microvolt = <5000000>;
225		enable-active-high;
226	};
227
228	usb1_vbus: regulator-usb1-vbus {
229		compatible = "regulator-fixed";
230		regulator-name = "usb1_vbus";
231		gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
232		regulator-min-microvolt = <5000000>;
233		regulator-max-microvolt = <5000000>;
234		enable-active-high;
235	};
236
237	usb2_vbus: regulator-usb2-vbus {
238		compatible = "regulator-fixed";
239		regulator-name = "usb2_vbus";
240		gpio = <&pmm8654au_1_gpios 9 GPIO_ACTIVE_HIGH>;
241		regulator-min-microvolt = <5000000>;
242		regulator-max-microvolt = <5000000>;
243		enable-active-high;
244	};
245
246	vmmc_sdc: regulator-vmmc-sdc {
247		compatible = "regulator-fixed";
248
249		regulator-name = "vmmc_sdc";
250		regulator-min-microvolt = <2950000>;
251		regulator-max-microvolt = <2950000>;
252	};
253
254	vreg_dcin_12v: regulator-dcin-12v {
255		compatible = "regulator-fixed";
256
257		regulator-name = "VREG_DCIN_12V";
258		regulator-min-microvolt = <12000000>;
259		regulator-max-microvolt = <12000000>;
260
261		regulator-always-on;
262		regulator-boot-on;
263	};
264
265	vreg_sdc: regulator-vreg-sdc {
266		compatible = "regulator-gpio";
267
268		regulator-name = "vreg_sdc";
269		regulator-type = "voltage";
270		regulator-min-microvolt = <1800000>;
271		regulator-max-microvolt = <2950000>;
272
273		gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
274		states = <1800000 1>, <2950000 0>;
275
276		startup-delay-us = <100>;
277	};
278
279	vreg_wcn_3p3: regulator-wcn-3p3 {
280		compatible = "regulator-fixed";
281
282		regulator-name = "VREG_WCN_3P3";
283		regulator-min-microvolt = <3300000>;
284		regulator-max-microvolt = <3300000>;
285
286		vin-supply = <&vreg_dcin_12v>;
287
288		regulator-always-on;
289		regulator-boot-on;
290	};
291};
292
293&apps_rsc {
294	regulators-0 {
295		compatible = "qcom,pmm8654au-rpmh-regulators";
296		qcom,pmic-id = "a";
297
298		vreg_s4a: smps4 {
299			regulator-name = "vreg_s4a";
300			regulator-min-microvolt = <1800000>;
301			regulator-max-microvolt = <1816000>;
302			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
303		};
304
305		vreg_s5a: smps5 {
306			regulator-name = "vreg_s5a";
307			regulator-min-microvolt = <1850000>;
308			regulator-max-microvolt = <1996000>;
309			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
310		};
311
312		vreg_s9a: smps9 {
313			regulator-name = "vreg_s9a";
314			regulator-min-microvolt = <535000>;
315			regulator-max-microvolt = <1120000>;
316			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
317		};
318
319		vreg_l4a: ldo4 {
320			regulator-name = "vreg_l4a";
321			regulator-min-microvolt = <788000>;
322			regulator-max-microvolt = <1050000>;
323			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
324			regulator-allow-set-load;
325			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
326						   RPMH_REGULATOR_MODE_HPM>;
327		};
328
329		vreg_l5a: ldo5 {
330			regulator-name = "vreg_l5a";
331			regulator-min-microvolt = <870000>;
332			regulator-max-microvolt = <950000>;
333			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
334			regulator-allow-set-load;
335			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
336						   RPMH_REGULATOR_MODE_HPM>;
337		};
338
339		vreg_l6a: ldo6 {
340			regulator-name = "vreg_l6a";
341			regulator-min-microvolt = <870000>;
342			regulator-max-microvolt = <970000>;
343			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
344			regulator-allow-set-load;
345			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
346						   RPMH_REGULATOR_MODE_HPM>;
347		};
348
349		vreg_l7a: ldo7 {
350			regulator-name = "vreg_l7a";
351			regulator-min-microvolt = <720000>;
352			regulator-max-microvolt = <950000>;
353			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
354			regulator-allow-set-load;
355			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
356						   RPMH_REGULATOR_MODE_HPM>;
357		};
358
359		vreg_l8a: ldo8 {
360			regulator-name = "vreg_l8a";
361			regulator-min-microvolt = <2504000>;
362			regulator-max-microvolt = <3300000>;
363			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
364			regulator-allow-set-load;
365			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
366						   RPMH_REGULATOR_MODE_HPM>;
367		};
368
369		vreg_l9a: ldo9 {
370			regulator-name = "vreg_l9a";
371			regulator-min-microvolt = <2970000>;
372			regulator-max-microvolt = <3544000>;
373			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
374			regulator-allow-set-load;
375			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
376						   RPMH_REGULATOR_MODE_HPM>;
377		};
378	};
379
380	regulators-1 {
381		compatible = "qcom,pmm8654au-rpmh-regulators";
382		qcom,pmic-id = "c";
383
384		vreg_l1c: ldo1 {
385			regulator-name = "vreg_l1c";
386			regulator-min-microvolt = <1140000>;
387			regulator-max-microvolt = <1260000>;
388			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
389			regulator-allow-set-load;
390			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
391						   RPMH_REGULATOR_MODE_HPM>;
392		};
393
394		vreg_l2c: ldo2 {
395			regulator-name = "vreg_l2c";
396			regulator-min-microvolt = <900000>;
397			regulator-max-microvolt = <1100000>;
398			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
399			regulator-allow-set-load;
400			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
401						   RPMH_REGULATOR_MODE_HPM>;
402		};
403
404		vreg_l3c: ldo3 {
405			regulator-name = "vreg_l3c";
406			regulator-min-microvolt = <1100000>;
407			regulator-max-microvolt = <1300000>;
408			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
409			regulator-allow-set-load;
410			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
411						   RPMH_REGULATOR_MODE_HPM>;
412		};
413
414		vreg_l4c: ldo4 {
415			regulator-name = "vreg_l4c";
416			regulator-min-microvolt = <1200000>;
417			regulator-max-microvolt = <1200000>;
418			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
419			regulator-allow-set-load;
420			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
421						   RPMH_REGULATOR_MODE_HPM>;
422		};
423
424		vreg_l5c: ldo5 {
425			regulator-name = "vreg_l5c";
426			regulator-min-microvolt = <1100000>;
427			regulator-max-microvolt = <1300000>;
428			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
429			regulator-allow-set-load;
430			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
431						   RPMH_REGULATOR_MODE_HPM>;
432		};
433
434		vreg_l6c: ldo6 {
435			regulator-name = "vreg_l6c";
436			regulator-min-microvolt = <1620000>;
437			regulator-max-microvolt = <1980000>;
438			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
439			regulator-allow-set-load;
440			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
441						   RPMH_REGULATOR_MODE_HPM>;
442		};
443
444		vreg_l7c: ldo7 {
445			regulator-name = "vreg_l7c";
446			regulator-min-microvolt = <1620000>;
447			regulator-max-microvolt = <2000000>;
448			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
449			regulator-allow-set-load;
450			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
451						   RPMH_REGULATOR_MODE_HPM>;
452		};
453
454		vreg_l8c: ldo8 {
455			regulator-name = "vreg_l8c";
456			regulator-min-microvolt = <2400000>;
457			regulator-max-microvolt = <3300000>;
458			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
459			regulator-allow-set-load;
460			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
461						   RPMH_REGULATOR_MODE_HPM>;
462		};
463
464		vreg_l9c: ldo9 {
465			regulator-name = "vreg_l9c";
466			regulator-min-microvolt = <1650000>;
467			regulator-max-microvolt = <2700000>;
468			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
469			regulator-allow-set-load;
470			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
471						   RPMH_REGULATOR_MODE_HPM>;
472		};
473	};
474
475	regulators-2 {
476		compatible = "qcom,pmm8654au-rpmh-regulators";
477		qcom,pmic-id = "e";
478
479		vreg_s4e: smps4 {
480			regulator-name = "vreg_s4e";
481			regulator-min-microvolt = <970000>;
482			regulator-max-microvolt = <1520000>;
483			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
484		};
485
486		vreg_s7e: smps7 {
487			regulator-name = "vreg_s7e";
488			regulator-min-microvolt = <1010000>;
489			regulator-max-microvolt = <1170000>;
490			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
491		};
492
493		vreg_s9e: smps9 {
494			regulator-name = "vreg_s9e";
495			regulator-min-microvolt = <300000>;
496			regulator-max-microvolt = <570000>;
497			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
498		};
499
500		vreg_l6e: ldo6 {
501			regulator-name = "vreg_l6e";
502			regulator-min-microvolt = <1280000>;
503			regulator-max-microvolt = <1450000>;
504			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
505			regulator-allow-set-load;
506			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
507						   RPMH_REGULATOR_MODE_HPM>;
508		};
509
510		vreg_l8e: ldo8 {
511			regulator-name = "vreg_l8e";
512			regulator-min-microvolt = <1800000>;
513			regulator-max-microvolt = <1950000>;
514			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
515			regulator-allow-set-load;
516			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
517						   RPMH_REGULATOR_MODE_HPM>;
518		};
519	};
520};
521
522&ethernet0 {
523	phy-handle = <&hsgmii_phy0>;
524	phy-mode = "2500base-x";
525
526	pinctrl-0 = <&ethernet0_default>;
527	pinctrl-names = "default";
528
529	snps,mtl-rx-config = <&mtl_rx_setup>;
530	snps,mtl-tx-config = <&mtl_tx_setup>;
531
532	nvmem-cells = <&mac_addr0>;
533	nvmem-cell-names = "mac-address";
534
535	status = "okay";
536
537	mdio {
538		compatible = "snps,dwmac-mdio";
539		#address-cells = <1>;
540		#size-cells = <0>;
541
542		hsgmii_phy0: ethernet-phy@1c {
543			compatible = "ethernet-phy-id004d.d101";
544			reg = <0x1c>;
545			reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
546			reset-assert-us = <11000>;
547			reset-deassert-us = <70000>;
548		};
549	};
550
551	mtl_rx_setup: rx-queues-config {
552		snps,rx-queues-to-use = <4>;
553		snps,rx-sched-sp;
554
555		queue0 {
556			snps,dcb-algorithm;
557			snps,map-to-dma-channel = <0x0>;
558			snps,route-up;
559			snps,priority = <0x1>;
560		};
561
562		queue1 {
563			snps,dcb-algorithm;
564			snps,map-to-dma-channel = <0x1>;
565			snps,route-ptp;
566		};
567
568		queue2 {
569			snps,avb-algorithm;
570			snps,map-to-dma-channel = <0x2>;
571			snps,route-avcp;
572		};
573
574		queue3 {
575			snps,avb-algorithm;
576			snps,map-to-dma-channel = <0x3>;
577			snps,priority = <0xc>;
578		};
579	};
580
581	mtl_tx_setup: tx-queues-config {
582		snps,tx-queues-to-use = <4>;
583
584		queue0 {
585			snps,dcb-algorithm;
586		};
587
588		queue1 {
589			snps,dcb-algorithm;
590		};
591
592		queue2 {
593			snps,avb-algorithm;
594			snps,send_slope = <0x1000>;
595			snps,idle_slope = <0x1000>;
596			snps,high_credit = <0x3e800>;
597			snps,low_credit = <0xffc18000>;
598		};
599
600		queue3 {
601			snps,avb-algorithm;
602			snps,send_slope = <0x1000>;
603			snps,idle_slope = <0x1000>;
604			snps,high_credit = <0x3e800>;
605			snps,low_credit = <0xffc18000>;
606		};
607	};
608};
609
610&gpi_dma0 {
611	status = "okay";
612};
613
614&gpi_dma1 {
615	status = "okay";
616};
617
618&gpi_dma2 {
619	status = "okay";
620};
621
622&gpu {
623	status = "okay";
624};
625
626&gpu_zap_shader {
627	firmware-name = "qcom/sa8775p/a663_zap.mbn";
628};
629
630&i2c11 {
631	status = "okay";
632
633	usb-typec@67 {
634		compatible = "ti,hd3ss3220";
635		reg = <0x67>;
636
637		interrupts-extended = <&pmm8654au_2_gpios 5 IRQ_TYPE_EDGE_FALLING>;
638
639		id-gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>;
640
641		pinctrl-0 = <&usb_id>, <&usb0_intr_state>;
642		pinctrl-names = "default";
643
644		ports {
645			#address-cells = <1>;
646			#size-cells = <0>;
647
648			port@0 {
649				reg = <0>;
650
651				hd3ss3220_0_in_ep: endpoint {
652					remote-endpoint = <&usb0_con_ss_ep>;
653				};
654			};
655
656			port@1 {
657				reg = <1>;
658
659				hd3ss3220_0_out_ep: endpoint {
660					remote-endpoint = <&usb_0_dwc3_ss>;
661				};
662			};
663		};
664	};
665
666	usb-typec@47 {
667		compatible = "ti,hd3ss3220";
668		reg = <0x47>;
669
670		interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
671
672		id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
673
674		pinctrl-0 = <&usb1_id>, <&usb1_intr>;
675		pinctrl-names = "default";
676
677		ports {
678			#address-cells = <1>;
679			#size-cells = <0>;
680
681			port@0 {
682				reg = <0>;
683
684				hd3ss3220_1_in_ep: endpoint {
685					remote-endpoint = <&usb1_con_ss_ep>;
686				};
687			};
688
689			port@1 {
690				reg = <1>;
691
692				hd3ss3220_1_out_ep: endpoint {
693					remote-endpoint = <&usb_hub_3_1>;
694				};
695			};
696		};
697	};
698};
699
700&i2c18 {
701	status = "okay";
702
703	expander0: gpio@38 {
704		compatible = "ti,tca9538";
705		reg = <0x38>;
706		#gpio-cells = <2>;
707		gpio-controller;
708		#interrupt-cells = <2>;
709		interrupt-controller;
710		interrupts-extended = <&tlmm 138 IRQ_TYPE_LEVEL_LOW>;
711		pinctrl-0 = <&expander0_int>;
712		pinctrl-names = "default";
713	};
714
715	expander1: gpio@39 {
716		compatible = "ti,tca9538";
717		reg = <0x39>;
718		#gpio-cells = <2>;
719		gpio-controller;
720		#interrupt-cells = <2>;
721		interrupt-controller;
722		interrupts-extended = <&tlmm 19 IRQ_TYPE_LEVEL_LOW>;
723		pinctrl-0 = <&expander1_int>;
724		pinctrl-names = "default";
725	};
726
727	expander2: gpio@3a {
728		compatible = "ti,tca9538";
729		reg = <0x3a>;
730		#gpio-cells = <2>;
731		gpio-controller;
732		#interrupt-cells = <2>;
733		interrupt-controller;
734		interrupts-extended = <&tlmm 139 IRQ_TYPE_LEVEL_LOW>;
735		pinctrl-0 = <&expander2_int>;
736		pinctrl-names = "default";
737	};
738
739	expander3: gpio@3b {
740		compatible = "ti,tca9538";
741		reg = <0x3b>;
742		#gpio-cells = <2>;
743		gpio-controller;
744		#interrupt-cells = <2>;
745		interrupt-controller;
746		interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>;
747		pinctrl-0 = <&expander3_int>;
748		pinctrl-names = "default";
749
750		rtss-can-sel-hog {
751			gpio-hog;
752			gpios = <4 GPIO_ACTIVE_HIGH>;
753			output-high;
754			line-name = "rtss-can-sel";
755		};
756	};
757
758	eeprom@50 {
759		compatible = "giantec,gt24c256c", "atmel,24c256";
760		reg = <0x50>;
761		pagesize = <64>;
762
763		nvmem-layout {
764			compatible = "fixed-layout";
765			#address-cells = <1>;
766			#size-cells = <1>;
767
768			mac_addr0: mac-addr@0 {
769				reg = <0x0 0x6>;
770			};
771		};
772	};
773};
774
775&i2c19 {
776	status = "okay";
777
778	fan_controller: fan@18 {
779		compatible = "ti,amc6821";
780		reg = <0x18>;
781		#pwm-cells = <2>;
782
783		fan {
784			pwms = <&fan_controller 40000 PWM_POLARITY_INVERTED>;
785		};
786	};
787};
788
789&iris {
790	firmware-name = "qcom/vpu/vpu30_p4_s6_16mb.mbn";
791
792	status = "okay";
793};
794
795&mdss0 {
796	status = "okay";
797};
798
799&mdss0_dp0 {
800	pinctrl-0 = <&dp0_hot_plug_det>;
801	pinctrl-names = "default";
802
803	status = "okay";
804};
805
806&mdss0_dp0_out {
807	data-lanes = <0 1 2 3>;
808	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
809
810	remote-endpoint = <&edp0_connector_in>;
811};
812
813&mdss0_dp0_phy {
814	vdda-phy-supply = <&vreg_l1c>;
815	vdda-pll-supply = <&vreg_l4a>;
816
817	status = "okay";
818};
819
820&mdss0_dp1 {
821	pinctrl-0 = <&dp1_hot_plug_det>;
822	pinctrl-names = "default";
823
824	status = "okay";
825};
826
827&mdss0_dp1_out {
828	data-lanes = <0 1 2 3>;
829	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
830
831	remote-endpoint = <&edp1_connector_in>;
832};
833
834&mdss0_dp1_phy {
835	vdda-phy-supply = <&vreg_l1c>;
836	vdda-pll-supply = <&vreg_l4a>;
837
838	status = "okay";
839};
840
841&pcie0 {
842	perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
843	wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
844
845	pinctrl-0 = <&pcie0_default_state>;
846	pinctrl-names = "default";
847
848	status = "okay";
849};
850
851&pcie0_phy {
852	vdda-phy-supply = <&vreg_l5a>;
853	vdda-pll-supply = <&vreg_l1c>;
854
855	status = "okay";
856};
857
858&pcie1 {
859	perst-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
860	wake-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
861
862	pinctrl-0 = <&pcie1_default_state>;
863	pinctrl-names = "default";
864
865	status = "okay";
866};
867
868&pcie1_phy {
869	vdda-phy-supply = <&vreg_l5a>;
870	vdda-pll-supply = <&vreg_l1c>;
871
872	status = "okay";
873};
874
875&pcieport0 {
876	port {
877		pcieport0_ep: endpoint {
878			remote-endpoint = <&m2_e_pcie_ep>;
879		};
880	};
881};
882
883&pmm8654au_0_pon_resin {
884	linux,code = <KEY_VOLUMEDOWN>;
885	status = "okay";
886};
887
888&pmm8654au_2_gpios {
889	usb0_intr_state: usb0-intr-state {
890		pins = "gpio5";
891		function = "normal";
892		input-enable;
893		bias-pull-up;
894		power-source = <0>;
895	};
896
897	usb1_intr: usb1-intr-state {
898		pins = "gpio6";
899		function = "normal";
900		input-enable;
901		bias-pull-up;
902		power-source = <0>;
903	};
904
905	usb2_id: usb2-id-state {
906		pins = "gpio11";
907		function = "normal";
908		input-enable;
909		bias-pull-up;
910		power-source = <0>;
911	};
912};
913
914&qup_i2c19_default {
915	drive-strength = <2>;
916	bias-pull-up;
917};
918
919&qupv3_id_0 {
920	firmware-name = "qcom/sa8775p/qupv3fw.elf";
921	status = "okay";
922};
923
924&qupv3_id_1 {
925	firmware-name = "qcom/sa8775p/qupv3fw.elf";
926	status = "okay";
927};
928
929&qupv3_id_2 {
930	firmware-name = "qcom/sa8775p/qupv3fw.elf";
931	status = "okay";
932};
933
934&remoteproc_adsp {
935	firmware-name = "qcom/sa8775p/adsp.mbn";
936
937	status = "okay";
938};
939
940&remoteproc_cdsp0 {
941	firmware-name = "qcom/sa8775p/cdsp0.mbn";
942
943	status = "okay";
944};
945
946&remoteproc_cdsp1 {
947	firmware-name = "qcom/sa8775p/cdsp1.mbn";
948
949	status = "okay";
950};
951
952&remoteproc_gpdsp0 {
953	firmware-name = "qcom/sa8775p/gpdsp0.mbn";
954
955	status = "okay";
956};
957
958&remoteproc_gpdsp1 {
959	firmware-name = "qcom/sa8775p/gpdsp1.mbn";
960
961	status = "okay";
962};
963
964&sdhc {
965	vmmc-supply = <&vmmc_sdc>;
966	vqmmc-supply = <&vreg_sdc>;
967
968	pinctrl-0 = <&sdc_default>, <&sd_cd>;
969	pinctrl-1 = <&sdc_sleep>, <&sd_cd>;
970	pinctrl-names = "default", "sleep";
971
972	bus-width = <4>;
973	cd-gpios = <&tlmm 36 GPIO_ACTIVE_LOW>;
974	no-mmc;
975	no-sdio;
976
977	status = "okay";
978};
979
980&serdes0 {
981	phy-supply = <&vreg_l5a>;
982
983	status = "okay";
984};
985
986&sleep_clk {
987	clock-frequency = <32768>;
988};
989
990&spi16 {
991	status = "okay";
992
993	tpm@0 {
994		compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi";
995		reg = <0>;
996		spi-max-frequency = <20000000>;
997	};
998};
999
1000&tlmm {
1001	ethernet0_default: ethernet0-default-state {
1002		ethernet0_mdc: ethernet0-mdc-pins {
1003			pins = "gpio8";
1004			function = "emac0_mdc";
1005			drive-strength = <16>;
1006			bias-pull-up;
1007		};
1008
1009		ethernet0_mdio: ethernet0-mdio-pins {
1010			pins = "gpio9";
1011			function = "emac0_mdio";
1012			drive-strength = <16>;
1013			bias-pull-up;
1014		};
1015	};
1016
1017	expander0_int: expander0-int-state {
1018		pins = "gpio138";
1019		function = "gpio";
1020		bias-pull-up;
1021	};
1022
1023	expander1_int: expander1-int-state {
1024		pins = "gpio19";
1025		function = "gpio";
1026		bias-pull-up;
1027	};
1028
1029	expander2_int: expander2-int-state {
1030		pins = "gpio139";
1031		function = "gpio";
1032		bias-pull-up;
1033	};
1034
1035	expander3_int: expander3-int-state {
1036		pins = "gpio39";
1037		function = "gpio";
1038		bias-pull-up;
1039	};
1040
1041	pcie0_default_state: pcie0-default-state {
1042		clkreq-pins {
1043			pins = "gpio1";
1044			function = "pcie0_clkreq";
1045			drive-strength = <2>;
1046			bias-pull-up;
1047		};
1048
1049		perst-pins {
1050			pins = "gpio2";
1051			function = "gpio";
1052			drive-strength = <2>;
1053			bias-pull-up;
1054		};
1055
1056		wake-pins {
1057			pins = "gpio0";
1058			function = "gpio";
1059			drive-strength = <2>;
1060			bias-pull-up;
1061		};
1062	};
1063
1064	pcie1_default_state: pcie1-default-state {
1065		clkreq-pins {
1066			pins = "gpio3";
1067			function = "pcie1_clkreq";
1068			drive-strength = <2>;
1069			bias-pull-up;
1070		};
1071
1072		perst-pins {
1073			pins = "gpio4";
1074			function = "gpio";
1075			drive-strength = <2>;
1076			bias-pull-up;
1077		};
1078
1079		wake-pins {
1080			pins = "gpio5";
1081			function = "gpio";
1082			drive-strength = <2>;
1083			bias-pull-up;
1084		};
1085	};
1086
1087	qup_i2c11_default: qup-i2c11-state {
1088		pins = "gpio48", "gpio49";
1089		function = "qup1_se4";
1090		drive-strength = <2>;
1091		bias-pull-up;
1092	};
1093
1094	sd_cd: sd-cd-state {
1095		pins = "gpio36";
1096		function = "gpio";
1097		bias-pull-up;
1098	};
1099
1100	usb_id: usb-id-state {
1101		pins = "gpio50";
1102		function = "gpio";
1103		bias-pull-up;
1104	};
1105
1106	usb1_id: usb1-id-state {
1107		pins = "gpio51";
1108		function = "gpio";
1109		bias-pull-up;
1110	};
1111};
1112
1113&uart0 {
1114	status = "okay";
1115};
1116
1117&uart10 {
1118	compatible = "qcom,geni-debug-uart";
1119	pinctrl-0 = <&qup_uart10_default>;
1120	pinctrl-names = "default";
1121
1122	status = "okay";
1123};
1124
1125&uart17 {
1126	status = "okay";
1127
1128	port {
1129		uart17_ep: endpoint {
1130			remote-endpoint = <&m2_e_uart_ep>;
1131		};
1132	};
1133};
1134
1135&ufs_mem_hc {
1136	reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
1137	vcc-supply = <&vreg_l8a>;
1138	vcc-max-microamp = <1100000>;
1139	vccq-supply = <&vreg_l4c>;
1140	vccq-max-microamp = <1200000>;
1141
1142	status = "okay";
1143};
1144
1145&ufs_mem_phy {
1146	vdda-phy-supply = <&vreg_l4a>;
1147	vdda-pll-supply = <&vreg_l1c>;
1148
1149	status = "okay";
1150};
1151
1152&usb_0 {
1153	status = "okay";
1154};
1155
1156&usb_0_dwc3_hs {
1157	remote-endpoint = <&usb0_con_hs_ep>;
1158};
1159
1160&usb_0_dwc3_ss {
1161	remote-endpoint = <&hd3ss3220_0_out_ep>;
1162};
1163
1164&usb_0_hsphy {
1165	vdda-pll-supply = <&vreg_l7a>;
1166	vdda18-supply = <&vreg_l6c>;
1167	vdda33-supply = <&vreg_l9a>;
1168
1169	status = "okay";
1170};
1171
1172&usb_0_qmpphy {
1173	vdda-phy-supply = <&vreg_l7a>;
1174	vdda-pll-supply = <&vreg_l1c>;
1175
1176	status = "okay";
1177};
1178
1179&usb_1 {
1180	dr_mode = "host";
1181
1182	#address-cells = <1>;
1183	#size-cells = <0>;
1184
1185	status = "okay";
1186
1187	usb_hub_2_x: hub@1 {
1188		compatible = "usb5e3,610";
1189		reg = <1>;
1190
1191		peer-hub = <&usb_hub_3_x>;
1192
1193		ports {
1194			#address-cells = <1>;
1195			#size-cells = <0>;
1196
1197			port@1 {
1198				reg = <1>;
1199
1200				usb_hub_2_1: endpoint {
1201					remote-endpoint = <&usb1_con_hs_ep>;
1202				};
1203			};
1204
1205			/*
1206			 * Port-4 is connected to M.2 E key connector on corekit.
1207			 */
1208			port@4 {
1209				reg = <4>;
1210
1211				usb_hub_2_4: endpoint {
1212				};
1213			};
1214		};
1215	};
1216
1217	usb_hub_3_x: hub@2 {
1218		compatible = "usb5e3,625";
1219		reg = <2>;
1220
1221		peer-hub = <&usb_hub_2_x>;
1222
1223		ports {
1224			#address-cells = <1>;
1225			#size-cells = <0>;
1226
1227			port@1 {
1228				reg = <1>;
1229
1230				usb_hub_3_1: endpoint {
1231					remote-endpoint = <&hd3ss3220_1_out_ep>;
1232				};
1233			};
1234
1235			port@4 {
1236				reg = <4>;
1237
1238				usb_hub_3_4: endpoint {
1239				};
1240			};
1241		};
1242	};
1243};
1244
1245&usb_1_hsphy {
1246	vdda-pll-supply = <&vreg_l7a>;
1247	vdda18-supply = <&vreg_l6c>;
1248	vdda33-supply = <&vreg_l9a>;
1249
1250	status = "okay";
1251};
1252
1253&usb_1_qmpphy {
1254	vdda-phy-supply = <&vreg_l1c>;
1255	vdda-pll-supply = <&vreg_l7a>;
1256
1257	status = "okay";
1258};
1259
1260&usb_2 {
1261	status = "okay";
1262};
1263
1264&usb_2_dwc3_hs {
1265	remote-endpoint = <&usb2_con_hs_ep>;
1266};
1267
1268&usb_2_hsphy {
1269	vdda-pll-supply = <&vreg_l7a>;
1270	vdda18-supply = <&vreg_l6c>;
1271	vdda33-supply = <&vreg_l9a>;
1272
1273	status = "okay";
1274};
1275
1276&xo_board_clk {
1277	clock-frequency = <38400000>;
1278};
1279