xref: /linux/arch/arm64/boot/dts/qcom/sm8750-mtp.dts (revision d8d2b1f81530988abe2e2bfaceec1c5d30b9a0b4)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/leds/common.h>
10#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
11#include "sm8750.dtsi"
12#include "pm8010.dtsi"
13#include "pm8550.dtsi"
14#define PMK8550VE_SID 8
15#include "pm8550ve.dtsi"
16#include "pmd8028.dtsi"
17#include "pmih0108.dtsi"
18#include "pmk8550.dtsi"
19#include "pmr735d_a.dtsi"
20#include "sm8750-pmics.dtsi"
21
22/ {
23	model = "Qualcomm Technologies, Inc. SM8750 MTP";
24	compatible = "qcom,sm8750-mtp", "qcom,sm8750";
25	chassis-type = "handset";
26
27
28	aliases {
29		serial0 = &uart7;
30	};
31
32	wcd939x: audio-codec {
33		compatible = "qcom,wcd9395-codec", "qcom,wcd9390-codec";
34
35		pinctrl-0 = <&wcd_default>;
36		pinctrl-names = "default";
37
38		qcom,micbias1-microvolt = <1800000>;
39		qcom,micbias2-microvolt = <1800000>;
40		qcom,micbias3-microvolt = <1800000>;
41		qcom,micbias4-microvolt = <1800000>;
42		qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
43		qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
44		qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
45		qcom,rx-device = <&wcd_rx>;
46		qcom,tx-device = <&wcd_tx>;
47
48		reset-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
49
50		vdd-buck-supply = <&vreg_l15b_1p8>;
51		vdd-rxtx-supply = <&vreg_l15b_1p8>;
52		vdd-io-supply = <&vreg_l15b_1p8>;
53		vdd-mic-bias-supply = <&vreg_bob1>;
54		vdd-px-supply = <&vreg_l2i_1p2>;
55
56		#sound-dai-cells = <1>;
57	};
58
59	chosen {
60		stdout-path = "serial0:115200n8";
61	};
62
63	clocks {
64		xo_board: xo-board {
65			compatible = "fixed-clock";
66			clock-frequency = <76800000>;
67			#clock-cells = <0>;
68		};
69
70		sleep_clk: sleep-clk {
71			compatible = "fixed-clock";
72			clock-frequency = <32000>;
73			#clock-cells = <0>;
74		};
75
76		bi_tcxo_div2: bi-tcxo-div2-clk {
77			compatible = "fixed-factor-clock";
78			#clock-cells = <0>;
79
80			clocks = <&rpmhcc RPMH_CXO_CLK>;
81			clock-mult = <1>;
82			clock-div = <2>;
83		};
84
85		bi_tcxo_ao_div2: bi-tcxo-ao-div2-clk {
86			compatible = "fixed-factor-clock";
87			#clock-cells = <0>;
88
89			clocks = <&rpmhcc RPMH_CXO_CLK_A>;
90			clock-mult = <1>;
91			clock-div = <2>;
92		};
93	};
94
95	gpio-keys {
96		compatible = "gpio-keys";
97
98		pinctrl-0 = <&volume_up_n>;
99		pinctrl-names = "default";
100
101		key-volume-up {
102			label = "Volume Up";
103			linux,code = <KEY_VOLUMEUP>;
104			gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
105			debounce-interval = <15>;
106			linux,can-disable;
107			wakeup-source;
108		};
109	};
110
111	sound {
112		compatible = "qcom,sm8750-sndcard", "qcom,sm8450-sndcard";
113		model = "SM8750-MTP";
114		audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
115				"SpkrRight IN", "WSA_SPK2 OUT",
116				"IN1_HPHL", "HPHL_OUT",
117				"IN2_HPHR", "HPHR_OUT",
118				"AMIC2", "MIC BIAS2",
119				"VA DMIC0", "MIC BIAS3", /* MIC4 on schematics */
120				"VA DMIC1", "MIC BIAS3", /* MIC1 on schematics */
121				"VA DMIC2", "MIC BIAS1",
122				"VA DMIC3", "MIC BIAS1",
123				"VA DMIC0", "VA MIC BIAS3",
124				"VA DMIC1", "VA MIC BIAS3",
125				"VA DMIC2", "VA MIC BIAS1",
126				"VA DMIC3", "VA MIC BIAS1",
127				"TX SWR_INPUT1", "ADC2_OUTPUT";
128
129		wcd-playback-dai-link {
130			link-name = "WCD Playback";
131
132			codec {
133				sound-dai = <&wcd939x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
134			};
135
136			cpu {
137				sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
138			};
139
140			platform {
141				sound-dai = <&q6apm>;
142			};
143		};
144
145		wcd-capture-dai-link {
146			link-name = "WCD Capture";
147
148			codec {
149				sound-dai = <&wcd939x 1>, <&swr2 0>, <&lpass_txmacro 0>;
150			};
151
152			cpu {
153				sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
154			};
155
156			platform {
157				sound-dai = <&q6apm>;
158			};
159		};
160
161		wsa-dai-link {
162			link-name = "WSA Playback";
163
164			codec {
165				sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&lpass_wsamacro 0>;
166			};
167
168			cpu {
169				sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
170			};
171
172			platform {
173				sound-dai = <&q6apm>;
174			};
175		};
176
177		va-dai-link {
178			link-name = "VA Capture";
179
180			codec {
181				sound-dai = <&lpass_vamacro 0>;
182			};
183
184			cpu {
185				sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
186			};
187
188			platform {
189				sound-dai = <&q6apm>;
190			};
191		};
192	};
193
194	vph_pwr: vph-pwr-regulator {
195		compatible = "regulator-fixed";
196
197		regulator-name = "vph_pwr";
198		regulator-min-microvolt = <3700000>;
199		regulator-max-microvolt = <3700000>;
200
201		regulator-always-on;
202		regulator-boot-on;
203	};
204
205	/*
206	 * MTPs rev 2.0 (power grid v8) come with two different WiFi chips:
207	 * WCN7850 and WCN786x.
208	 * Device nodes here for the PMU, WiFi and Bluetooth describe the MTP
209	 * variant with WCN7850.
210	 */
211	wcn7850-pmu {
212		compatible = "qcom,wcn7850-pmu";
213
214		pinctrl-names = "default";
215		pinctrl-0 = <&wlan_en>, <&bt_default>;
216
217		wlan-enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
218		bt-enable-gpios = <&pm8550ve_f_gpios 3 GPIO_ACTIVE_HIGH>;
219
220		vdd-supply = <&vreg_s5f_0p85>;
221		vddio-supply = <&vreg_l3f_1p8>;
222		vddio1p2-supply = <&vreg_l2f_1p2>;
223		vddaon-supply = <&vreg_s4d_0p85>;
224		vdddig-supply = <&vreg_s1d_0p97>;
225		vddrfa1p2-supply = <&vreg_s7i_1p2>;
226		vddrfa1p8-supply = <&vreg_s3g_1p8>;
227
228		clocks = <&rpmhcc RPMH_RF_CLK1>;
229
230		regulators {
231			vreg_pmu_rfa_cmn: ldo0 {
232				regulator-name = "vreg_pmu_rfa_cmn";
233			};
234
235			vreg_pmu_aon_0p59: ldo1 {
236				regulator-name = "vreg_pmu_aon_0p59";
237			};
238
239			vreg_pmu_wlcx_0p8: ldo2 {
240				regulator-name = "vreg_pmu_wlcx_0p8";
241			};
242
243			vreg_pmu_wlmx_0p85: ldo3 {
244				regulator-name = "vreg_pmu_wlmx_0p85";
245			};
246
247			vreg_pmu_btcmx_0p85: ldo4 {
248				regulator-name = "vreg_pmu_btcmx_0p85";
249			};
250
251			vreg_pmu_rfa_0p8: ldo5 {
252				regulator-name = "vreg_pmu_rfa_0p8";
253			};
254
255			vreg_pmu_rfa_1p2: ldo6 {
256				regulator-name = "vreg_pmu_rfa_1p2";
257			};
258
259			vreg_pmu_rfa_1p8: ldo7 {
260				regulator-name = "vreg_pmu_rfa_1p8";
261			};
262
263			vreg_pmu_pcie_0p9: ldo8 {
264				regulator-name = "vreg_pmu_pcie_0p9";
265			};
266
267			vreg_pmu_pcie_1p8: ldo9 {
268				regulator-name = "vreg_pmu_pcie_1p8";
269			};
270		};
271	};
272};
273
274&apps_rsc {
275	regulators-0 {
276		compatible = "qcom,pm8550-rpmh-regulators";
277
278		vdd-bob1-supply = <&vph_pwr>;
279		vdd-bob2-supply = <&vph_pwr>;
280		vdd-l1-l4-l10-supply = <&vreg_s3g_1p8>;
281		vdd-l2-l13-l14-supply = <&vreg_bob1>;
282		vdd-l3-supply = <&vreg_s7i_1p2>;
283		vdd-l5-l16-supply = <&vreg_bob1>;
284		vdd-l6-l7-supply = <&vreg_bob1>;
285		vdd-l8-l9-supply = <&vreg_bob1>;
286		vdd-l11-supply = <&vreg_s7i_1p2>;
287		vdd-l12-supply = <&vreg_s3g_1p8>;
288		vdd-l15-supply = <&vreg_s3g_1p8>;
289		vdd-l17-supply = <&vreg_bob2>;
290
291		qcom,pmic-id = "b";
292
293		vreg_bob1: bob1 {
294			regulator-name = "vreg_bob1";
295			regulator-min-microvolt = <3008000>;
296			regulator-max-microvolt = <4000000>;
297			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
298		};
299
300		vreg_bob2: bob2 {
301			regulator-name = "vreg_bob2";
302			regulator-min-microvolt = <2704000>;
303			regulator-max-microvolt = <3008000>;
304			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
305		};
306
307		vreg_l1b_1p8: ldo1 {
308			regulator-name = "vreg_l1b_1p8";
309			regulator-min-microvolt = <1800000>;
310			regulator-max-microvolt = <1800000>;
311			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
312			regulator-allow-set-load;
313			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
314						   RPMH_REGULATOR_MODE_HPM>;
315		};
316
317		vreg_l2b_3p0: ldo2 {
318			regulator-name = "vreg_l2b_3p0";
319			regulator-min-microvolt = <3008000>;
320			regulator-max-microvolt = <3048000>;
321			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
322			regulator-allow-set-load;
323			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
324						   RPMH_REGULATOR_MODE_HPM>;
325		};
326
327		vreg_l4b_1p8: ldo4 {
328			regulator-name = "vreg_l4b_1p8";
329			regulator-min-microvolt = <1800000>;
330			regulator-max-microvolt = <1800000>;
331			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
332			regulator-allow-set-load;
333			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
334						   RPMH_REGULATOR_MODE_HPM>;
335		};
336
337		vreg_l5b_3p1: ldo5 {
338			regulator-name = "vreg_l5b_3p1";
339			regulator-min-microvolt = <3100000>;
340			regulator-max-microvolt = <3148000>;
341			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
342			regulator-allow-set-load;
343			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
344						   RPMH_REGULATOR_MODE_HPM>;
345		};
346
347		vreg_l6b_1p8: ldo6 {
348			regulator-name = "vreg_l6b_1p8";
349			regulator-min-microvolt = <1800000>;
350			regulator-max-microvolt = <3008000>;
351			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
352			regulator-allow-set-load;
353			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
354						   RPMH_REGULATOR_MODE_HPM>;
355		};
356
357		vreg_l7b_1p8: ldo7 {
358			regulator-name = "vreg_l7b_1p8";
359			regulator-min-microvolt = <1800000>;
360			regulator-max-microvolt = <3008000>;
361			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
362			regulator-allow-set-load;
363			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
364						   RPMH_REGULATOR_MODE_HPM>;
365
366		};
367
368		vreg_l8b_1p8: ldo8 {
369			regulator-name = "vreg_l8b_1p8";
370			regulator-min-microvolt = <1800000>;
371			regulator-max-microvolt = <3008000>;
372			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
373			regulator-allow-set-load;
374			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
375						   RPMH_REGULATOR_MODE_HPM>;
376		};
377
378		vreg_l9b_2p9: ldo9 {
379			regulator-name = "vreg_l9b_2p9";
380			regulator-min-microvolt = <2960000>;
381			regulator-max-microvolt = <3008000>;
382			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
383			regulator-allow-set-load;
384			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
385						   RPMH_REGULATOR_MODE_HPM>;
386		};
387
388		vreg_l10b_1p8: ldo10 {
389			regulator-name = "vreg_l10b_1p8";
390			regulator-min-microvolt = <1800000>;
391			regulator-max-microvolt = <1800000>;
392			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
393			regulator-allow-set-load;
394			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
395						   RPMH_REGULATOR_MODE_HPM>;
396		};
397
398		vreg_l11b_1p0: ldo11 {
399			regulator-name = "vreg_l11b_1p0";
400			regulator-min-microvolt = <1064000>;
401			regulator-max-microvolt = <1292000>;
402			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
403			regulator-allow-set-load;
404			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
405						   RPMH_REGULATOR_MODE_HPM>;
406		};
407
408		vreg_l12b_1p8: ldo12 {
409			regulator-name = "vreg_l12b_1p8";
410			regulator-min-microvolt = <1200000>;
411			regulator-max-microvolt = <1800000>;
412			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
413			regulator-allow-set-load;
414			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
415						   RPMH_REGULATOR_MODE_HPM>;
416		};
417
418		vreg_l13b_3p0: ldo13 {
419			regulator-name = "vreg_l13b_3p0";
420			regulator-min-microvolt = <3000000>;
421			regulator-max-microvolt = <3000000>;
422			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
423			regulator-allow-set-load;
424			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
425						   RPMH_REGULATOR_MODE_HPM>;
426		};
427
428		vreg_l14b_3p2: ldo14 {
429			regulator-name = "vreg_l14b_3p2";
430			regulator-min-microvolt = <3200000>;
431			regulator-max-microvolt = <3200000>;
432			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
433			regulator-allow-set-load;
434			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
435						   RPMH_REGULATOR_MODE_HPM>;
436		};
437
438		vreg_l15b_1p8: ldo15 {
439			regulator-name = "vreg_l15b_1p8";
440			regulator-min-microvolt = <1800000>;
441			regulator-max-microvolt = <1800000>;
442			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
443			regulator-allow-set-load;
444			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
445						   RPMH_REGULATOR_MODE_HPM>;
446		};
447
448		vreg_l16b_2p8: ldo16 {
449			regulator-name = "vreg_l16b_2p8";
450			regulator-min-microvolt = <2800000>;
451			regulator-max-microvolt = <2800000>;
452			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
453			regulator-allow-set-load;
454			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
455						   RPMH_REGULATOR_MODE_HPM>;
456		};
457
458		vreg_l17b_2p5: ldo17 {
459			regulator-name = "vreg_l17b_2p5";
460			regulator-min-microvolt = <2504000>;
461			regulator-max-microvolt = <2504000>;
462			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
463			regulator-allow-set-load;
464			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
465						   RPMH_REGULATOR_MODE_HPM>;
466		};
467	};
468
469	regulators-1 {
470		compatible = "qcom,pm8550ve-rpmh-regulators";
471
472		vdd-l1-supply = <&vreg_s7i_1p2>;
473		vdd-l2-supply = <&vreg_s1d_0p97>;
474		vdd-l3-supply = <&vreg_s1d_0p97>;
475		vdd-s1-supply = <&vph_pwr>;
476		vdd-s3-supply = <&vph_pwr>;
477		vdd-s4-supply = <&vph_pwr>;
478
479		qcom,pmic-id = "d";
480
481		vreg_s1d_0p97: smps1 {
482			regulator-name = "vreg_s1d_0p97";
483			regulator-min-microvolt = <880000>;
484			regulator-max-microvolt = <1100000>;
485			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
486		};
487
488		vreg_s3d_1p2: smps3 {
489			regulator-name = "vreg_s3d_1p2";
490			regulator-min-microvolt = <1200000>;
491			regulator-max-microvolt = <1300000>;
492			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
493		};
494
495		vreg_s4d_0p85: smps4 {
496			regulator-name = "vreg_s4d_0p85";
497			regulator-min-microvolt = <852000>;
498			regulator-max-microvolt = <1036000>;
499			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
500		};
501
502		vreg_l1d_1p2: ldo1 {
503			regulator-name = "vreg_l1d_1p2";
504			regulator-min-microvolt = <1200000>;
505			regulator-max-microvolt = <1200000>;
506			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
507			regulator-allow-set-load;
508			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
509						   RPMH_REGULATOR_MODE_HPM>;
510		};
511
512		vreg_l2d_0p88: ldo2 {
513			regulator-name = "vreg_l2d_0p88";
514			regulator-min-microvolt = <880000>;
515			regulator-max-microvolt = <912000>;
516			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
517			regulator-allow-set-load;
518			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
519						   RPMH_REGULATOR_MODE_HPM>;
520		};
521
522		vreg_l3d_0p88: ldo3 {
523			regulator-name = "vreg_l3d_0p88";
524			regulator-min-microvolt = <880000>;
525			regulator-max-microvolt = <920000>;
526			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
527			regulator-allow-set-load;
528			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
529						   RPMH_REGULATOR_MODE_HPM>;
530		};
531	};
532
533	regulators-2 {
534		compatible = "qcom,pm8550ve-rpmh-regulators";
535
536		vdd-l1-supply = <&vreg_s1d_0p97>;
537		vdd-l2-supply = <&vreg_s7i_1p2>;
538		vdd-l3-supply = <&vreg_s3g_1p8>;
539		vdd-s5-supply = <&vph_pwr>;
540
541		qcom,pmic-id = "f";
542
543		vreg_s5f_0p85: smps5 {
544			regulator-name = "vreg_s5f_0p85";
545			regulator-min-microvolt = <852000>;
546			regulator-max-microvolt = <1000000>;
547			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
548		};
549
550		vreg_l1f_0p88: ldo1 {
551			regulator-name = "vreg_l1f_0p88";
552			regulator-min-microvolt = <880000>;
553			regulator-max-microvolt = <920000>;
554			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
555			regulator-allow-set-load;
556			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
557						   RPMH_REGULATOR_MODE_HPM>;
558		};
559
560		vreg_l2f_1p2: ldo2 {
561			regulator-name = "vreg_l2f_1p2";
562			regulator-min-microvolt = <1200000>;
563			regulator-max-microvolt = <1200000>;
564			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
565			regulator-allow-set-load;
566			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
567						   RPMH_REGULATOR_MODE_HPM>;
568		};
569
570		vreg_l3f_1p8: ldo3 {
571			regulator-name = "vreg_l3f_1p8";
572			regulator-min-microvolt = <1800000>;
573			regulator-max-microvolt = <1800000>;
574			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
575			regulator-allow-set-load;
576			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
577						   RPMH_REGULATOR_MODE_HPM>;
578		};
579
580	};
581
582	regulators-3 {
583		compatible = "qcom,pm8550ve-rpmh-regulators";
584
585		vdd-l1-supply = <&vreg_s1d_0p97>;
586		vdd-l2-supply = <&vreg_s3g_1p8>;
587		vdd-l3-supply = <&vreg_s7i_1p2>;
588		vdd-s1-supply = <&vph_pwr>;
589		vdd-s3-supply = <&vph_pwr>;
590
591		qcom,pmic-id = "g";
592
593		vreg_s1g_0p5: smps1 {
594			regulator-name = "vreg_s1g_0p5";
595			regulator-min-microvolt = <300000>;
596			regulator-max-microvolt = <700000>;
597			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
598		};
599
600		vreg_s3g_1p8: smps3 {
601			regulator-name = "vreg_s3g_1p8";
602			regulator-min-microvolt = <1856000>;
603			regulator-max-microvolt = <2000000>;
604			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
605			regulator-allow-set-load;
606			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
607						   RPMH_REGULATOR_MODE_HPM>;
608		};
609
610		vreg_s4g_0p75: smps4 {
611			regulator-name = "vreg_s4g_0p75";
612			regulator-min-microvolt = <300000>;
613			regulator-max-microvolt = <900000>;
614			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
615		};
616
617		vreg_l1g_0p91: ldo1 {
618			regulator-name = "vreg_l1g_0p91";
619			regulator-min-microvolt = <912000>;
620			regulator-max-microvolt = <936000>;
621			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
622			regulator-allow-set-load;
623			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
624						   RPMH_REGULATOR_MODE_HPM>;
625		};
626
627		vreg_l2g_1p8: ldo2 {
628			regulator-name = "vreg_l2g_1p8";
629			regulator-min-microvolt = <1200000>;
630			regulator-max-microvolt = <1860000>;
631			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
632			regulator-allow-set-load;
633			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
634						   RPMH_REGULATOR_MODE_HPM>;
635		};
636
637		vreg_l3g_1p2: ldo3 {
638			regulator-name = "vreg_l3g_1p2";
639			regulator-min-microvolt = <1200000>;
640			regulator-max-microvolt = <1256000>;
641			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
642			regulator-allow-set-load;
643			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
644						   RPMH_REGULATOR_MODE_HPM>;
645		};
646	};
647
648	regulators-4 {
649		compatible = "qcom,pm8550ve-rpmh-regulators";
650
651		vdd-l1-supply = <&vreg_s7i_1p2>;
652		vdd-l2-supply = <&vreg_s7i_1p2>;
653		vdd-l3-supply = <&vreg_s1d_0p97>;
654		vdd-s7-supply = <&vph_pwr>;
655		vdd-s8-supply = <&vph_pwr>;
656
657		qcom,pmic-id = "i";
658
659		vreg_s7i_1p2: smps7 {
660			regulator-name = "vreg_s7i_1p2";
661			regulator-min-microvolt = <1224000>;
662			regulator-max-microvolt = <1340000>;
663			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
664		};
665
666		vreg_s8i_0p9: smps8 {
667			regulator-name = "vreg_s8i_0p9";
668			regulator-min-microvolt = <900000>;
669			regulator-max-microvolt = <972000>;
670			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
671		};
672
673		vreg_l1i_1p2: ldo1 {
674			regulator-name = "vreg_l1i_1p2";
675			regulator-min-microvolt = <1200000>;
676			regulator-max-microvolt = <1200000>;
677			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
678			regulator-allow-set-load;
679			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
680						   RPMH_REGULATOR_MODE_HPM>;
681		};
682
683		vreg_l2i_1p2: ldo2 {
684			regulator-name = "vreg_l2i_1p2";
685			regulator-min-microvolt = <1200000>;
686			regulator-max-microvolt = <1200000>;
687			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
688			regulator-allow-set-load;
689			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
690						   RPMH_REGULATOR_MODE_HPM>;
691		};
692
693		vreg_l3i_0p88: ldo3 {
694			regulator-name = "vreg_l3i_0p88";
695			regulator-min-microvolt = <880000>;
696			regulator-max-microvolt = <912000>;
697			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
698			regulator-allow-set-load;
699			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
700						   RPMH_REGULATOR_MODE_HPM>;
701		};
702	};
703
704	regulators-5 {
705		compatible = "qcom,pm8550vs-rpmh-regulators";
706
707		vdd-l1-supply = <&vreg_s1d_0p97>;
708		vdd-l2-supply = <&vreg_s7i_1p2>;
709		vdd-s2-supply = <&vph_pwr>;
710		vdd-s3-supply = <&vph_pwr>;
711		vdd-s4-supply = <&vph_pwr>;
712
713		qcom,pmic-id = "j";
714
715		vreg_s2j_1p1: smps2 {
716			regulator-name = "vreg_s2j_1p1";
717			regulator-min-microvolt = <1000000>;
718			regulator-max-microvolt = <1100000>;
719			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
720		};
721
722		vreg_s3j_1p1: smps3 {
723			regulator-name = "vreg_s3j_1p1";
724			regulator-min-microvolt = <1000000>;
725			regulator-max-microvolt = <1100000>;
726			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
727		};
728
729		vreg_l1j_0p91: ldo1 {
730			regulator-name = "vreg_l1j_0p91";
731			regulator-min-microvolt = <880000>;
732			regulator-max-microvolt = <920000>;
733			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
734			regulator-allow-set-load;
735			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
736						   RPMH_REGULATOR_MODE_HPM>;
737		};
738
739		vreg_l2j_1p2: ldo2 {
740			regulator-name = "vreg_l2j_1p2";
741			regulator-min-microvolt = <1200000>;
742			regulator-max-microvolt = <1200000>;
743			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
744			regulator-allow-set-load;
745			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
746						   RPMH_REGULATOR_MODE_HPM>;
747		};
748	};
749
750	regulators-6 {
751		compatible = "qcom,pm8010-rpmh-regulators";
752		qcom,pmic-id = "m";
753
754		vdd-l1-l2-supply = <&vreg_s7i_1p2>;
755		vdd-l3-l4-supply = <&vreg_bob2>;
756		vdd-l5-supply = <&vreg_s3g_1p8>;
757		vdd-l6-supply = <&vreg_bob1>;
758		vdd-l7-supply = <&vreg_bob1>;
759
760		vreg_l1m_1p1: ldo1 {
761			regulator-name = "vreg_l1m_1p1";
762			regulator-min-microvolt = <1104000>;
763			regulator-max-microvolt = <1104000>;
764			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
765			regulator-allow-set-load;
766			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
767						   RPMH_REGULATOR_MODE_HPM>;
768		};
769
770		vreg_l2m_1p056: ldo2 {
771			regulator-name = "vreg_l2m_1p056";
772			regulator-min-microvolt = <1056000>;
773			regulator-max-microvolt = <1056000>;
774			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
775			regulator-allow-set-load;
776			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
777						   RPMH_REGULATOR_MODE_HPM>;
778		};
779
780		vreg_l3m_2p8: ldo3 {
781			regulator-name = "vreg_l3m_2p8";
782			regulator-min-microvolt = <2800000>;
783			regulator-max-microvolt = <2800000>;
784			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
785		};
786
787		vreg_l4m_2p8: ldo4 {
788			regulator-name = "vreg_l4m_2p8";
789			regulator-min-microvolt = <2800000>;
790			regulator-max-microvolt = <2800000>;
791			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
792		};
793
794		vreg_l5m_1p8: ldo5 {
795			regulator-name = "vreg_l5m_1p8";
796			regulator-min-microvolt = <1800000>;
797			regulator-max-microvolt = <1800000>;
798			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
799		};
800
801		vreg_l6m_2p8: ldo6 {
802			regulator-name = "vreg_l6m_2p8";
803			regulator-min-microvolt = <2800000>;
804			regulator-max-microvolt = <2800000>;
805			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
806		};
807
808		vreg_l7m_2p96: ldo7 {
809			regulator-name = "vreg_l7m_2p96";
810			regulator-min-microvolt = <2960000>;
811			regulator-max-microvolt = <2960000>;
812			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
813		};
814	};
815
816	regulators-7 {
817		compatible = "qcom,pm8010-rpmh-regulators";
818		qcom,pmic-id = "n";
819
820		vdd-l1-l2-supply = <&vreg_s7i_1p2>;
821		vdd-l3-l4-supply = <&vreg_s3g_1p8>;
822		vdd-l5-supply = <&vreg_bob2>;
823		vdd-l6-supply = <&vreg_bob2>;
824		vdd-l7-supply = <&vreg_bob1>;
825
826		vreg_l1n_1p1: ldo1 {
827			regulator-name = "vreg_l1n_1p1";
828			regulator-min-microvolt = <1104000>;
829			regulator-max-microvolt = <1104000>;
830			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
831			regulator-allow-set-load;
832			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
833						   RPMH_REGULATOR_MODE_HPM>;
834		};
835
836		vreg_l2n_1p1: ldo2 {
837			regulator-name = "vreg_l2n_1p1";
838			regulator-min-microvolt = <1104000>;
839			regulator-max-microvolt = <1104000>;
840			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
841			regulator-allow-set-load;
842			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
843						   RPMH_REGULATOR_MODE_HPM>;
844		};
845
846		vreg_l3n_1p8: ldo3 {
847			regulator-name = "vreg_l3n_1p8";
848			regulator-min-microvolt = <1800000>;
849			regulator-max-microvolt = <1800000>;
850			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
851		};
852
853		vreg_l4n_1p8: ldo4 {
854			regulator-name = "vreg_l4n_1p8";
855			regulator-min-microvolt = <1800000>;
856			regulator-max-microvolt = <1800000>;
857			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
858		};
859
860		vreg_l5n_2p8: ldo5 {
861			regulator-name = "vreg_l5n_2p8";
862			regulator-min-microvolt = <2800000>;
863			regulator-max-microvolt = <2800000>;
864			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
865		};
866
867		vreg_l6n_2p8: ldo6 {
868			regulator-name = "vreg_l6n_2p8";
869			regulator-min-microvolt = <2800000>;
870			regulator-max-microvolt = <2800000>;
871			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
872		};
873
874		vreg_l7n_3p3: ldo7 {
875			regulator-name = "vreg_l7n_3p3";
876			regulator-min-microvolt = <3304000>;
877			regulator-max-microvolt = <3304000>;
878			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
879		};
880	};
881};
882
883&lpass_vamacro {
884	pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
885	pinctrl-names = "default";
886
887	vdd-micb-supply = <&vreg_l1b_1p8>;
888	qcom,dmic-sample-rate = <4800000>;
889};
890
891&pm8550_flash {
892	status = "okay";
893
894	led-0 {
895		function = LED_FUNCTION_FLASH;
896		color = <LED_COLOR_ID_YELLOW>;
897		led-sources = <1>, <4>;
898		led-max-microamp = <500000>;
899		flash-max-microamp = <2000000>;
900		flash-max-timeout-us = <1280000>;
901		function-enumerator = <0>;
902	};
903
904	led-1 {
905		function = LED_FUNCTION_FLASH;
906		color = <LED_COLOR_ID_WHITE>;
907		led-sources = <2>, <3>;
908		led-max-microamp = <500000>;
909		flash-max-microamp = <2000000>;
910		flash-max-timeout-us = <1280000>;
911		function-enumerator = <1>;
912	};
913};
914
915&pm8550_gpios {
916	volume_up_n: volume-up-n-state {
917		pins = "gpio6";
918		function = "normal";
919		bias-pull-up;
920		input-enable;
921		power-source = <1>;
922	};
923};
924
925&pm8550_pwm {
926	status = "okay";
927
928	multi-led {
929		color = <LED_COLOR_ID_RGB>;
930		function = LED_FUNCTION_STATUS;
931
932		#address-cells = <1>;
933		#size-cells = <0>;
934
935		led@1 {
936			reg = <1>;
937			color = <LED_COLOR_ID_RED>;
938		};
939
940		led@2 {
941			reg = <2>;
942			color = <LED_COLOR_ID_GREEN>;
943		};
944
945		led@3 {
946			reg = <3>;
947			color = <LED_COLOR_ID_BLUE>;
948		};
949	};
950};
951
952&pon_pwrkey {
953	status = "okay";
954};
955
956&pon_resin {
957	linux,code = <KEY_VOLUMEDOWN>;
958
959	status = "okay";
960};
961
962&pcie0 {
963	wake-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>;
964	perst-gpios = <&tlmm 102 GPIO_ACTIVE_LOW>;
965
966	pinctrl-0 = <&pcie0_default_state>;
967	pinctrl-names = "default";
968
969	status = "okay";
970};
971
972&pcie0_phy {
973	vdda-phy-supply = <&vreg_l1f_0p88>;
974	vdda-pll-supply = <&vreg_l3g_1p2>;
975
976	status = "okay";
977};
978
979&pcieport0 {
980	wifi@0 {
981		compatible = "pci17cb,1107";
982		reg = <0x10000 0x0 0x0 0x0 0x0>;
983
984		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
985		vddaon-supply = <&vreg_pmu_aon_0p59>;
986		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
987		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
988		vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
989		vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
990		vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
991		vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
992		vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
993	};
994};
995
996&pmih0108_eusb2_repeater {
997	status = "okay";
998
999	vdd18-supply = <&vreg_l15b_1p8>;
1000	vdd3-supply = <&vreg_l5b_3p1>;
1001};
1002
1003&qupv3_1 {
1004	status = "okay";
1005};
1006
1007&qupv3_2 {
1008	status = "okay";
1009};
1010
1011&remoteproc_adsp {
1012	firmware-name = "qcom/sm8750/adsp.mbn",
1013			"qcom/sm8750/adsp_dtb.mbn";
1014
1015	status = "okay";
1016};
1017
1018&remoteproc_cdsp {
1019	firmware-name = "qcom/sm8750/cdsp.mbn",
1020			"qcom/sm8750/cdsp_dtb.mbn";
1021
1022	status = "okay";
1023};
1024
1025&remoteproc_mpss {
1026	firmware-name = "qcom/sm8750/modem.mbn",
1027			"qcom/sm8750/modem_dtb.mbn";
1028
1029	/* Modem crashes after some time with "DOG detects stalled initialization" */
1030	status = "fail";
1031};
1032
1033&swr0 {
1034	status = "okay";
1035
1036	/* WSA883x, left/front speaker */
1037	left_spkr: speaker@0,1 {
1038		compatible = "sdw10217020200";
1039		reg = <0 1>;
1040		pinctrl-0 = <&spkr_0_sd_n_active>;
1041		pinctrl-names = "default";
1042		powerdown-gpios = <&lpass_tlmm 17 GPIO_ACTIVE_LOW>;
1043		#sound-dai-cells = <0>;
1044		sound-name-prefix = "SpkrLeft";
1045		#thermal-sensor-cells = <0>;
1046		vdd-supply = <&vreg_l15b_1p8>;
1047		/*
1048		 * WSA8835 Port 1 (DAC)     <=> SWR0 Port 1 (SPKR_L)
1049		 * WSA8835 Port 2 (COMP)    <=> SWR0 Port 2 (SPKR_L_COMP)
1050		 * WSA8835 Port 3 (BOOST)   <=> SWR0 Port 3 (SPKR_L_BOOST)
1051		 * WSA8835 Port 4 (VISENSE) <=> SWR0 Port 10 (SPKR_L_VI)
1052		 */
1053		qcom,port-mapping = <1 2 3 10>;
1054	};
1055
1056	/* WSA883x, right/back speaker */
1057	right_spkr: speaker@0,2 {
1058		compatible = "sdw10217020200";
1059		reg = <0 2>;
1060		pinctrl-0 = <&spkr_1_sd_n_active>;
1061		pinctrl-names = "default";
1062		powerdown-gpios = <&lpass_tlmm 18 GPIO_ACTIVE_LOW>;
1063		#sound-dai-cells = <0>;
1064		sound-name-prefix = "SpkrRight";
1065		#thermal-sensor-cells = <0>;
1066		vdd-supply = <&vreg_l15b_1p8>;
1067		/*
1068		 * WSA8835 Port 1 (DAC)     <=> SWR0 Port 4 (SPKR_R)
1069		 * WSA8835 Port 2 (COMP)    <=> SWR0 Port 5 (SPKR_R_COMP)
1070		 * WSA8835 Port 3 (BOOST)   <=> SWR0 Port 6 (SPKR_R_BOOST)
1071		 * WSA8835 Port 4 (VISENSE) <=> SWR0 Port 11 (SPKR_R_VI)
1072		 */
1073		qcom,port-mapping = <4 5 6 11>;
1074	};
1075};
1076
1077&swr1 {
1078	status = "okay";
1079
1080	/* WCD9395 RX */
1081	wcd_rx: codec@0,4 {
1082		compatible = "sdw20217010e00";
1083		reg = <0 4>;
1084
1085		/*
1086		 * WCD9395 RX Port 1 (HPH_L/R)      <=> SWR1 Port 1 (HPH_L/R)
1087		 * WCD9395 RX Port 2 (CLSH)         <=> SWR1 Port 2 (CLSH)
1088		 * WCD9395 RX Port 3 (COMP_L/R)     <=> SWR1 Port 3 (COMP_L/R)
1089		 * WCD9395 RX Port 4 (LO)           <=> SWR1 Port 4 (LO)
1090		 * WCD9395 RX Port 5 (DSD_L/R)      <=> SWR1 Port 5 (DSD_L/R)
1091		 * WCD9395 RX Port 6 (HIFI_PCM_L/R) <=> SWR1 Port 9 (HIFI_PCM_L/R)
1092		 */
1093		qcom,rx-port-mapping = <1 2 3 4 5 9>;
1094	};
1095};
1096
1097&swr2 {
1098	status = "okay";
1099
1100	/* WCD9395 TX */
1101	wcd_tx: codec@0,3 {
1102		compatible = "sdw20217010e00";
1103		reg = <0 3>;
1104
1105		/*
1106		 * WCD9395 TX Port 1 (ADC1,2,3,4)         <=> SWR2 Port 2 (TX SWR_INPUT 0,1,2,3)
1107		 * WCD9395 TX Port 2 (ADC3,4 & DMIC0,1)   <=> SWR2 Port 2 (TX SWR_INPUT 0,1,2,3)
1108		 * WCD9395 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3 (TX SWR_INPUT 4,5,6,7)
1109		 * WCD9395 TX Port 4 (DMIC4,5,6,7)        <=> SWR2 Port 4 (TX SWR_INPUT 8,9,10,11)
1110		 */
1111		qcom,tx-port-mapping = <2 2 3 4>;
1112	};
1113};
1114
1115&tlmm {
1116	/* reserved for secure world */
1117	gpio-reserved-ranges = <36 4>, <74 1>;
1118};
1119
1120&uart7 {
1121	status = "okay";
1122};
1123
1124/* Pinctrl */
1125&lpass_tlmm {
1126	spkr_0_sd_n_active: spkr-0-sd-n-active-state {
1127		pins = "gpio17";
1128		function = "gpio";
1129		drive-strength = <16>;
1130		bias-disable;
1131		output-low;
1132	};
1133
1134	spkr_1_sd_n_active: spkr-1-sd-n-active-state {
1135		pins = "gpio18";
1136		function = "gpio";
1137		drive-strength = <16>;
1138		bias-disable;
1139		output-low;
1140	};
1141};
1142
1143&tlmm {
1144	bt_default: bt-default-state {
1145		sw-ctrl-pins {
1146			pins = "gpio18";
1147			function = "gpio";
1148			bias-pull-down;
1149		};
1150	};
1151
1152	wcd_default: wcd-reset-n-active-state {
1153		pins = "gpio101";
1154		function = "gpio";
1155		drive-strength = <16>;
1156		bias-disable;
1157		output-low;
1158	};
1159
1160	wlan_en: wlan-en-state {
1161		pins = "gpio16";
1162		function = "gpio";
1163		drive-strength = <8>;
1164		bias-pull-down;
1165	};
1166};
1167
1168&uart14 {
1169	status = "okay";
1170
1171	bluetooth {
1172		compatible = "qcom,wcn7850-bt";
1173
1174		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
1175		vddaon-supply = <&vreg_pmu_aon_0p59>;
1176		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
1177		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
1178		vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
1179		vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
1180		vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
1181
1182		max-speed = <3200000>;
1183	};
1184};
1185
1186&ufs_mem_phy {
1187	vdda-phy-supply = <&vreg_l1j_0p91>;
1188	vdda-pll-supply = <&vreg_l3g_1p2>;
1189
1190	status = "okay";
1191};
1192
1193&ufs_mem_hc {
1194	reset-gpios = <&tlmm 215 GPIO_ACTIVE_LOW>;
1195
1196	vcc-supply = <&vreg_l17b_2p5>;
1197	vcc-max-microamp = <1300000>;
1198	vccq-supply = <&vreg_l1d_1p2>;
1199	vccq-max-microamp = <1200000>;
1200
1201	status = "okay";
1202};
1203