xref: /linux/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5
6#include <dt-bindings/gpio/gpio.h>
7#include <dt-bindings/input/gpio-keys.h>
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/leds/common.h>
10#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
11
12#include "x1e80100.dtsi"
13#include "x1e80100-pmics.dtsi"
14
15/ {
16	aliases {
17		serial0 = &uart2;
18		i2c0 = &i2c0;
19		i2c3 = &i2c3;
20		i2c4 = &i2c4;
21		i2c5 = &i2c5;
22		i2c7 = &i2c7;
23	};
24
25	backlight: backlight {
26		compatible = "pwm-backlight";
27		pwms = <&pmk8550_pwm 0 5000000>;
28		enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
29		/* TODO: power-supply? */
30
31		pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
32		pinctrl-names = "default";
33	};
34
35	gpio-keys {
36		compatible = "gpio-keys";
37
38		pinctrl-0 = <&hall_int_n_default>;
39		pinctrl-names = "default";
40
41		switch-lid {
42			gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
43			linux,input-type = <EV_SW>;
44			linux,code = <SW_LID>;
45			wakeup-source;
46			wakeup-event-action = <EV_ACT_DEASSERTED>;
47		};
48	};
49
50	leds {
51		compatible = "gpio-leds";
52
53		pinctrl-names = "default";
54		pinctrl-0 = <&cam_indicator_en>;
55
56		led-camera-indicator {
57			label = "white:camera-indicator";
58			function = LED_FUNCTION_INDICATOR;
59			color = <LED_COLOR_ID_WHITE>;
60			gpios = <&tlmm 225 GPIO_ACTIVE_HIGH>;
61			linux,default-trigger = "none";
62			default-state = "off";
63			/* Reuse as a panic indicator until we get a "camera on" trigger */
64			panic-indicator;
65		};
66	};
67
68	pmic-glink {
69		compatible = "qcom,x1e80100-pmic-glink",
70			     "qcom,sm8550-pmic-glink",
71			     "qcom,pmic-glink";
72		#address-cells = <1>;
73		#size-cells = <0>;
74		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
75				    <&tlmm 123 GPIO_ACTIVE_HIGH>;
76
77		/* Left-side rear port */
78		connector@0 {
79			compatible = "usb-c-connector";
80			reg = <0>;
81			power-role = "dual";
82			data-role = "dual";
83
84			ports {
85				#address-cells = <1>;
86				#size-cells = <0>;
87
88				port@0 {
89					reg = <0>;
90
91					pmic_glink_ss0_hs_in: endpoint {
92						remote-endpoint = <&usb_1_ss0_dwc3_hs>;
93					};
94				};
95
96				port@1 {
97					reg = <1>;
98
99					pmic_glink_ss0_ss_in: endpoint {
100						remote-endpoint = <&usb_1_ss0_qmpphy_out>;
101					};
102				};
103			};
104		};
105
106		/* Left-side front port */
107		connector@1 {
108			compatible = "usb-c-connector";
109			reg = <1>;
110			power-role = "dual";
111			data-role = "dual";
112
113			ports {
114				#address-cells = <1>;
115				#size-cells = <0>;
116
117				port@0 {
118					reg = <0>;
119
120					pmic_glink_ss1_hs_in: endpoint {
121						remote-endpoint = <&usb_1_ss1_dwc3_hs>;
122					};
123				};
124
125				port@1 {
126					reg = <1>;
127
128					pmic_glink_ss1_ss_in: endpoint {
129						remote-endpoint = <&usb_1_ss1_qmpphy_out>;
130					};
131				};
132			};
133		};
134	};
135
136	reserved-memory {
137		linux,cma {
138			compatible = "shared-dma-pool";
139			size = <0x0 0x8000000>;
140			reusable;
141			linux,cma-default;
142		};
143	};
144
145	vreg_edp_3p3: regulator-edp-3p3 {
146		compatible = "regulator-fixed";
147
148		regulator-name = "VREG_EDP_3P3";
149		regulator-min-microvolt = <3300000>;
150		regulator-max-microvolt = <3300000>;
151
152		gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
153		enable-active-high;
154
155		pinctrl-0 = <&edp_reg_en>;
156		pinctrl-names = "default";
157
158		regulator-boot-on;
159	};
160
161	vreg_nvme: regulator-nvme {
162		compatible = "regulator-fixed";
163
164		regulator-name = "VREG_NVME_3P3";
165		regulator-min-microvolt = <3300000>;
166		regulator-max-microvolt = <3300000>;
167
168		gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
169		enable-active-high;
170
171		pinctrl-0 = <&nvme_reg_en>;
172		pinctrl-names = "default";
173
174		regulator-boot-on;
175	};
176
177	vph_pwr: regulator-vph-pwr {
178		compatible = "regulator-fixed";
179
180		regulator-name = "vph_pwr";
181		regulator-min-microvolt = <3700000>;
182		regulator-max-microvolt = <3700000>;
183
184		regulator-always-on;
185		regulator-boot-on;
186	};
187};
188
189&apps_rsc {
190	regulators-0 {
191		compatible = "qcom,pm8550-rpmh-regulators";
192		qcom,pmic-id = "b";
193
194		vdd-bob1-supply = <&vph_pwr>;
195		vdd-bob2-supply = <&vph_pwr>;
196		vdd-l1-l4-l10-supply = <&vreg_s4c>;
197		vdd-l2-l13-l14-supply = <&vreg_bob1>;
198		vdd-l5-l16-supply = <&vreg_bob1>;
199		vdd-l6-l7-supply = <&vreg_bob2>;
200		vdd-l8-l9-supply = <&vreg_bob1>;
201		vdd-l12-supply = <&vreg_s5j>;
202		vdd-l15-supply = <&vreg_s4c>;
203		vdd-l17-supply = <&vreg_bob2>;
204
205		vreg_bob1: bob1 {
206			regulator-name = "vreg_bob1";
207			regulator-min-microvolt = <3008000>;
208			regulator-max-microvolt = <3960000>;
209			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
210		};
211
212		vreg_bob2: bob2 {
213			regulator-name = "vreg_bob2";
214			regulator-min-microvolt = <2504000>;
215			regulator-max-microvolt = <3008000>;
216			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
217		};
218
219		vreg_l1b: ldo1 {
220			regulator-name = "vreg_l1b";
221			regulator-min-microvolt = <1800000>;
222			regulator-max-microvolt = <1800000>;
223			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
224		};
225
226		vreg_l2b: ldo2 {
227			regulator-name = "vreg_l2b";
228			regulator-min-microvolt = <3072000>;
229			regulator-max-microvolt = <3072000>;
230			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
231		};
232
233		vreg_l4b: ldo4 {
234			regulator-name = "vreg_l4b";
235			regulator-min-microvolt = <1800000>;
236			regulator-max-microvolt = <1800000>;
237			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
238		};
239
240		vreg_l5b: ldo5 {
241			regulator-name = "vreg_l5b";
242			regulator-min-microvolt = <3000000>;
243			regulator-max-microvolt = <3000000>;
244			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
245		};
246
247		vreg_l6b: ldo6 {
248			regulator-name = "vreg_l6b";
249			regulator-min-microvolt = <1800000>;
250			regulator-max-microvolt = <2960000>;
251			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
252		};
253
254		vreg_l7b: ldo7 {
255			regulator-name = "vreg_l7b";
256			regulator-min-microvolt = <2800000>;
257			regulator-max-microvolt = <2800000>;
258			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
259		};
260
261		vreg_l8b: ldo8 {
262			regulator-name = "vreg_l8b";
263			regulator-min-microvolt = <3072000>;
264			regulator-max-microvolt = <3072000>;
265			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
266		};
267
268		vreg_l9b: ldo9 {
269			regulator-name = "vreg_l9b";
270			regulator-min-microvolt = <2960000>;
271			regulator-max-microvolt = <2960000>;
272			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
273		};
274
275		vreg_l10b: ldo10 {
276			regulator-name = "vreg_l10b";
277			regulator-min-microvolt = <1800000>;
278			regulator-max-microvolt = <1800000>;
279			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
280		};
281
282		vreg_l12b: ldo12 {
283			regulator-name = "vreg_l12b";
284			regulator-min-microvolt = <1200000>;
285			regulator-max-microvolt = <1200000>;
286			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
287		};
288
289		vreg_l13b: ldo13 {
290			regulator-name = "vreg_l13b";
291			regulator-min-microvolt = <3072000>;
292			regulator-max-microvolt = <3072000>;
293			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
294		};
295
296		vreg_l14b: ldo14 {
297			regulator-name = "vreg_l14b";
298			regulator-min-microvolt = <3072000>;
299			regulator-max-microvolt = <3072000>;
300			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
301		};
302
303		vreg_l15b: ldo15 {
304			regulator-name = "vreg_l15b";
305			regulator-min-microvolt = <1800000>;
306			regulator-max-microvolt = <1800000>;
307			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
308		};
309
310		vreg_l16b: ldo16 {
311			regulator-name = "vreg_l16b";
312			regulator-min-microvolt = <2912000>;
313			regulator-max-microvolt = <2912000>;
314			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
315		};
316
317		vreg_l17b: ldo17 {
318			regulator-name = "vreg_l17b";
319			regulator-min-microvolt = <2504000>;
320			regulator-max-microvolt = <2504000>;
321			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
322		};
323	};
324
325	regulators-1 {
326		compatible = "qcom,pm8550ve-rpmh-regulators";
327		qcom,pmic-id = "c";
328
329		vdd-l1-supply = <&vreg_s5j>;
330		vdd-l2-supply = <&vreg_s1f>;
331		vdd-l3-supply = <&vreg_s1f>;
332		vdd-s4-supply = <&vph_pwr>;
333
334		vreg_s4c: smps4 {
335			regulator-name = "vreg_s4c";
336			regulator-min-microvolt = <1856000>;
337			regulator-max-microvolt = <2000000>;
338			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
339		};
340
341		vreg_l1c: ldo1 {
342			regulator-name = "vreg_l1c";
343			regulator-min-microvolt = <1200000>;
344			regulator-max-microvolt = <1200000>;
345			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
346		};
347
348		vreg_l2c: ldo2 {
349			regulator-name = "vreg_l2c";
350			regulator-min-microvolt = <880000>;
351			regulator-max-microvolt = <920000>;
352			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
353		};
354
355		vreg_l3c: ldo3 {
356			regulator-name = "vreg_l3c";
357			regulator-min-microvolt = <912000>;
358			regulator-max-microvolt = <920000>;
359			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
360		};
361	};
362
363	regulators-2 {
364		compatible = "qcom,pmc8380-rpmh-regulators";
365		qcom,pmic-id = "d";
366
367		vdd-l1-supply = <&vreg_s1f>;
368		vdd-l2-supply = <&vreg_s1f>;
369		vdd-l3-supply = <&vreg_s4c>;
370		vdd-s1-supply = <&vph_pwr>;
371
372		vreg_l1d: ldo1 {
373			regulator-name = "vreg_l1d";
374			regulator-min-microvolt = <880000>;
375			regulator-max-microvolt = <920000>;
376			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
377		};
378
379		vreg_l2d: ldo2 {
380			regulator-name = "vreg_l2d";
381			regulator-min-microvolt = <912000>;
382			regulator-max-microvolt = <920000>;
383			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
384		};
385
386		vreg_l3d: ldo3 {
387			regulator-name = "vreg_l3d";
388			regulator-min-microvolt = <1800000>;
389			regulator-max-microvolt = <1800000>;
390			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
391		};
392	};
393
394	regulators-3 {
395		compatible = "qcom,pmc8380-rpmh-regulators";
396		qcom,pmic-id = "e";
397
398		vdd-l2-supply = <&vreg_s1f>;
399		vdd-l3-supply = <&vreg_s5j>;
400
401		vreg_l2e: ldo2 {
402			regulator-name = "vreg_l2e";
403			regulator-min-microvolt = <880000>;
404			regulator-max-microvolt = <920000>;
405			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
406		};
407
408		vreg_l3e: ldo3 {
409			regulator-name = "vreg_l3e";
410			regulator-min-microvolt = <1200000>;
411			regulator-max-microvolt = <1200000>;
412			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
413		};
414	};
415
416	regulators-4 {
417		compatible = "qcom,pmc8380-rpmh-regulators";
418		qcom,pmic-id = "f";
419
420		vdd-l1-supply = <&vreg_s5j>;
421		vdd-l2-supply = <&vreg_s5j>;
422		vdd-l3-supply = <&vreg_s5j>;
423		vdd-s1-supply = <&vph_pwr>;
424
425		vreg_s1f: smps1 {
426			regulator-name = "vreg_s1f";
427			regulator-min-microvolt = <700000>;
428			regulator-max-microvolt = <1100000>;
429			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
430		};
431
432		vreg_l1f: ldo1 {
433			regulator-name = "vreg_l1f";
434			regulator-min-microvolt = <1024000>;
435			regulator-max-microvolt = <1024000>;
436			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
437		};
438
439		vreg_l2f: ldo2 {
440			regulator-name = "vreg_l2f";
441			regulator-min-microvolt = <1024000>;
442			regulator-max-microvolt = <1024000>;
443			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
444		};
445
446		vreg_l3f: ldo3 {
447			regulator-name = "vreg_l3f";
448			regulator-min-microvolt = <1024000>;
449			regulator-max-microvolt = <1024000>;
450			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
451		};
452	};
453
454	regulators-6 {
455		compatible = "qcom,pm8550ve-rpmh-regulators";
456		qcom,pmic-id = "i";
457
458		vdd-l1-supply = <&vreg_s4c>;
459		vdd-l2-supply = <&vreg_s5j>;
460		vdd-l3-supply = <&vreg_s1f>;
461		vdd-s1-supply = <&vph_pwr>;
462		vdd-s2-supply = <&vph_pwr>;
463
464		vreg_s1i: smps1 {
465			regulator-name = "vreg_s1i";
466			regulator-min-microvolt = <900000>;
467			regulator-max-microvolt = <920000>;
468			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
469		};
470
471		vreg_s2i: smps2 {
472			regulator-name = "vreg_s2i";
473			regulator-min-microvolt = <1000000>;
474			regulator-max-microvolt = <1100000>;
475			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
476		};
477
478		vreg_l1i: ldo1 {
479			regulator-name = "vreg_l1i";
480			regulator-min-microvolt = <1800000>;
481			regulator-max-microvolt = <1800000>;
482			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
483		};
484
485		vreg_l2i: ldo2 {
486			regulator-name = "vreg_l2i";
487			regulator-min-microvolt = <1200000>;
488			regulator-max-microvolt = <1200000>;
489			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
490		};
491
492		vreg_l3i: ldo3 {
493			regulator-name = "vreg_l3i";
494			regulator-min-microvolt = <880000>;
495			regulator-max-microvolt = <920000>;
496			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
497		};
498	};
499
500	regulators-7 {
501		compatible = "qcom,pm8550ve-rpmh-regulators";
502		qcom,pmic-id = "j";
503
504		vdd-l1-supply = <&vreg_s1f>;
505		vdd-l2-supply = <&vreg_s5j>;
506		vdd-l3-supply = <&vreg_s1f>;
507		vdd-s5-supply = <&vph_pwr>;
508
509		vreg_s5j: smps5 {
510			regulator-name = "vreg_s5j";
511			regulator-min-microvolt = <1256000>;
512			regulator-max-microvolt = <1304000>;
513			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
514		};
515
516		vreg_l1j: ldo1 {
517			regulator-name = "vreg_l1j";
518			regulator-min-microvolt = <912000>;
519			regulator-max-microvolt = <920000>;
520			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
521		};
522
523		vreg_l2j: ldo2 {
524			regulator-name = "vreg_l2j";
525			regulator-min-microvolt = <1256000>;
526			regulator-max-microvolt = <1256000>;
527			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
528		};
529
530		vreg_l3j: ldo3 {
531			regulator-name = "vreg_l3j";
532			regulator-min-microvolt = <880000>;
533			regulator-max-microvolt = <920000>;
534			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
535		};
536	};
537};
538
539&gpu {
540	status = "okay";
541
542	zap-shader {
543		memory-region = <&gpu_microcode_mem>;
544		firmware-name = "qcom/x1e80100/microsoft/qcdxkmsuc8380.mbn";
545	};
546};
547
548&i2c0 {
549	clock-frequency = <100000>;
550
551	status = "okay";
552
553	/* Something @39, @3e, @44 */
554};
555
556&i2c3 {
557	clock-frequency = <400000>;
558
559	status = "okay";
560
561	/* PS8830 USB retimer @8 */
562};
563
564&i2c4 {
565	clock-frequency = <400000>;
566
567	status = "okay";
568
569	/* Something @18, @2c, @2e */
570};
571
572&i2c5 {
573	clock-frequency = <400000>;
574
575	status = "okay";
576
577	ptn3222: redriver@4f {
578		compatible = "nxp,ptn3222";
579		reg = <0x4f>;
580
581		reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
582
583		vdd3v3-supply = <&vreg_l13b>;
584		vdd1v8-supply = <&vreg_l4b>;
585
586		#phy-cells = <0>;
587	};
588};
589
590&i2c7 {
591	clock-frequency = <400000>;
592
593	status = "okay";
594
595	/* PS8830 USB retimer @8 */
596};
597
598&mdss {
599	status = "okay";
600};
601
602&mdss_dp3 {
603	compatible = "qcom,x1e80100-dp";
604	/delete-property/ #sound-dai-cells;
605
606	status = "okay";
607
608	aux-bus {
609		panel {
610			compatible = "edp-panel";
611
612			backlight = <&backlight>;
613			power-supply = <&vreg_edp_3p3>;
614
615			port {
616				edp_panel_in: endpoint {
617					remote-endpoint = <&mdss_dp3_out>;
618				};
619			};
620		};
621	};
622
623	ports {
624		port@1 {
625			reg = <1>;
626
627			mdss_dp3_out: endpoint {
628				data-lanes = <0 1 2 3>;
629				link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
630
631				remote-endpoint = <&edp_panel_in>;
632			};
633		};
634	};
635};
636
637&mdss_dp3_phy {
638	vdda-phy-supply = <&vreg_l3j>;
639	vdda-pll-supply = <&vreg_l2j>;
640
641	status = "okay";
642};
643
644&pcie4 {
645	status = "okay";
646};
647
648&pcie4_phy {
649	vdda-phy-supply = <&vreg_l3i>;
650	vdda-pll-supply = <&vreg_l3e>;
651
652	status = "okay";
653};
654
655&pcie6a {
656	perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
657	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
658
659	vddpe-3v3-supply = <&vreg_nvme>;
660
661	pinctrl-0 = <&pcie6a_default>;
662	pinctrl-names = "default";
663
664	status = "okay";
665};
666
667&pcie6a_phy {
668	vdda-phy-supply = <&vreg_l1d>;
669	vdda-pll-supply = <&vreg_l2j>;
670
671	status = "okay";
672};
673
674&pmc8380_3_gpios {
675	edp_bl_en: edp-bl-en-state {
676		pins = "gpio4";
677		function = "normal";
678		power-source = <1>; /* 1.8V */
679		input-disable;
680		output-enable;
681	};
682};
683
684&pmk8550_pwm {
685	status = "okay";
686};
687
688&pmk8550_gpios {
689	edp_bl_pwm: edp-bl-pwm-state {
690		pins = "gpio5";
691		function = "func3";
692	};
693};
694
695&qupv3_0 {
696	status = "okay";
697};
698
699&qupv3_1 {
700	status = "okay";
701};
702
703&qupv3_2 {
704	status = "okay";
705};
706
707&remoteproc_adsp {
708	firmware-name = "qcom/x1e80100/microsoft/Romulus/qcadsp8380.mbn",
709			"qcom/x1e80100/microsoft/Romulus/adsp_dtb.mbn";
710
711	status = "okay";
712};
713
714&remoteproc_cdsp {
715	firmware-name = "qcom/x1e80100/microsoft/Romulus/qccdsp8380.mbn",
716			"qcom/x1e80100/microsoft/Romulus/cdsp_dtb.mbn";
717
718	status = "okay";
719};
720
721&smb2360_0_eusb2_repeater {
722	vdd18-supply = <&vreg_l3d>;
723	vdd3-supply = <&vreg_l2b>;
724};
725
726&smb2360_1_eusb2_repeater {
727	vdd18-supply = <&vreg_l3d>;
728	vdd3-supply = <&vreg_l14b>;
729};
730
731&smb2360_2 {
732	status = "okay";
733};
734
735&smb2360_2_eusb2_repeater {
736	vdd18-supply = <&vreg_l3d>;
737	vdd3-supply = <&vreg_l8b>;
738};
739
740&tlmm {
741	gpio-reserved-ranges = <44 4>, /* SPI (TPM) */
742			       <238 1>; /* UFS Reset */
743
744	hall_int_n_default: hall-int-n-state {
745		pins = "gpio2";
746		function = "gpio";
747		bias-disable;
748	};
749
750	nvme_reg_en: nvme-reg-en-state {
751		pins = "gpio18";
752		function = "gpio";
753		drive-strength = <2>;
754		bias-disable;
755	};
756
757	edp_reg_en: edp-reg-en-state {
758		pins = "gpio70";
759		function = "gpio";
760		drive-strength = <16>;
761		bias-disable;
762	};
763
764	ssam_state: ssam-state-state {
765		pins = "gpio91";
766		function = "gpio";
767		bias-disable;
768	};
769
770	pcie6a_default: pcie6a-default-state {
771		perst-n-pins {
772			pins = "gpio152";
773			function = "gpio";
774			drive-strength = <2>;
775			bias-disable;
776		};
777
778		clkreq-n-pins {
779			pins = "gpio153";
780			function = "pcie6a_clk";
781			drive-strength = <2>;
782			bias-pull-up;
783		};
784
785		wake-n-pins {
786			pins = "gpio154";
787			function = "gpio";
788			drive-strength = <2>;
789			bias-pull-up;
790		};
791	};
792
793	cam_indicator_en: cam-indicator-en-state {
794		pins = "gpio225";
795		function = "gpio";
796		drive-strength = <2>;
797		bias-disable;
798	};
799};
800
801&uart2 {
802	status = "okay";
803
804	embedded-controller {
805		compatible = "microsoft,surface-sam";
806
807		interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>;
808
809		current-speed = <4000000>;
810
811		pinctrl-0 = <&ssam_state>;
812		pinctrl-names = "default";
813	};
814};
815
816&usb_1_ss0_hsphy {
817	vdd-supply = <&vreg_l3j>;
818	vdda12-supply = <&vreg_l2j>;
819
820	phys = <&smb2360_0_eusb2_repeater>;
821
822	status = "okay";
823};
824
825&usb_1_ss0_qmpphy {
826	vdda-phy-supply = <&vreg_l3e>;
827	vdda-pll-supply = <&vreg_l1j>;
828
829	status = "okay";
830};
831
832&usb_1_ss0 {
833	status = "okay";
834};
835
836&usb_1_ss0_dwc3 {
837	dr_mode = "host";
838};
839
840&usb_1_ss0_dwc3_hs {
841	remote-endpoint = <&pmic_glink_ss0_hs_in>;
842};
843
844&usb_1_ss0_qmpphy_out {
845	remote-endpoint = <&pmic_glink_ss0_ss_in>;
846};
847
848&usb_1_ss1_hsphy {
849	vdd-supply = <&vreg_l3j>;
850	vdda12-supply = <&vreg_l2j>;
851
852	phys = <&smb2360_1_eusb2_repeater>;
853
854	status = "okay";
855};
856
857&usb_1_ss1_qmpphy {
858	vdda-phy-supply = <&vreg_l3e>;
859	vdda-pll-supply = <&vreg_l2d>;
860
861	status = "okay";
862};
863
864&usb_1_ss1 {
865	status = "okay";
866};
867
868&usb_1_ss1_dwc3 {
869	dr_mode = "host";
870};
871
872&usb_1_ss1_dwc3_hs {
873	remote-endpoint = <&pmic_glink_ss1_hs_in>;
874};
875
876&usb_1_ss1_qmpphy_out {
877	remote-endpoint = <&pmic_glink_ss1_ss_in>;
878};
879
880/* MP0 goes to the Surface Connector, MP1 goes to the USB-A port */
881&usb_mp {
882	status = "okay";
883};
884
885&usb_mp_hsphy0 {
886	vdd-supply = <&vreg_l2e>;
887	vdda12-supply = <&vreg_l2j>;
888
889	phys = <&smb2360_2_eusb2_repeater>;
890
891	status = "okay";
892};
893
894&usb_mp_hsphy1 {
895	vdd-supply = <&vreg_l2e>;
896	vdda12-supply = <&vreg_l2j>;
897
898	phys = <&ptn3222>;
899
900	status = "okay";
901};
902
903&usb_mp_qmpphy0 {
904	vdda-phy-supply = <&vreg_l3e>;
905	vdda-pll-supply = <&vreg_l3c>;
906
907	status = "okay";
908};
909
910&usb_mp_qmpphy1 {
911	vdda-phy-supply = <&vreg_l3e>;
912	vdda-pll-supply = <&vreg_l3c>;
913
914	status = "okay";
915};
916