xref: /linux/arch/arm64/boot/dts/qcom/sa8155p-adp.dts (revision 34c55367af96f62e89221444f04487440ebc6487)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2021, Linaro Limited
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9#include <dt-bindings/gpio/gpio.h>
10#include "sa8155p.dtsi"
11#include "pmm8155au_1.dtsi"
12#include "pmm8155au_2.dtsi"
13
14/ {
15	model = "Qualcomm Technologies, Inc. SA8155P ADP";
16	compatible = "qcom,sa8155p-adp", "qcom,sa8155p";
17
18	aliases {
19		serial0 = &uart2;
20		serial1 = &uart9;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	vreg_3p3: vreg-3p3-regulator {
28		compatible = "regulator-fixed";
29		regulator-name = "vreg_3p3";
30		regulator-min-microvolt = <3300000>;
31		regulator-max-microvolt = <3300000>;
32	};
33
34	/*
35	 * S4A is always on and not controllable through RPMh.
36	 * So model it as a fixed regulator.
37	 */
38	vreg_s4a_1p8: smps4 {
39		compatible = "regulator-fixed";
40		regulator-name = "vreg_s4a_1p8";
41
42		regulator-min-microvolt = <1800000>;
43		regulator-max-microvolt = <1800000>;
44
45		regulator-always-on;
46		regulator-boot-on;
47
48		vin-supply = <&vreg_3p3>;
49	};
50};
51
52&apps_rsc {
53	regulators-0 {
54		compatible = "qcom,pmm8155au-rpmh-regulators";
55		qcom,pmic-id = "a";
56
57		vdd-s1-supply = <&vreg_3p3>;
58		vdd-s2-supply = <&vreg_3p3>;
59		vdd-s3-supply = <&vreg_3p3>;
60		vdd-s4-supply = <&vreg_3p3>;
61		vdd-s5-supply = <&vreg_3p3>;
62		vdd-s6-supply = <&vreg_3p3>;
63		vdd-s7-supply = <&vreg_3p3>;
64		vdd-s8-supply = <&vreg_3p3>;
65		vdd-s9-supply = <&vreg_3p3>;
66		vdd-s10-supply = <&vreg_3p3>;
67
68		vdd-l1-l8-l11-supply = <&vreg_s6a_0p92>;
69		vdd-l2-l10-supply = <&vreg_3p3>;
70		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p92>;
71		vdd-l6-l9-supply = <&vreg_s6a_0p92>;
72		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
73		vdd-l13-l16-l17-supply = <&vreg_3p3>;
74
75		vreg_s5a_2p04: smps5 {
76			regulator-name = "vreg_s5a_2p04";
77			regulator-min-microvolt = <1904000>;
78			regulator-max-microvolt = <2000000>;
79		};
80
81		vreg_s6a_0p92: smps6 {
82			regulator-name = "vreg_s6a_0p92";
83			regulator-min-microvolt = <920000>;
84			regulator-max-microvolt = <1128000>;
85		};
86
87		vreg_l1a_0p752: ldo1 {
88			regulator-name = "vreg_l1a_0p752";
89			regulator-min-microvolt = <752000>;
90			regulator-max-microvolt = <752000>;
91			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
92		};
93
94		vdda_usb_hs_3p1:
95		vreg_l2a_3p072: ldo2 {
96			regulator-name = "vreg_l2a_3p072";
97			regulator-min-microvolt = <3072000>;
98			regulator-max-microvolt = <3072000>;
99			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
100		};
101
102		vreg_l3a_0p8: ldo3 {
103			regulator-name = "vreg_l3a_0p8";
104			regulator-min-microvolt = <800000>;
105			regulator-max-microvolt = <800000>;
106			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
107		};
108
109		vdd_usb_hs_core:
110		vdda_usb_ss_dp_core_1:
111		vreg_l5a_0p88: ldo5 {
112			regulator-name = "vreg_l5a_0p88";
113			regulator-min-microvolt = <880000>;
114			regulator-max-microvolt = <880000>;
115			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
116			regulator-allow-set-load;
117			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
118						   RPMH_REGULATOR_MODE_HPM>;
119		};
120
121		vreg_l7a_1p8: ldo7 {
122			regulator-name = "vreg_l7a_1p8";
123			regulator-min-microvolt = <1800000>;
124			regulator-max-microvolt = <1800000>;
125			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
126		};
127
128		vreg_l10a_2p96: ldo10 {
129			regulator-name = "vreg_l10a_2p96";
130			regulator-min-microvolt = <2504000>;
131			regulator-max-microvolt = <2960000>;
132			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
133			regulator-allow-set-load;
134			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
135						   RPMH_REGULATOR_MODE_HPM>;
136		};
137
138		vreg_l11a_0p8: ldo11 {
139			regulator-name = "vreg_l11a_0p8";
140			regulator-min-microvolt = <800000>;
141			regulator-max-microvolt = <800000>;
142			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
143		};
144
145		vdda_usb_hs_1p8:
146		vreg_l12a_1p8: ldo12 {
147			regulator-name = "vreg_l12a_1p8";
148			regulator-min-microvolt = <1800000>;
149			regulator-max-microvolt = <1800000>;
150			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
151		};
152
153		vreg_l13a_2p7: ldo13 {
154			regulator-name = "vreg_l13a_2p7";
155			regulator-min-microvolt = <2704000>;
156			regulator-max-microvolt = <2704000>;
157			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
158		};
159
160		vreg_l15a_1p7: ldo15 {
161			regulator-name = "vreg_l15a_1p7";
162			regulator-min-microvolt = <1704000>;
163			regulator-max-microvolt = <1704000>;
164			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
165		};
166
167		vreg_l16a_2p7: ldo16 {
168			regulator-name = "vreg_l16a_2p7";
169			regulator-min-microvolt = <2704000>;
170			regulator-max-microvolt = <2960000>;
171			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
172		};
173
174		vreg_l17a_2p96: ldo17 {
175			regulator-name = "vreg_l17a_2p96";
176			regulator-min-microvolt = <2504000>;
177			regulator-max-microvolt = <2960000>;
178			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
179		};
180	};
181
182	regulators-1 {
183		compatible = "qcom,pmm8155au-rpmh-regulators";
184		qcom,pmic-id = "c";
185
186		vdd-s1-supply = <&vreg_3p3>;
187		vdd-s2-supply = <&vreg_3p3>;
188		vdd-s3-supply = <&vreg_3p3>;
189		vdd-s4-supply = <&vreg_3p3>;
190		vdd-s5-supply = <&vreg_3p3>;
191		vdd-s6-supply = <&vreg_3p3>;
192		vdd-s7-supply = <&vreg_3p3>;
193		vdd-s8-supply = <&vreg_3p3>;
194		vdd-s9-supply = <&vreg_3p3>;
195		vdd-s10-supply = <&vreg_3p3>;
196
197		vdd-l1-l8-l11-supply = <&vreg_s4c_1p352>;
198		vdd-l2-l10-supply = <&vreg_3p3>;
199		vdd-l3-l4-l5-l18-supply = <&vreg_s4c_1p352>;
200		vdd-l6-l9-supply = <&vreg_s6c_1p128>;
201		vdd-l7-l12-l14-l15-supply = <&vreg_s5c_2p04>;
202		vdd-l13-l16-l17-supply = <&vreg_3p3>;
203
204		vreg_s4c_1p352: smps4 {
205			regulator-name = "vreg_s4c_1p352";
206			regulator-min-microvolt = <1352000>;
207			regulator-max-microvolt = <1352000>;
208		};
209
210		vreg_s5c_2p04: smps5 {
211			regulator-name = "vreg_s5c_2p04";
212			regulator-min-microvolt = <1904000>;
213			regulator-max-microvolt = <2000000>;
214		};
215
216		vreg_s6c_1p128: smps6 {
217			regulator-name = "vreg_s6c_1p128";
218			regulator-min-microvolt = <1128000>;
219			regulator-max-microvolt = <1128000>;
220		};
221
222		vreg_l1c_1p304: ldo1 {
223			regulator-name = "vreg_l1c_1p304";
224			regulator-min-microvolt = <1304000>;
225			regulator-max-microvolt = <1304000>;
226			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
227		};
228
229		vreg_l2c_1p808: ldo2 {
230			regulator-name = "vreg_l2c_1p808";
231			regulator-min-microvolt = <1704000>;
232			regulator-max-microvolt = <2928000>;
233			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
234		};
235
236		vreg_l5c_1p2: ldo5 {
237			regulator-name = "vreg_l5c_1p2";
238			regulator-min-microvolt = <1200000>;
239			regulator-max-microvolt = <1200000>;
240			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
241			regulator-allow-set-load;
242			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
243						   RPMH_REGULATOR_MODE_HPM>;
244		};
245
246		vreg_l7c_1p8: ldo7 {
247			regulator-name = "vreg_l7c_1p8";
248			regulator-min-microvolt = <1800000>;
249			regulator-max-microvolt = <1800000>;
250			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
251		};
252
253		vreg_l8c_1p2: ldo8 {
254			regulator-name = "vreg_l8c_1p2";
255			regulator-min-microvolt = <1200000>;
256			regulator-max-microvolt = <1200000>;
257			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
258			regulator-allow-set-load;
259			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
260						   RPMH_REGULATOR_MODE_HPM>;
261		};
262
263		vreg_l10c_3p3: ldo10 {
264			regulator-name = "vreg_l10c_3p3";
265			regulator-min-microvolt = <3000000>;
266			regulator-max-microvolt = <3312000>;
267			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
268		};
269
270		vreg_l11c_0p8: ldo11 {
271			regulator-name = "vreg_l11c_0p8";
272			regulator-min-microvolt = <800000>;
273			regulator-max-microvolt = <800000>;
274			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
275		};
276
277		vreg_l12c_1p808: ldo12 {
278			regulator-name = "vreg_l12c_1p808";
279			regulator-min-microvolt = <1704000>;
280			regulator-max-microvolt = <2928000>;
281			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
282		};
283
284		vreg_l13c_2p96: ldo13 {
285			regulator-name = "vreg_l13c_2p96";
286			regulator-min-microvolt = <1800000>;
287			regulator-max-microvolt = <2960000>;
288			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
289		};
290
291		vreg_l15c_1p9: ldo15 {
292			regulator-name = "vreg_l15c_1p9";
293			regulator-min-microvolt = <1704000>;
294			regulator-max-microvolt = <2928000>;
295			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
296		};
297
298		vreg_l16c_3p008: ldo16 {
299			regulator-name = "vreg_l16c_3p008";
300			regulator-min-microvolt = <3008000>;
301			regulator-max-microvolt = <3008000>;
302			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
303		};
304
305		vreg_l18c_0p88: ldo18 {
306			regulator-name = "vreg_l18c_0p88";
307			regulator-min-microvolt = <880000>;
308			regulator-max-microvolt = <880000>;
309			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
310		};
311	};
312};
313
314&ethernet {
315	status = "okay";
316
317	snps,reset-gpio = <&tlmm 79 GPIO_ACTIVE_LOW>;
318	snps,reset-active-low;
319	snps,reset-delays-us = <0 11000 70000>;
320
321	snps,mtl-rx-config = <&mtl_rx_setup>;
322	snps,mtl-tx-config = <&mtl_tx_setup>;
323
324	pinctrl-names = "default";
325	pinctrl-0 = <&ethernet_defaults>;
326
327	phy-handle = <&rgmii_phy>;
328	phy-mode = "rgmii";
329
330	mdio {
331		compatible = "snps,dwmac-mdio";
332		#address-cells = <1>;
333		#size-cells = <0>;
334
335		/* Micrel KSZ9031RNZ PHY */
336		rgmii_phy: phy@7 {
337			compatible = "ethernet-phy-ieee802.3-c22";
338			reg = <0x7>;
339
340			interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>;
341			device_type = "ethernet-phy";
342		};
343	};
344
345	mtl_rx_setup: rx-queues-config {
346		snps,rx-queues-to-use = <1>;
347		snps,rx-sched-sp;
348
349		queue0 {
350			snps,dcb-algorithm;
351			snps,map-to-dma-channel = <0x0>;
352			snps,route-up;
353			snps,priority = <0x1>;
354		};
355	};
356
357	mtl_tx_setup: tx-queues-config {
358		snps,tx-queues-to-use = <1>;
359		snps,tx-sched-wrr;
360
361		queue0 {
362			snps,weight = <0x10>;
363			snps,dcb-algorithm;
364			snps,priority = <0x0>;
365		};
366	};
367};
368
369&pmm8155au_1_gpios {
370	pmm8155au_1_sdc2_cd: sdc2-cd-default-state {
371		pins = "gpio4";
372		function = "normal";
373		input-enable;
374		bias-pull-up;
375		power-source = <0>;
376	};
377};
378
379&qupv3_id_1 {
380	status = "okay";
381};
382
383&remoteproc_adsp {
384	status = "okay";
385	firmware-name = "qcom/sa8155p/adsp.mbn";
386};
387
388&remoteproc_cdsp {
389	status = "okay";
390	firmware-name = "qcom/sa8155p/cdsp.mbn";
391};
392
393&sdhc_2 {
394	status = "okay";
395
396	cd-gpios = <&pmm8155au_1_gpios 4 GPIO_ACTIVE_LOW>;
397	pinctrl-names = "default", "sleep";
398	pinctrl-0 = <&sdc2_on &pmm8155au_1_sdc2_cd>;
399	pinctrl-1 = <&sdc2_off &pmm8155au_1_sdc2_cd>;
400	vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */
401	vmmc-supply = <&vreg_l17a_2p96>;  /* Card power line */
402	bus-width = <4>;
403	no-sdio;
404	no-mmc;
405};
406
407&uart2 {
408	status = "okay";
409};
410
411&uart9 {
412	status = "okay";
413};
414
415&ufs_mem_hc {
416	status = "okay";
417
418	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
419
420	vcc-supply = <&vreg_l10a_2p96>;
421	vcc-max-microamp = <750000>;
422	vccq-supply = <&vreg_l5c_1p2>;
423	vccq-max-microamp = <700000>;
424	vccq2-supply = <&vreg_s4a_1p8>;
425	vccq2-max-microamp = <750000>;
426};
427
428&ufs_mem_phy {
429	status = "okay";
430
431	vdda-phy-supply = <&vreg_l8c_1p2>;
432	vdda-pll-supply = <&vreg_l5a_0p88>;
433};
434
435&usb_1 {
436	status = "okay";
437};
438
439&usb_1_dwc3 {
440	dr_mode = "host";
441
442	pinctrl-names = "default";
443	pinctrl-0 = <&usb2phy_ac_en1_default>;
444};
445
446&usb_1_hsphy {
447	status = "okay";
448	vdda-pll-supply = <&vdd_usb_hs_core>;
449	vdda33-supply = <&vdda_usb_hs_3p1>;
450	vdda18-supply = <&vdda_usb_hs_1p8>;
451};
452
453&usb_1_qmpphy {
454	status = "disabled";
455};
456
457&usb_2 {
458	status = "okay";
459};
460
461&usb_2_dwc3 {
462	dr_mode = "host";
463
464	pinctrl-names = "default";
465	pinctrl-0 = <&usb2phy_ac_en2_default>;
466};
467
468&usb_2_hsphy {
469	status = "okay";
470	vdda-pll-supply = <&vdd_usb_hs_core>;
471	vdda33-supply = <&vdda_usb_hs_3p1>;
472	vdda18-supply = <&vdda_usb_hs_1p8>;
473};
474
475&usb_2_qmpphy {
476	status = "okay";
477	vdda-phy-supply = <&vreg_l8c_1p2>;
478	vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
479};
480
481&pcie0 {
482	status = "okay";
483};
484
485&pcie0_phy {
486	status = "okay";
487	vdda-phy-supply = <&vreg_l18c_0p88>;
488	vdda-pll-supply = <&vreg_l8c_1p2>;
489};
490
491&pcie1_phy {
492	vdda-phy-supply = <&vreg_l18c_0p88>;
493	vdda-pll-supply = <&vreg_l8c_1p2>;
494};
495
496&tlmm {
497	gpio-reserved-ranges = <0 4>;
498
499	sdc2_on: sdc2-on-state {
500		clk-pins {
501			pins = "sdc2_clk";
502			bias-disable;		/* No pull */
503			drive-strength = <16>;	/* 16 MA */
504		};
505
506		cmd-pins {
507			pins = "sdc2_cmd";
508			bias-pull-up;		/* pull up */
509			drive-strength = <16>;	/* 16 MA */
510		};
511
512		data-pins {
513			pins = "sdc2_data";
514			bias-pull-up;		/* pull up */
515			drive-strength = <16>;	/* 16 MA */
516		};
517	};
518
519	sdc2_off: sdc2-off-state {
520		clk-pins {
521			pins = "sdc2_clk";
522			bias-disable;		/* No pull */
523			drive-strength = <2>;	/* 2 MA */
524		};
525
526		cmd-pins {
527			pins = "sdc2_cmd";
528			bias-pull-up;		/* pull up */
529			drive-strength = <2>;	/* 2 MA */
530		};
531
532		data-pins {
533			pins = "sdc2_data";
534			bias-pull-up;		/* pull up */
535			drive-strength = <2>;	/* 2 MA */
536		};
537	};
538
539	usb2phy_ac_en1_default: usb2phy-ac-en1-default-state {
540		pins = "gpio113";
541		function = "usb2phy_ac";
542		bias-disable;
543		drive-strength = <2>;
544	};
545
546	usb2phy_ac_en2_default: usb2phy-ac-en2-default-state {
547		pins = "gpio123";
548		function = "usb2phy_ac";
549		bias-disable;
550		drive-strength = <2>;
551	};
552
553	ethernet_defaults: ethernet-defaults-state {
554		mdc-pins {
555			pins = "gpio7";
556			function = "rgmii";
557			bias-pull-up;
558		};
559
560		mdio-pins {
561			pins = "gpio59";
562			function = "rgmii";
563			bias-pull-up;
564		};
565
566		rgmii-rx-pins {
567			pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116";
568			function = "rgmii";
569			bias-disable;
570			drive-strength = <2>;
571		};
572
573		rgmii-tx-pins {
574			pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121";
575			function = "rgmii";
576			bias-pull-up;
577			drive-strength = <16>;
578		};
579
580		phy-intr-pins {
581			pins = "gpio124";
582			function = "emac_phy";
583			bias-disable;
584			drive-strength = <8>;
585		};
586
587		pps-pins {
588			pins = "gpio81";
589			function = "emac_pps";
590			bias-disable;
591			drive-strength = <8>;
592		};
593
594		phy-reset-pins {
595			pins = "gpio79";
596			function = "gpio";
597			bias-pull-up;
598			drive-strength = <16>;
599		};
600	};
601};
602