xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/sc7180-ecs-liva-qc710.dts (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1// SPDX-License-Identifier: BSD-3-Clause
2
3/dts-v1/;
4
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/sound/qcom,q6asm.h>
7#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
8
9#include "sc7180.dtsi"
10
11#include "pm6150.dtsi"
12#include "pm6150l.dtsi"
13
14/delete-node/ &tz_mem;
15/delete-node/ &ipa_fw_mem;
16
17/ {
18	model = "ECS LIVA QC710";
19	compatible = "ecs,liva-qc710", "qcom,sc7180";
20	chassis-type = "desktop";
21
22	aliases {
23		bluetooth0 = &bluetooth;
24		hsuart0 = &uart3;
25		wifi0 = &wifi;
26	};
27
28	hdmi-bridge {
29		compatible = "algoltek,ag6311";
30
31		ports {
32			#address-cells = <1>;
33			#size-cells = <0>;
34
35			port@0 {
36				reg = <0>;
37
38				hdmi_bridge_dp_in: endpoint {
39					remote-endpoint = <&usb_1_qmpphy_dp_out>;
40				};
41			};
42
43			port@1 {
44				reg = <1>;
45
46				hdmi_bridge_tmds_out: endpoint {
47					remote-endpoint = <&hdmi_con>;
48				};
49			};
50		};
51	};
52
53	hdmi-connector {
54		compatible = "hdmi-connector";
55		type = "a";
56
57		port {
58			hdmi_con: endpoint {
59				remote-endpoint = <&hdmi_bridge_tmds_out>;
60			};
61		};
62	};
63
64	reserved-memory {
65		gpu_mem: zap-shader@80840000 {
66			reg = <0x0 0x80840000 0 0x2000>;
67			no-map;
68		};
69
70		venus_mem: venus@85b00000 {
71			reg = <0x0 0x85b00000 0 0x500000>;
72			no-map;
73		};
74
75		mpss_mem: mpss@86000000 {
76			reg = <0x0 0x86000000 0x0 0x2000000>;
77			no-map;
78		};
79
80		adsp_mem: adsp@8e400000 {
81			reg = <0x0 0x8e400000 0x0 0x2800000>;
82			no-map;
83		};
84
85		wlan_mem: wlan@93900000 {
86			reg = <0x0 0x93900000 0x0 0x200000>;
87			no-map;
88		};
89	};
90
91	usb_a_connector: usb-a-connector {
92		compatible = "usb-a-connector";
93
94		port {
95			usb_a_connector_ss_in: endpoint {
96				remote-endpoint = <&usb_1_qmpphy_usb_ss_out>;
97			};
98		};
99	};
100};
101
102&apps_rsc {
103	regulators-0 {
104		compatible = "qcom,pm6150-rpmh-regulators";
105		qcom,pmic-id = "a";
106
107		vreg_s1a_1p1: smps1 {
108			regulator-min-microvolt = <1128000>;
109			regulator-max-microvolt = <1128000>;
110		};
111
112		vreg_l4a_0p8: ldo4 {
113			regulator-min-microvolt = <824000>;
114			regulator-max-microvolt = <928000>;
115			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
116		};
117
118		vreg_l9a_0p6: ldo9 {
119			regulator-min-microvolt = <488000>;
120			regulator-max-microvolt = <800000>;
121			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
122		};
123
124		vreg_l10a_1p8: ldo10 {
125			regulator-min-microvolt = <1800000>;
126			regulator-max-microvolt = <1800000>;
127			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
128			regulator-always-on;
129			regulator-boot-on;
130		};
131
132		vreg_l11a_1p8: ldo11 {
133			regulator-min-microvolt = <1800000>;
134			regulator-max-microvolt = <1800000>;
135			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
136		};
137
138		vreg_l12a_1p8: ldo12 {
139			regulator-min-microvolt = <1800000>;
140			regulator-max-microvolt = <1800000>;
141			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
142		};
143
144		vreg_l13a_1p8: ldo13 {
145			regulator-min-microvolt = <1800000>;
146			regulator-max-microvolt = <1800000>;
147			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
148		};
149
150		vreg_l14a_1p8: ldo14 {
151			regulator-min-microvolt = <1800000>;
152			regulator-max-microvolt = <1800000>;
153			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
154		};
155
156		vreg_l15a_1p8: ldo15 {
157			regulator-min-microvolt = <1800000>;
158			regulator-max-microvolt = <1800000>;
159			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
160		};
161
162		vreg_l16a_2p7: ldo16 {
163			regulator-min-microvolt = <2496000>;
164			regulator-max-microvolt = <3304000>;
165			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
166		};
167
168		vreg_l17a_3p0: ldo17 {
169			regulator-min-microvolt = <2920000>;
170			regulator-max-microvolt = <3232000>;
171			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
172		};
173
174		vreg_l18a_2p8: ldo18 {
175			regulator-min-microvolt = <2496000>;
176			regulator-max-microvolt = <3304000>;
177			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
178		};
179
180		vreg_l19a_2p9: ldo19 {
181			regulator-min-microvolt = <2960000>;
182			regulator-max-microvolt = <2960000>;
183			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
184		};
185	};
186
187	regulators-1 {
188		compatible = "qcom,pm6150l-rpmh-regulators";
189		qcom,pmic-id = "c";
190
191		vreg_s8c_1p3: smps8 {
192			regulator-min-microvolt = <1120000>;
193			regulator-max-microvolt = <1408000>;
194		};
195
196		vreg_l1c_1p8: ldo1 {
197			regulator-min-microvolt = <1616000>;
198			regulator-max-microvolt = <1984000>;
199			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
200		};
201
202		vreg_l2c_1p3: ldo2 {
203			regulator-min-microvolt = <1168000>;
204			regulator-max-microvolt = <1304000>;
205			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
206		};
207
208		vreg_l3c_1p2: ldo3 {
209			regulator-min-microvolt = <1144000>;
210			regulator-max-microvolt = <1304000>;
211			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
212		};
213
214		vreg_l4c_1p8: ldo4 {
215			regulator-min-microvolt = <1648000>;
216			regulator-max-microvolt = <3304000>;
217			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
218		};
219
220		vreg_l5c_1p8: ldo5 {
221			regulator-min-microvolt = <1648000>;
222			regulator-max-microvolt = <3304000>;
223			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
224		};
225
226		vreg_l6c_2p9: ldo6 {
227			regulator-min-microvolt = <1800000>;
228			regulator-max-microvolt = <2950000>;
229			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
230		};
231
232		vreg_l7c_3p0: ldo7 {
233			regulator-min-microvolt = <3000000>;
234			regulator-max-microvolt = <3312000>;
235			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
236		};
237
238		vreg_l8c_1p8: ldo8 {
239			regulator-min-microvolt = <1800000>;
240			regulator-max-microvolt = <1800000>;
241			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
242		};
243
244		vreg_l9c_2p9: ldo9 {
245			regulator-min-microvolt = <2952000>;
246			regulator-max-microvolt = <2952000>;
247			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
248		};
249
250		vreg_l10c_3p3: ldo10 {
251			regulator-min-microvolt = <3000000>;
252			regulator-max-microvolt = <3400000>;
253			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
254		};
255
256		vreg_l11c_3p3: ldo11 {
257			regulator-min-microvolt = <3000000>;
258			regulator-max-microvolt = <3400000>;
259			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
260		};
261
262		vreg_bob: bob {
263			regulator-min-microvolt = <3008000>;
264			regulator-max-microvolt = <3960000>;
265			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
266		};
267	};
268};
269
270&gpu {
271	status = "okay";
272};
273
274&gpu_zap_shader {
275	firmware-name = "qcom/sc7180/ecs/liva-qc710/qcdxkmsuc7180.mbn";
276};
277
278&mdss {
279	status = "okay";
280};
281
282&mdss_dp {
283	pinctrl-0 = <&dp_hot_plug_det>;
284	pinctrl-names = "default";
285
286	status = "okay";
287};
288
289&mdss_dp_out {
290	data-lanes = <0 1>;
291	remote-endpoint = <&usb_1_qmpphy_dp_in>;
292};
293
294&pm6150_rtc {
295	qcom,uefi-rtc-info;
296
297	status = "okay";
298};
299
300&qfprom {
301	vcc-supply = <&vreg_l11a_1p8>;
302};
303
304&qupv3_id_0 {
305	status = "okay";
306};
307
308&qupv3_id_1 {
309	status = "okay";
310};
311
312&remoteproc_adsp {
313	memory-region = <&adsp_mem>;
314	firmware-name = "qcom/sc7180/ecs/liva-qc710/qcadsp7180.mbn";
315
316	status = "okay";
317};
318
319&remoteproc_mpss {
320	firmware-name = "qcom/sc7180/ecs/liva-qc710/qcmpss7180_nm.mbn";
321
322	status = "okay";
323};
324
325&sdhc_1 {
326	pinctrl-0 = <&sdc1_default>;
327	pinctrl-1 = <&sdc1_sleep>;
328	pinctrl-names = "default", "sleep";
329	vmmc-supply = <&vreg_l19a_2p9>;
330	vqmmc-supply = <&vreg_l12a_1p8>;
331
332	status = "okay";
333};
334
335&sdhc_2 {
336	pinctrl-0 = <&sdc2_default>;
337	pinctrl-1 = <&sdc2_sleep>;
338	pinctrl-names = "default", "sleep";
339	vmmc-supply = <&vreg_l9c_2p9>;
340	vqmmc-supply = <&vreg_l6c_2p9>;
341
342	cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
343
344	status = "okay";
345};
346
347&tlmm {
348	/*
349	 * The TZ seem to protect those because some boards can have
350	 * fingerprint sensor connected to this range. Not connected
351	 * on this board
352	 */
353	gpio-reserved-ranges = <58 5>;
354
355	qup_uart3_sleep: qup-uart3-sleep-state {
356		cts-pins {
357			/*
358			 * Configure a pull-down on CTS to match the pull of
359			 * the Bluetooth module.
360			 */
361			pins = "gpio38";
362			function = "gpio";
363			bias-pull-down;
364		};
365
366		rts-pins {
367			/*
368			 * Configure pull-down on RTS. As RTS is active low
369			 * signal, pull it low to indicate the BT SoC that it
370			 * can wakeup the system anytime from suspend state by
371			 * pulling RX low (by sending wakeup bytes).
372			 */
373			pins = "gpio39";
374			function = "gpio";
375			bias-pull-down;
376		};
377
378		tx-pins {
379			/*
380			 * Configure pull-up on TX when it isn't actively driven
381			 * to prevent BT SoC from receiving garbage during sleep.
382			 */
383			pins = "gpio40";
384			function = "gpio";
385			bias-pull-up;
386		};
387
388		rx-pins {
389			/*
390			 * Configure a pull-up on RX. This is needed to avoid
391			 * garbage data when the TX pin of the Bluetooth module
392			 * is floating which may cause spurious wakeups.
393			 */
394			pins = "gpio41";
395			function = "gpio";
396			bias-pull-up;
397		};
398	};
399
400	sdc1_default: sdc1-default-state {
401		clk-pins {
402			pins = "sdc1_clk";
403			drive-strength = <16>;
404			bias-disable;
405		};
406
407		cmd-pins {
408			pins = "sdc1_cmd";
409			drive-strength = <16>;
410			bias-pull-up;
411		};
412
413		data-pins {
414			pins = "sdc1_data";
415			drive-strength = <16>;
416			bias-pull-up;
417		};
418
419		rclk-pins {
420			pins = "sdc1_rclk";
421			bias-pull-down;
422		};
423	};
424
425	sdc1_sleep: sdc1-sleep-state {
426		clk-pins {
427			pins = "sdc1_clk";
428			drive-strength = <2>;
429			bias-disable;
430		};
431
432		cmd-pins {
433			pins = "sdc1_cmd";
434			drive-strength = <2>;
435			bias-pull-up;
436		};
437
438		data-pins {
439			pins = "sdc1_data";
440			drive-strength = <2>;
441			bias-pull-up;
442		};
443
444		rclk-pins {
445			pins = "sdc1_rclk";
446			bias-pull-down;
447		};
448	};
449
450	sdc2_default: sdc2-default-state {
451		clk-pins {
452			pins = "sdc2_clk";
453			bias-disable;
454			drive-strength = <16>;
455		};
456
457		cmd-pins {
458			pins = "sdc2_cmd";
459			bias-pull-up;
460			drive-strength = <10>;
461		};
462
463		data-pins {
464			pins = "sdc2_data";
465			bias-pull-up;
466			drive-strength = <10>;
467		};
468
469		sd-cd-pins {
470			pins = "gpio69";
471			function = "gpio";
472			bias-pull-up;
473			drive-strength = <2>;
474		};
475	};
476
477	sdc2_sleep: sdc2-sleep-state {
478		clk-pins {
479			pins = "sdc2_clk";
480			bias-disable;
481			drive-strength = <2>;
482		};
483
484		cmd-pins {
485			pins = "sdc2_cmd";
486			bias-pull-up;
487			drive-strength = <2>;
488		};
489
490		data-pins {
491			pins = "sdc2_data";
492			bias-pull-up;
493			drive-strength = <2>;
494		};
495
496		sd-cd-pins {
497			pins = "gpio69";
498			function = "gpio";
499			bias-pull-up;
500			drive-strength = <2>;
501		};
502	};
503};
504&uart3 {
505	/delete-property/ interrupts;
506	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
507			      <&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
508
509	pinctrl-1 = <&qup_uart3_sleep>;
510	pinctrl-names = "default", "sleep";
511
512	status = "okay";
513
514	bluetooth: bluetooth {
515		compatible = "qcom,wcn3991-bt";
516		vddio-supply = <&vreg_l10a_1p8>;
517		vddxo-supply = <&vreg_l1c_1p8>;
518		vddrf-supply = <&vreg_l2c_1p3>;
519		vddch0-supply = <&vreg_l10c_3p3>;
520		max-speed = <3200000>;
521	};
522};
523
524&usb_1 {
525	status = "okay";
526};
527
528&usb_1_dwc3 {
529	dr_mode = "host";
530	#address-cells = <1>;
531	#size-cells = <0>;
532
533	hub@1 {
534		compatible = "usb5e3,608";
535		reg = <1>;
536		#address-cells = <1>;
537		#size-cells = <0>;
538
539		/* @1: 3.0 Type-A port on the back
540		 * @2: 2.0 Type-A port the side
541		 * @3: 2.0 Type-C port on the back
542		 */
543
544		ethernet@4 {
545			compatible = "usbbda,8152";
546			reg = <4>;
547		};
548	};
549};
550
551&usb_1_hsphy {
552	vdd-supply = <&vreg_l4a_0p8>;
553	vdda-pll-supply = <&vreg_l11a_1p8>;
554	vdda-phy-dpdm-supply = <&vreg_l17a_3p0>;
555	qcom,imp-res-offset-value = <8>;
556	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
557	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
558	qcom,bias-ctrl-value = <0x22>;
559	qcom,charge-ctrl-value = <3>;
560	qcom,hsdisc-trim-value = <0>;
561
562	status = "okay";
563};
564
565&usb_1_qmpphy {
566	vdda-phy-supply = <&vreg_l3c_1p2>;
567	vdda-pll-supply = <&vreg_l4a_0p8>;
568
569	/delete-property/ mode-switch;
570	/delete-property/ orientation-switch;
571
572	status = "okay";
573
574	ports {
575		port@0 {
576			#address-cells = <1>;
577			#size-cells = <0>;
578
579			/delete-node/ endpoint;
580
581			usb_1_qmpphy_dp_out: endpoint@0 {
582				reg = <0>;
583
584				data-lanes = <3 2>;
585				remote-endpoint = <&hdmi_bridge_dp_in>;
586			};
587
588			usb_1_qmpphy_usb_ss_out: endpoint@1 {
589				reg = <1>;
590
591				data-lanes = <1 0>;
592				remote-endpoint = <&usb_a_connector_ss_in>;
593			};
594		};
595	};
596};
597
598&usb_1_qmpphy_dp_in {
599	remote-endpoint = <&mdss_dp_out>;
600};
601
602&venus {
603	firmware-name = "qcom/sc7180/ecs/liva-qc710/qcvss7180.mbn";
604};
605
606&wifi {
607	vdd-0.8-cx-mx-supply = <&vreg_l9a_0p6>;
608	vdd-1.8-xo-supply = <&vreg_l1c_1p8>;
609	vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
610	vdd-3.3-ch0-supply = <&vreg_l10c_3p3>;
611	vdd-3.3-ch1-supply = <&vreg_l11c_3p3>;
612
613	qcom,calibration-variant = "ECS_QC710";
614
615	status = "okay";
616};
617