xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/x1e80100-microsoft-romulus.dtsi (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
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	wcd938x: audio-codec {
26		compatible = "qcom,wcd9385-codec";
27
28		reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>;
29
30		qcom,micbias1-microvolt = <1800000>;
31		qcom,micbias2-microvolt = <1800000>;
32		qcom,micbias3-microvolt = <1800000>;
33		qcom,micbias4-microvolt = <1800000>;
34		qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
35		qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
36		qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
37		qcom,rx-device = <&wcd_rx>;
38		qcom,tx-device = <&wcd_tx>;
39
40
41		vdd-buck-supply = <&vreg_l15b>;
42		vdd-rxtx-supply = <&vreg_l15b>;
43		vdd-io-supply = <&vreg_l15b>;
44		vdd-mic-bias-supply = <&vreg_bob1>;
45
46		pinctrl-0 = <&wcd_default>;
47		pinctrl-names = "default";
48
49		#sound-dai-cells = <1>;
50	};
51
52	backlight: backlight {
53		compatible = "pwm-backlight";
54		pwms = <&pmk8550_pwm 0 5000000>;
55		enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
56		/* TODO: power-supply? */
57
58		pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
59		pinctrl-names = "default";
60	};
61
62	gpio-keys {
63		compatible = "gpio-keys";
64
65		pinctrl-0 = <&hall_int_n_default>;
66		pinctrl-names = "default";
67
68		switch-lid {
69			gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
70			linux,input-type = <EV_SW>;
71			linux,code = <SW_LID>;
72			wakeup-source;
73			wakeup-event-action = <EV_ACT_DEASSERTED>;
74		};
75	};
76
77	leds {
78		compatible = "gpio-leds";
79
80		pinctrl-names = "default";
81		pinctrl-0 = <&cam_indicator_en>;
82
83		led-camera-indicator {
84			label = "white:camera-indicator";
85			function = LED_FUNCTION_INDICATOR;
86			color = <LED_COLOR_ID_WHITE>;
87			gpios = <&tlmm 225 GPIO_ACTIVE_HIGH>;
88			linux,default-trigger = "none";
89			default-state = "off";
90			/* Reuse as a panic indicator until we get a "camera on" trigger */
91			panic-indicator;
92		};
93	};
94
95	pmic-glink {
96		compatible = "qcom,x1e80100-pmic-glink",
97			     "qcom,sm8550-pmic-glink",
98			     "qcom,pmic-glink";
99		#address-cells = <1>;
100		#size-cells = <0>;
101		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
102				    <&tlmm 123 GPIO_ACTIVE_HIGH>;
103
104		/* Left-side rear port */
105		connector@0 {
106			compatible = "usb-c-connector";
107			reg = <0>;
108			power-role = "dual";
109			data-role = "dual";
110
111			ports {
112				#address-cells = <1>;
113				#size-cells = <0>;
114
115				port@0 {
116					reg = <0>;
117
118					pmic_glink_ss0_hs_in: endpoint {
119						remote-endpoint = <&usb_1_ss0_dwc3_hs>;
120					};
121				};
122
123				port@1 {
124					reg = <1>;
125
126					pmic_glink_ss0_ss_in: endpoint {
127						remote-endpoint = <&retimer_ss0_ss_out>;
128					};
129				};
130
131				port@2 {
132					reg = <2>;
133
134					pmic_glink_ss0_con_sbu_in: endpoint {
135						remote-endpoint = <&retimer_ss0_con_sbu_out>;
136					};
137				};
138			};
139		};
140
141		/* Left-side front port */
142		connector@1 {
143			compatible = "usb-c-connector";
144			reg = <1>;
145			power-role = "dual";
146			data-role = "dual";
147
148			ports {
149				#address-cells = <1>;
150				#size-cells = <0>;
151
152				port@0 {
153					reg = <0>;
154
155					pmic_glink_ss1_hs_in: endpoint {
156						remote-endpoint = <&usb_1_ss1_dwc3_hs>;
157					};
158				};
159
160				port@1 {
161					reg = <1>;
162
163					pmic_glink_ss1_ss_in: endpoint {
164						remote-endpoint = <&retimer_ss1_ss_out>;
165					};
166				};
167
168				port@2 {
169					reg = <2>;
170
171					pmic_glink_ss1_con_sbu_in: endpoint {
172						remote-endpoint = <&retimer_ss1_con_sbu_out>;
173					};
174				};
175			};
176		};
177	};
178
179	reserved-memory {
180		linux,cma {
181			compatible = "shared-dma-pool";
182			size = <0x0 0x8000000>;
183			reusable;
184			linux,cma-default;
185		};
186	};
187
188	vreg_edp_3p3: regulator-edp-3p3 {
189		compatible = "regulator-fixed";
190
191		regulator-name = "VREG_EDP_3P3";
192		regulator-min-microvolt = <3300000>;
193		regulator-max-microvolt = <3300000>;
194
195		gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
196		enable-active-high;
197
198		pinctrl-0 = <&edp_reg_en>;
199		pinctrl-names = "default";
200
201		regulator-boot-on;
202	};
203
204	vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
205		compatible = "regulator-fixed";
206
207		regulator-name = "VREG_RTMR0_1P15";
208
209		regulator-min-microvolt = <1150000>;
210		regulator-max-microvolt = <1150000>;
211
212		gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
213		enable-active-high;
214
215		pinctrl-0 = <&rtmr0_1p15_reg_en>;
216		pinctrl-names = "default";
217
218		regulator-boot-on;
219	};
220
221	vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
222		compatible = "regulator-fixed";
223
224		regulator-name = "VREG_RTMR0_1P8";
225
226		regulator-min-microvolt = <1800000>;
227		regulator-max-microvolt = <1800000>;
228
229		gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
230		enable-active-high;
231
232		pinctrl-0 = <&rtmr0_1p8_reg_en>;
233		pinctrl-names = "default";
234
235		regulator-boot-on;
236	};
237
238	vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
239		compatible = "regulator-fixed";
240
241		regulator-name = "VREG_RTMR0_3P3";
242
243		regulator-min-microvolt = <3300000>;
244		regulator-max-microvolt = <3300000>;
245
246		gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
247		enable-active-high;
248
249		pinctrl-0 = <&rtmr0_3p3_reg_en>;
250		pinctrl-names = "default";
251
252		regulator-boot-on;
253	};
254
255	vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
256		compatible = "regulator-fixed";
257
258		regulator-name = "VREG_RTMR1_1P15";
259
260		regulator-min-microvolt = <1150000>;
261		regulator-max-microvolt = <1150000>;
262
263		gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
264		enable-active-high;
265
266		pinctrl-0 = <&rtmr1_1p15_reg_en>;
267		pinctrl-names = "default";
268
269		regulator-boot-on;
270	};
271
272	vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
273		compatible = "regulator-fixed";
274
275		regulator-name = "VREG_RTMR1_1P8";
276
277		regulator-min-microvolt = <1800000>;
278		regulator-max-microvolt = <1800000>;
279
280		gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
281		enable-active-high;
282
283		pinctrl-0 = <&rtmr1_1p8_reg_en>;
284		pinctrl-names = "default";
285
286		regulator-boot-on;
287	};
288
289	vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
290		compatible = "regulator-fixed";
291
292		regulator-name = "VREG_RTMR1_3P3";
293
294		regulator-min-microvolt = <3300000>;
295		regulator-max-microvolt = <3300000>;
296
297		gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
298		enable-active-high;
299
300		pinctrl-0 = <&rtmr1_3p3_reg_en>;
301		pinctrl-names = "default";
302
303		regulator-boot-on;
304	};
305
306
307	vreg_nvme: regulator-nvme {
308		compatible = "regulator-fixed";
309
310		regulator-name = "VREG_NVME_3P3";
311		regulator-min-microvolt = <3300000>;
312		regulator-max-microvolt = <3300000>;
313
314		gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
315		enable-active-high;
316
317		pinctrl-0 = <&nvme_reg_en>;
318		pinctrl-names = "default";
319
320		regulator-boot-on;
321	};
322
323	vph_pwr: regulator-vph-pwr {
324		compatible = "regulator-fixed";
325
326		regulator-name = "vph_pwr";
327		regulator-min-microvolt = <3700000>;
328		regulator-max-microvolt = <3700000>;
329
330		regulator-always-on;
331		regulator-boot-on;
332	};
333
334	sound {
335		compatible = "qcom,x1e80100-sndcard";
336		model = "X1E80100-Romulus";
337		audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT",
338				"SpkrRight IN", "WSA WSA_SPK2 OUT",
339				"IN1_HPHL", "HPHL_OUT",
340				"IN2_HPHR", "HPHR_OUT",
341				"AMIC2", "MIC BIAS2",
342				"VA DMIC0", "MIC BIAS3",
343				"VA DMIC1", "MIC BIAS3",
344				"VA DMIC0", "VA MIC BIAS3",
345				"VA DMIC1", "VA MIC BIAS3",
346				"TX SWR_INPUT1", "ADC2_OUTPUT";
347
348		va-dai-link {
349			link-name = "VA Capture";
350
351			cpu {
352				sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
353			};
354
355			codec {
356				sound-dai = <&lpass_vamacro 0>;
357			};
358
359			platform {
360				sound-dai = <&q6apm>;
361			};
362		};
363
364		wcd-capture-dai-link {
365			link-name = "WCD Capture";
366
367			cpu {
368				sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
369			};
370
371			codec {
372				sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
373			};
374
375			platform {
376				sound-dai = <&q6apm>;
377			};
378		};
379
380		wcd-playback-dai-link {
381			link-name = "WCD Playback";
382
383			cpu {
384				sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
385			};
386
387			codec {
388				sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
389			};
390
391			platform {
392				sound-dai = <&q6apm>;
393			};
394		};
395
396		wsa-dai-link {
397			link-name = "WSA Playback";
398
399			cpu {
400				sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
401			};
402
403			codec {
404				sound-dai = <&left_spkr>, <&right_spkr>,
405					    <&swr0 0>, <&lpass_wsamacro 0>;
406			};
407
408			platform {
409				sound-dai = <&q6apm>;
410			};
411		};
412	};
413};
414
415&apps_rsc {
416	regulators-0 {
417		compatible = "qcom,pm8550-rpmh-regulators";
418		qcom,pmic-id = "b";
419
420		vdd-bob1-supply = <&vph_pwr>;
421		vdd-bob2-supply = <&vph_pwr>;
422		vdd-l1-l4-l10-supply = <&vreg_s4c>;
423		vdd-l2-l13-l14-supply = <&vreg_bob1>;
424		vdd-l5-l16-supply = <&vreg_bob1>;
425		vdd-l6-l7-supply = <&vreg_bob2>;
426		vdd-l8-l9-supply = <&vreg_bob1>;
427		vdd-l12-supply = <&vreg_s5j>;
428		vdd-l15-supply = <&vreg_s4c>;
429		vdd-l17-supply = <&vreg_bob2>;
430
431		vreg_bob1: bob1 {
432			regulator-name = "vreg_bob1";
433			regulator-min-microvolt = <3008000>;
434			regulator-max-microvolt = <3960000>;
435			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
436		};
437
438		vreg_bob2: bob2 {
439			regulator-name = "vreg_bob2";
440			regulator-min-microvolt = <2504000>;
441			regulator-max-microvolt = <3008000>;
442			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
443		};
444
445		vreg_l1b: ldo1 {
446			regulator-name = "vreg_l1b";
447			regulator-min-microvolt = <1800000>;
448			regulator-max-microvolt = <1800000>;
449			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
450		};
451
452		vreg_l2b: ldo2 {
453			regulator-name = "vreg_l2b";
454			regulator-min-microvolt = <3072000>;
455			regulator-max-microvolt = <3072000>;
456			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
457		};
458
459		vreg_l4b: ldo4 {
460			regulator-name = "vreg_l4b";
461			regulator-min-microvolt = <1800000>;
462			regulator-max-microvolt = <1800000>;
463			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
464		};
465
466		vreg_l5b: ldo5 {
467			regulator-name = "vreg_l5b";
468			regulator-min-microvolt = <3000000>;
469			regulator-max-microvolt = <3000000>;
470			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
471		};
472
473		vreg_l6b: ldo6 {
474			regulator-name = "vreg_l6b";
475			regulator-min-microvolt = <1800000>;
476			regulator-max-microvolt = <2960000>;
477			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
478		};
479
480		vreg_l7b: ldo7 {
481			regulator-name = "vreg_l7b";
482			regulator-min-microvolt = <2800000>;
483			regulator-max-microvolt = <2800000>;
484			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
485		};
486
487		vreg_l8b: ldo8 {
488			regulator-name = "vreg_l8b";
489			regulator-min-microvolt = <3072000>;
490			regulator-max-microvolt = <3072000>;
491			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
492		};
493
494		vreg_l9b: ldo9 {
495			regulator-name = "vreg_l9b";
496			regulator-min-microvolt = <2960000>;
497			regulator-max-microvolt = <2960000>;
498			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
499		};
500
501		vreg_l10b: ldo10 {
502			regulator-name = "vreg_l10b";
503			regulator-min-microvolt = <1800000>;
504			regulator-max-microvolt = <1800000>;
505			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
506		};
507
508		vreg_l12b: ldo12 {
509			regulator-name = "vreg_l12b";
510			regulator-min-microvolt = <1200000>;
511			regulator-max-microvolt = <1200000>;
512			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
513			regulator-always-on;
514		};
515
516		vreg_l13b: ldo13 {
517			regulator-name = "vreg_l13b";
518			regulator-min-microvolt = <3072000>;
519			regulator-max-microvolt = <3072000>;
520			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
521		};
522
523		vreg_l14b: ldo14 {
524			regulator-name = "vreg_l14b";
525			regulator-min-microvolt = <3072000>;
526			regulator-max-microvolt = <3072000>;
527			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
528		};
529
530		vreg_l15b: ldo15 {
531			regulator-name = "vreg_l15b";
532			regulator-min-microvolt = <1800000>;
533			regulator-max-microvolt = <1800000>;
534			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
535			regulator-always-on;
536		};
537
538		vreg_l16b: ldo16 {
539			regulator-name = "vreg_l16b";
540			regulator-min-microvolt = <2912000>;
541			regulator-max-microvolt = <2912000>;
542			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
543		};
544
545		vreg_l17b: ldo17 {
546			regulator-name = "vreg_l17b";
547			regulator-min-microvolt = <2504000>;
548			regulator-max-microvolt = <2504000>;
549			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
550		};
551	};
552
553	regulators-1 {
554		compatible = "qcom,pm8550ve-rpmh-regulators";
555		qcom,pmic-id = "c";
556
557		vdd-l1-supply = <&vreg_s5j>;
558		vdd-l2-supply = <&vreg_s1f>;
559		vdd-l3-supply = <&vreg_s1f>;
560		vdd-s4-supply = <&vph_pwr>;
561
562		vreg_s4c: smps4 {
563			regulator-name = "vreg_s4c";
564			regulator-min-microvolt = <1856000>;
565			regulator-max-microvolt = <2000000>;
566			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
567		};
568
569		vreg_l1c: ldo1 {
570			regulator-name = "vreg_l1c";
571			regulator-min-microvolt = <1200000>;
572			regulator-max-microvolt = <1200000>;
573			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
574		};
575
576		vreg_l2c: ldo2 {
577			regulator-name = "vreg_l2c";
578			regulator-min-microvolt = <880000>;
579			regulator-max-microvolt = <920000>;
580			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
581		};
582
583		vreg_l3c: ldo3 {
584			regulator-name = "vreg_l3c";
585			regulator-min-microvolt = <912000>;
586			regulator-max-microvolt = <920000>;
587			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
588		};
589	};
590
591	regulators-2 {
592		compatible = "qcom,pmc8380-rpmh-regulators";
593		qcom,pmic-id = "d";
594
595		vdd-l1-supply = <&vreg_s1f>;
596		vdd-l2-supply = <&vreg_s1f>;
597		vdd-l3-supply = <&vreg_s4c>;
598		vdd-s1-supply = <&vph_pwr>;
599
600		vreg_l1d: ldo1 {
601			regulator-name = "vreg_l1d";
602			regulator-min-microvolt = <880000>;
603			regulator-max-microvolt = <920000>;
604			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
605		};
606
607		vreg_l2d: ldo2 {
608			regulator-name = "vreg_l2d";
609			regulator-min-microvolt = <912000>;
610			regulator-max-microvolt = <920000>;
611			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
612		};
613
614		vreg_l3d: ldo3 {
615			regulator-name = "vreg_l3d";
616			regulator-min-microvolt = <1800000>;
617			regulator-max-microvolt = <1800000>;
618			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
619		};
620	};
621
622	regulators-3 {
623		compatible = "qcom,pmc8380-rpmh-regulators";
624		qcom,pmic-id = "e";
625
626		vdd-l2-supply = <&vreg_s1f>;
627		vdd-l3-supply = <&vreg_s5j>;
628
629		vreg_l2e: ldo2 {
630			regulator-name = "vreg_l2e";
631			regulator-min-microvolt = <880000>;
632			regulator-max-microvolt = <920000>;
633			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
634		};
635
636		vreg_l3e: ldo3 {
637			regulator-name = "vreg_l3e";
638			regulator-min-microvolt = <1200000>;
639			regulator-max-microvolt = <1200000>;
640			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
641		};
642	};
643
644	regulators-4 {
645		compatible = "qcom,pmc8380-rpmh-regulators";
646		qcom,pmic-id = "f";
647
648		vdd-l1-supply = <&vreg_s5j>;
649		vdd-l2-supply = <&vreg_s5j>;
650		vdd-l3-supply = <&vreg_s5j>;
651		vdd-s1-supply = <&vph_pwr>;
652
653		vreg_s1f: smps1 {
654			regulator-name = "vreg_s1f";
655			regulator-min-microvolt = <700000>;
656			regulator-max-microvolt = <1100000>;
657			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
658		};
659
660		vreg_l1f: ldo1 {
661			regulator-name = "vreg_l1f";
662			regulator-min-microvolt = <1024000>;
663			regulator-max-microvolt = <1024000>;
664			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
665		};
666
667		vreg_l2f: ldo2 {
668			regulator-name = "vreg_l2f";
669			regulator-min-microvolt = <1024000>;
670			regulator-max-microvolt = <1024000>;
671			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
672		};
673
674		vreg_l3f: ldo3 {
675			regulator-name = "vreg_l3f";
676			regulator-min-microvolt = <1024000>;
677			regulator-max-microvolt = <1024000>;
678			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
679		};
680	};
681
682	regulators-6 {
683		compatible = "qcom,pm8550ve-rpmh-regulators";
684		qcom,pmic-id = "i";
685
686		vdd-l1-supply = <&vreg_s4c>;
687		vdd-l2-supply = <&vreg_s5j>;
688		vdd-l3-supply = <&vreg_s1f>;
689		vdd-s1-supply = <&vph_pwr>;
690		vdd-s2-supply = <&vph_pwr>;
691
692		vreg_s1i: smps1 {
693			regulator-name = "vreg_s1i";
694			regulator-min-microvolt = <900000>;
695			regulator-max-microvolt = <920000>;
696			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
697		};
698
699		vreg_s2i: smps2 {
700			regulator-name = "vreg_s2i";
701			regulator-min-microvolt = <1000000>;
702			regulator-max-microvolt = <1100000>;
703			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
704		};
705
706		vreg_l1i: ldo1 {
707			regulator-name = "vreg_l1i";
708			regulator-min-microvolt = <1800000>;
709			regulator-max-microvolt = <1800000>;
710			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
711		};
712
713		vreg_l2i: ldo2 {
714			regulator-name = "vreg_l2i";
715			regulator-min-microvolt = <1200000>;
716			regulator-max-microvolt = <1200000>;
717			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
718		};
719
720		vreg_l3i: ldo3 {
721			regulator-name = "vreg_l3i";
722			regulator-min-microvolt = <880000>;
723			regulator-max-microvolt = <920000>;
724			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
725		};
726	};
727
728	regulators-7 {
729		compatible = "qcom,pm8550ve-rpmh-regulators";
730		qcom,pmic-id = "j";
731
732		vdd-l1-supply = <&vreg_s1f>;
733		vdd-l2-supply = <&vreg_s5j>;
734		vdd-l3-supply = <&vreg_s1f>;
735		vdd-s5-supply = <&vph_pwr>;
736
737		vreg_s5j: smps5 {
738			regulator-name = "vreg_s5j";
739			regulator-min-microvolt = <1256000>;
740			regulator-max-microvolt = <1304000>;
741			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
742		};
743
744		vreg_l1j: ldo1 {
745			regulator-name = "vreg_l1j";
746			regulator-min-microvolt = <912000>;
747			regulator-max-microvolt = <920000>;
748			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
749		};
750
751		vreg_l2j: ldo2 {
752			regulator-name = "vreg_l2j";
753			regulator-min-microvolt = <1256000>;
754			regulator-max-microvolt = <1256000>;
755			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
756		};
757
758		vreg_l3j: ldo3 {
759			regulator-name = "vreg_l3j";
760			regulator-min-microvolt = <880000>;
761			regulator-max-microvolt = <920000>;
762			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
763		};
764	};
765};
766
767&gpu {
768	status = "okay";
769
770	zap-shader {
771		memory-region = <&gpu_microcode_mem>;
772		firmware-name = "qcom/x1e80100/microsoft/qcdxkmsuc8380.mbn";
773	};
774};
775
776&i2c0 {
777	clock-frequency = <100000>;
778
779	status = "okay";
780
781	/* Something @39, @3e, @44 */
782};
783
784&i2c3 {
785	clock-frequency = <400000>;
786
787	status = "okay";
788
789	/* Left-side rear port */
790	typec-mux@8 {
791		compatible = "parade,ps8830";
792		reg = <0x8>;
793
794		reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
795
796		clocks = <&rpmhcc RPMH_RF_CLK3>;
797
798		vdd-supply = <&vreg_rtmr0_1p15>;
799		vdd33-supply = <&vreg_rtmr0_3p3>;
800		vdd33-cap-supply = <&vreg_rtmr0_3p3>;
801		vddar-supply = <&vreg_rtmr0_1p15>;
802		vddat-supply = <&vreg_rtmr0_1p15>;
803		vddio-supply = <&vreg_rtmr0_1p8>;
804
805		pinctrl-0 = <&rtmr0_default>;
806		pinctrl-names = "default";
807
808		retimer-switch;
809		orientation-switch;
810
811		ports {
812			#address-cells = <1>;
813			#size-cells = <0>;
814
815			port@0 {
816				reg = <0>;
817
818				retimer_ss0_ss_out: endpoint {
819					remote-endpoint = <&pmic_glink_ss0_ss_in>;
820				};
821			};
822
823			port@1 {
824				reg = <1>;
825
826				retimer_ss0_ss_in: endpoint {
827					remote-endpoint = <&usb_1_ss0_qmpphy_out>;
828				};
829			};
830
831			port@2 {
832				reg = <2>;
833
834				retimer_ss0_con_sbu_out: endpoint {
835					remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
836				};
837			};
838		};
839	};
840
841};
842
843&i2c4 {
844	clock-frequency = <400000>;
845
846	status = "okay";
847
848	/* Something @18, @2c, @2e */
849};
850
851&i2c5 {
852	clock-frequency = <400000>;
853
854	status = "okay";
855
856	ptn3222: redriver@4f {
857		compatible = "nxp,ptn3222";
858		reg = <0x4f>;
859
860		reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
861
862		vdd3v3-supply = <&vreg_l13b>;
863		vdd1v8-supply = <&vreg_l4b>;
864
865		#phy-cells = <0>;
866	};
867};
868
869&i2c7 {
870	clock-frequency = <400000>;
871
872	status = "okay";
873
874	/* Left-side front port */
875	typec-mux@8 {
876		compatible = "parade,ps8830";
877		reg = <0x8>;
878
879		reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
880
881		clocks = <&rpmhcc RPMH_RF_CLK4>;
882
883		vdd-supply = <&vreg_rtmr1_1p15>;
884		vdd33-supply = <&vreg_rtmr1_3p3>;
885		vdd33-cap-supply = <&vreg_rtmr1_3p3>;
886		vddar-supply = <&vreg_rtmr1_1p15>;
887		vddat-supply = <&vreg_rtmr1_1p15>;
888		vddio-supply = <&vreg_rtmr1_1p8>;
889
890		retimer-switch;
891		orientation-switch;
892
893		ports {
894			#address-cells = <1>;
895			#size-cells = <0>;
896
897			port@0 {
898				reg = <0>;
899
900				retimer_ss1_ss_out: endpoint {
901					remote-endpoint = <&pmic_glink_ss1_ss_in>;
902				};
903			};
904
905			port@1 {
906				reg = <1>;
907
908				retimer_ss1_ss_in: endpoint {
909					remote-endpoint = <&usb_1_ss1_qmpphy_out>;
910				};
911			};
912
913			port@2 {
914				reg = <2>;
915
916				retimer_ss1_con_sbu_out: endpoint {
917					remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
918				};
919			};
920		};
921	};
922};
923
924&lpass_tlmm {
925	spkr_01_sd_n_active: spkr-01-sd-n-active-state {
926		pins = "gpio12";
927		function = "gpio";
928		drive-strength = <16>;
929		bias-disable;
930		output-low;
931	};
932};
933
934&lpass_vamacro {
935	qcom,dmic-sample-rate = <4800000>;
936
937	vdd-micb-supply = <&vreg_l1b>;
938
939	pinctrl-0 = <&dmic01_default>;
940	pinctrl-names = "default";
941};
942
943&mdss {
944	status = "okay";
945};
946
947&mdss_dp0 {
948	status = "okay";
949};
950
951&mdss_dp0_out {
952	data-lanes = <0 1>;
953	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
954};
955
956&mdss_dp1 {
957	status = "okay";
958};
959
960&mdss_dp1_out {
961	data-lanes = <0 1>;
962	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
963};
964
965&mdss_dp3 {
966	/delete-property/ #sound-dai-cells;
967
968	status = "okay";
969
970	aux-bus {
971		panel {
972			compatible = "edp-panel";
973
974			backlight = <&backlight>;
975			power-supply = <&vreg_edp_3p3>;
976
977			port {
978				edp_panel_in: endpoint {
979					remote-endpoint = <&mdss_dp3_out>;
980				};
981			};
982		};
983	};
984
985	ports {
986		port@1 {
987			reg = <1>;
988
989			mdss_dp3_out: endpoint {
990				data-lanes = <0 1 2 3>;
991				link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
992
993				remote-endpoint = <&edp_panel_in>;
994			};
995		};
996	};
997};
998
999&mdss_dp3_phy {
1000	vdda-phy-supply = <&vreg_l3j>;
1001	vdda-pll-supply = <&vreg_l2j>;
1002
1003	status = "okay";
1004};
1005
1006&pcie3 {
1007	perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
1008	wake-gpios = <&tlmm 145 GPIO_ACTIVE_HIGH>;
1009
1010	pinctrl-0 = <&pcie3_default>;
1011	pinctrl-names = "default";
1012
1013	/* The RTS5261 chip on the other side only does Gen1x1 anyway */
1014	max-link-speed = <1>;
1015	status = "okay";
1016};
1017
1018&pcie3_phy {
1019	vdda-phy-supply = <&vreg_l3c>;
1020	vdda-pll-supply = <&vreg_l3e>;
1021
1022	status = "okay";
1023};
1024
1025&pcie4 {
1026	status = "okay";
1027};
1028
1029&pcie4_phy {
1030	vdda-phy-supply = <&vreg_l3i>;
1031	vdda-pll-supply = <&vreg_l3e>;
1032
1033	status = "okay";
1034};
1035
1036&pcie6a {
1037	perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1038	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1039
1040	vddpe-3v3-supply = <&vreg_nvme>;
1041
1042	pinctrl-0 = <&pcie6a_default>;
1043	pinctrl-names = "default";
1044
1045	status = "okay";
1046};
1047
1048&pcie6a_phy {
1049	vdda-phy-supply = <&vreg_l1d>;
1050	vdda-pll-supply = <&vreg_l2j>;
1051
1052	status = "okay";
1053};
1054
1055&pm8550_gpios {
1056	rtmr0_default: rtmr0-reset-n-active-state {
1057		pins = "gpio10";
1058		function = "normal";
1059		power-source = <1>; /* 1.8V */
1060	};
1061
1062	rtmr0_3p3_reg_en: rtmr0-3p3-reg-en-state {
1063		pins = "gpio11";
1064		function = "normal";
1065		power-source = <1>; /* 1.8V */
1066	};
1067};
1068
1069&pm8550ve_9_gpios {
1070	rtmr0_1p8_reg_en: rtmr0-1p8-reg-en-state {
1071		pins = "gpio8";
1072		function = "normal";
1073		power-source = <1>; /* 1.8V */
1074	};
1075};
1076
1077&pmc8380_3_gpios {
1078	edp_bl_en: edp-bl-en-state {
1079		pins = "gpio4";
1080		function = "normal";
1081		power-source = <1>; /* 1.8V */
1082		input-disable;
1083		output-enable;
1084	};
1085};
1086
1087&pmc8380_5_gpios {
1088	rtmr0_1p15_reg_en: rtmr0-1p15-reg-en-state {
1089		pins = "gpio8";
1090		function = "normal";
1091		power-source = <1>; /* 1.8V */
1092	};
1093};
1094
1095&pmk8550_pwm {
1096	status = "okay";
1097};
1098
1099&pmk8550_gpios {
1100	edp_bl_pwm: edp-bl-pwm-state {
1101		pins = "gpio5";
1102		function = "func3";
1103	};
1104};
1105
1106&qupv3_0 {
1107	status = "okay";
1108};
1109
1110&qupv3_1 {
1111	status = "okay";
1112};
1113
1114&qupv3_2 {
1115	status = "okay";
1116};
1117
1118&remoteproc_adsp {
1119	firmware-name = "qcom/x1e80100/microsoft/Romulus/qcadsp8380.mbn",
1120			"qcom/x1e80100/microsoft/Romulus/adsp_dtbs.elf";
1121
1122	status = "okay";
1123};
1124
1125&remoteproc_cdsp {
1126	firmware-name = "qcom/x1e80100/microsoft/Romulus/qccdsp8380.mbn",
1127			"qcom/x1e80100/microsoft/Romulus/cdsp_dtbs.elf";
1128
1129	status = "okay";
1130};
1131
1132&smb2360_0 {
1133	status = "okay";
1134};
1135
1136&smb2360_0_eusb2_repeater {
1137	vdd18-supply = <&vreg_l3d>;
1138	vdd3-supply = <&vreg_l2b>;
1139};
1140
1141&smb2360_1 {
1142	status = "okay";
1143};
1144
1145&smb2360_1_eusb2_repeater {
1146	vdd18-supply = <&vreg_l3d>;
1147	vdd3-supply = <&vreg_l14b>;
1148};
1149
1150&smb2360_2 {
1151	status = "okay";
1152};
1153
1154&smb2360_2_eusb2_repeater {
1155	vdd18-supply = <&vreg_l3d>;
1156	vdd3-supply = <&vreg_l8b>;
1157};
1158
1159&swr0 {
1160	pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
1161	pinctrl-names = "default";
1162
1163	status = "okay";
1164
1165	/* WSA8845, Left speaker */
1166	left_spkr: speaker@0,0 {
1167		compatible = "sdw20217020400";
1168		reg = <0 0>;
1169		reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
1170		#sound-dai-cells = <0>;
1171		sound-name-prefix = "SpkrLeft";
1172		vdd-1p8-supply = <&vreg_l15b>;
1173		vdd-io-supply = <&vreg_l12b>;
1174		qcom,port-mapping = <1 2 3 7 10 13>;
1175	};
1176
1177	/* WSA8845, Right speaker */
1178	right_spkr: speaker@0,1 {
1179		compatible = "sdw20217020400";
1180		reg = <0 1>;
1181		reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
1182		#sound-dai-cells = <0>;
1183		sound-name-prefix = "SpkrRight";
1184		vdd-1p8-supply = <&vreg_l15b>;
1185		vdd-io-supply = <&vreg_l12b>;
1186		qcom,port-mapping = <4 5 6 7 11 13>;
1187	};
1188};
1189
1190&swr1 {
1191	status = "okay";
1192
1193	/* WCD9385 RX */
1194	wcd_rx: codec@0,4 {
1195		compatible = "sdw20217010d00";
1196		reg = <0 4>;
1197		qcom,rx-port-mapping = <1 2 3 4 5>;
1198	};
1199};
1200
1201&swr2 {
1202	status = "okay";
1203
1204	/* WCD9385 TX */
1205	wcd_tx: codec@0,3 {
1206		compatible = "sdw20217010d00";
1207		reg = <0 3>;
1208		qcom,tx-port-mapping = <2 2 3 4>;
1209	};
1210};
1211
1212&tlmm {
1213	gpio-reserved-ranges = <44 4>, /* SPI (TPM) */
1214			       <238 1>; /* UFS Reset */
1215
1216	hall_int_n_default: hall-int-n-state {
1217		pins = "gpio2";
1218		function = "gpio";
1219		bias-disable;
1220	};
1221
1222	nvme_reg_en: nvme-reg-en-state {
1223		pins = "gpio18";
1224		function = "gpio";
1225		drive-strength = <2>;
1226		bias-disable;
1227	};
1228
1229	edp_reg_en: edp-reg-en-state {
1230		pins = "gpio70";
1231		function = "gpio";
1232		drive-strength = <16>;
1233		bias-disable;
1234	};
1235
1236	ssam_state: ssam-state-state {
1237		pins = "gpio91";
1238		function = "gpio";
1239		bias-disable;
1240	};
1241
1242	pcie3_default: pcie3-default-state {
1243		perst-n-pins {
1244			pins = "gpio143";
1245			function = "gpio";
1246			drive-strength = <2>;
1247			bias-disable;
1248		};
1249
1250		clkreq-n-pins {
1251			pins = "gpio144";
1252			function = "pcie3_clk";
1253			drive-strength = <2>;
1254			bias-pull-up;
1255		};
1256
1257		wake-n-pins {
1258			pins = "gpio145";
1259			function = "gpio";
1260			drive-strength = <2>;
1261			bias-pull-up;
1262		};
1263	};
1264
1265	pcie6a_default: pcie6a-default-state {
1266		perst-n-pins {
1267			pins = "gpio152";
1268			function = "gpio";
1269			drive-strength = <2>;
1270			bias-disable;
1271		};
1272
1273		clkreq-n-pins {
1274			pins = "gpio153";
1275			function = "pcie6a_clk";
1276			drive-strength = <2>;
1277			bias-pull-up;
1278		};
1279
1280		wake-n-pins {
1281			pins = "gpio154";
1282			function = "gpio";
1283			drive-strength = <2>;
1284			bias-pull-up;
1285		};
1286	};
1287
1288	rtmr1_1p8_reg_en: rtmr1-1p8-reg-en-state {
1289		pins = "gpio175";
1290		function = "gpio";
1291		drive-strength = <2>;
1292		bias-disable;
1293	};
1294
1295	rtmr1_3p3_reg_en: rtmr1-3p3-reg-en-state {
1296		pins = "gpio186";
1297		function = "gpio";
1298		drive-strength = <2>;
1299		bias-disable;
1300	};
1301
1302	rtmr1_1p15_reg_en: rtmr1-1p15-reg-en-state {
1303		pins = "gpio188";
1304		function = "gpio";
1305		drive-strength = <2>;
1306		bias-disable;
1307	};
1308
1309	wcd_default: wcd-reset-n-active-state {
1310		pins = "gpio191";
1311		function = "gpio";
1312		drive-strength = <16>;
1313		bias-disable;
1314		output-low;
1315	};
1316
1317	cam_indicator_en: cam-indicator-en-state {
1318		pins = "gpio225";
1319		function = "gpio";
1320		drive-strength = <2>;
1321		bias-disable;
1322	};
1323};
1324
1325&uart2 {
1326	status = "okay";
1327
1328	embedded-controller {
1329		compatible = "microsoft,surface-sam";
1330
1331		interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>;
1332
1333		current-speed = <4000000>;
1334
1335		pinctrl-0 = <&ssam_state>;
1336		pinctrl-names = "default";
1337	};
1338};
1339
1340&usb_1_ss0_hsphy {
1341	vdd-supply = <&vreg_l3j>;
1342	vdda12-supply = <&vreg_l2j>;
1343
1344	phys = <&smb2360_0_eusb2_repeater>;
1345
1346	status = "okay";
1347};
1348
1349&usb_1_ss0_qmpphy {
1350	vdda-phy-supply = <&vreg_l2j>;
1351	vdda-pll-supply = <&vreg_l1j>;
1352
1353	status = "okay";
1354};
1355
1356&usb_1_ss0 {
1357	status = "okay";
1358};
1359
1360&usb_1_ss0_dwc3 {
1361	dr_mode = "host";
1362};
1363
1364&usb_1_ss0_dwc3_hs {
1365	remote-endpoint = <&pmic_glink_ss0_hs_in>;
1366};
1367
1368&usb_1_ss0_qmpphy_out {
1369	remote-endpoint = <&retimer_ss0_ss_in>;
1370};
1371
1372&usb_1_ss1_hsphy {
1373	vdd-supply = <&vreg_l3j>;
1374	vdda12-supply = <&vreg_l2j>;
1375
1376	phys = <&smb2360_1_eusb2_repeater>;
1377
1378	status = "okay";
1379};
1380
1381&usb_1_ss1_qmpphy {
1382	vdda-phy-supply = <&vreg_l2j>;
1383	vdda-pll-supply = <&vreg_l2d>;
1384
1385	status = "okay";
1386};
1387
1388&usb_1_ss1 {
1389	status = "okay";
1390};
1391
1392&usb_1_ss1_dwc3 {
1393	dr_mode = "host";
1394};
1395
1396&usb_1_ss1_dwc3_hs {
1397	remote-endpoint = <&pmic_glink_ss1_hs_in>;
1398};
1399
1400&usb_1_ss1_qmpphy_out {
1401	remote-endpoint = <&retimer_ss1_ss_in>;
1402};
1403
1404/* MP0 goes to the Surface Connector, MP1 goes to the USB-A port */
1405&usb_mp {
1406	status = "okay";
1407};
1408
1409&usb_mp_hsphy0 {
1410	vdd-supply = <&vreg_l2e>;
1411	vdda12-supply = <&vreg_l2j>;
1412
1413	phys = <&smb2360_2_eusb2_repeater>;
1414
1415	status = "okay";
1416};
1417
1418&usb_mp_hsphy1 {
1419	vdd-supply = <&vreg_l2e>;
1420	vdda12-supply = <&vreg_l2j>;
1421
1422	phys = <&ptn3222>;
1423
1424	status = "okay";
1425};
1426
1427&usb_mp_qmpphy0 {
1428	vdda-phy-supply = <&vreg_l3e>;
1429	vdda-pll-supply = <&vreg_l3c>;
1430
1431	status = "okay";
1432};
1433
1434&usb_mp_qmpphy1 {
1435	vdda-phy-supply = <&vreg_l3e>;
1436	vdda-pll-supply = <&vreg_l3c>;
1437
1438	status = "okay";
1439};
1440