1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2022, Linaro Limited
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
11
12#include "sc8280xp.dtsi"
13#include "sc8280xp-pmics.dtsi"
14
15/ {
16	model = "Qualcomm SC8280XP CRD";
17	compatible = "qcom,sc8280xp-crd", "qcom,sc8280xp";
18
19	aliases {
20		serial0 = &qup2_uart17;
21	};
22
23	backlight {
24		compatible = "pwm-backlight";
25		pwms = <&pmc8280c_lpg 3 1000000>;
26		enable-gpios = <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>;
27		power-supply = <&vreg_edp_bl>;
28
29		pinctrl-names = "default";
30		pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
31	};
32
33	chosen {
34		stdout-path = "serial0:115200n8";
35	};
36
37	vreg_edp_bl: regulator-edp-bl {
38		compatible = "regulator-fixed";
39
40		regulator-name = "VREG_EDP_BL";
41		regulator-min-microvolt = <3600000>;
42		regulator-max-microvolt = <3600000>;
43
44		gpio = <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>;
45		enable-active-high;
46
47		pinctrl-names = "default";
48		pinctrl-0 = <&edp_bl_reg_en>;
49
50		regulator-boot-on;
51	};
52
53	vreg_misc_3p3: regulator-misc-3p3 {
54		compatible = "regulator-fixed";
55
56		regulator-name = "VREG_MISC_3P3";
57		regulator-min-microvolt = <3300000>;
58		regulator-max-microvolt = <3300000>;
59
60		gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>;
61		enable-active-high;
62
63		pinctrl-names = "default";
64		pinctrl-0 = <&misc_3p3_reg_en>;
65
66		regulator-boot-on;
67		regulator-always-on;
68	};
69};
70
71&apps_rsc {
72	pmc8280-1-rpmh-regulators {
73		compatible = "qcom,pm8350-rpmh-regulators";
74		qcom,pmic-id = "b";
75
76		vdd-l3-l5-supply = <&vreg_s11b>;
77
78		vreg_s11b: smps11 {
79			regulator-name = "vreg_s11b";
80			regulator-min-microvolt = <1272000>;
81			regulator-max-microvolt = <1272000>;
82			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
83		};
84
85		vreg_l3b: ldo3 {
86			regulator-name = "vreg_l3b";
87			regulator-min-microvolt = <1200000>;
88			regulator-max-microvolt = <1200000>;
89			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
90			regulator-allow-set-load;
91			regulator-boot-on;
92			regulator-always-on;
93		};
94
95		vreg_l4b: ldo4 {
96			regulator-name = "vreg_l4b";
97			regulator-min-microvolt = <912000>;
98			regulator-max-microvolt = <912000>;
99			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
100			regulator-allow-set-load;
101		};
102
103		vreg_l6b: ldo6 {
104			regulator-name = "vreg_l6b";
105			regulator-min-microvolt = <880000>;
106			regulator-max-microvolt = <880000>;
107			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
108			regulator-allow-set-load;
109			regulator-boot-on;
110		};
111	};
112
113	pmc8280c-rpmh-regulators {
114		compatible = "qcom,pm8350c-rpmh-regulators";
115		qcom,pmic-id = "c";
116
117		vreg_l1c: ldo1 {
118			regulator-name = "vreg_l1c";
119			regulator-min-microvolt = <1800000>;
120			regulator-max-microvolt = <1800000>;
121			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
122			regulator-allow-set-load;
123		};
124
125		vreg_l7c: ldo7 {
126			regulator-name = "vreg_l7c";
127			regulator-min-microvolt = <2504000>;
128			regulator-max-microvolt = <2504000>;
129			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
130			regulator-allow-set-load;
131		};
132
133		vreg_l13c: ldo13 {
134			regulator-name = "vreg_l13c";
135			regulator-min-microvolt = <3072000>;
136			regulator-max-microvolt = <3072000>;
137			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
138			regulator-allow-set-load;
139		};
140	};
141
142	pmc8280-2-rpmh-regulators {
143		compatible = "qcom,pm8350-rpmh-regulators";
144		qcom,pmic-id = "d";
145
146		vdd-l1-l4-supply = <&vreg_s11b>;
147
148		vreg_l3d: ldo3 {
149			regulator-name = "vreg_l3d";
150			regulator-min-microvolt = <1200000>;
151			regulator-max-microvolt = <1200000>;
152			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
153			regulator-allow-set-load;
154		};
155
156		vreg_l4d: ldo4 {
157			regulator-name = "vreg_l4d";
158			regulator-min-microvolt = <1200000>;
159			regulator-max-microvolt = <1200000>;
160			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
161			regulator-allow-set-load;
162		};
163
164		vreg_l6d: ldo6 {
165			regulator-name = "vreg_l6d";
166			regulator-min-microvolt = <880000>;
167			regulator-max-microvolt = <880000>;
168			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
169			regulator-allow-set-load;
170		};
171
172		vreg_l7d: ldo7 {
173			regulator-name = "vreg_l7d";
174			regulator-min-microvolt = <3072000>;
175			regulator-max-microvolt = <3072000>;
176			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
177			regulator-allow-set-load;
178		};
179
180		vreg_l9d: ldo9 {
181			regulator-name = "vreg_l9d";
182			regulator-min-microvolt = <912000>;
183			regulator-max-microvolt = <912000>;
184			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
185			regulator-allow-set-load;
186		};
187	};
188};
189
190&pmc8280c_lpg {
191	status = "okay";
192};
193
194&pmk8280_pon_pwrkey {
195	status = "okay";
196};
197
198&qup0 {
199	status = "okay";
200};
201
202&qup0_i2c4 {
203	clock-frequency = <400000>;
204
205	pinctrl-names = "default";
206	pinctrl-0 = <&qup0_i2c4_default>, <&ts0_default>;
207
208	status = "okay";
209
210	touchscreen@10 {
211		compatible = "hid-over-i2c";
212		reg = <0x10>;
213		hid-descr-addr = <0x1>;
214		interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
215		vdd-supply = <&vreg_misc_3p3>;
216	};
217};
218
219&qup1 {
220	status = "okay";
221};
222
223&qup2 {
224	status = "okay";
225};
226
227&qup2_i2c5 {
228	clock-frequency = <400000>;
229
230	pinctrl-names = "default";
231	pinctrl-0 = <&qup2_i2c5_default>, <&kybd_default>, <&tpad_default>;
232
233	status = "okay";
234
235	touchpad@15 {
236		compatible = "hid-over-i2c";
237		reg = <0x15>;
238		hid-descr-addr = <0x1>;
239		interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
240		vdd-supply = <&vreg_misc_3p3>;
241	};
242
243	keyboard@68 {
244		compatible = "hid-over-i2c";
245		reg = <0x68>;
246		hid-descr-addr = <0x1>;
247		interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
248		vdd-supply = <&vreg_misc_3p3>;
249	};
250};
251
252&qup2_uart17 {
253	compatible = "qcom,geni-debug-uart";
254
255	status = "okay";
256};
257
258&remoteproc_adsp {
259	firmware-name = "qcom/sc8280xp/qcadsp8280.mbn";
260
261	status = "okay";
262};
263
264&remoteproc_nsp0 {
265	firmware-name = "qcom/sc8280xp/qccdsp8280.mbn";
266
267	status = "okay";
268};
269
270&ufs_mem_hc {
271	reset-gpios = <&tlmm 228 GPIO_ACTIVE_LOW>;
272
273	vcc-supply = <&vreg_l7c>;
274	vcc-max-microamp = <800000>;
275	vccq-supply = <&vreg_l3d>;
276	vccq-max-microamp = <900000>;
277
278	status = "okay";
279};
280
281&ufs_mem_phy {
282	vdda-phy-supply = <&vreg_l6b>;
283	vdda-pll-supply = <&vreg_l3b>;
284
285	status = "okay";
286};
287
288&usb_0 {
289	status = "okay";
290};
291
292&usb_0_dwc3 {
293	/* TODO: Define USB-C connector properly */
294	dr_mode = "host";
295};
296
297&usb_0_hsphy {
298	vdda-pll-supply = <&vreg_l9d>;
299	vdda18-supply = <&vreg_l1c>;
300	vdda33-supply = <&vreg_l7d>;
301
302	status = "okay";
303};
304
305&usb_0_qmpphy {
306	vdda-phy-supply = <&vreg_l9d>;
307	vdda-pll-supply = <&vreg_l4d>;
308
309	status = "okay";
310};
311
312&usb_1 {
313	status = "okay";
314};
315
316&usb_1_dwc3 {
317	/* TODO: Define USB-C connector properly */
318	dr_mode = "host";
319};
320
321&usb_1_hsphy {
322	vdda-pll-supply = <&vreg_l4b>;
323	vdda18-supply = <&vreg_l1c>;
324	vdda33-supply = <&vreg_l13c>;
325
326	status = "okay";
327};
328
329&usb_1_qmpphy {
330	vdda-phy-supply = <&vreg_l4b>;
331	vdda-pll-supply = <&vreg_l3b>;
332
333	status = "okay";
334};
335
336&xo_board_clk {
337	clock-frequency = <38400000>;
338};
339
340/* PINCTRL - additions to nodes defined in sc8280xp.dtsi */
341
342&pmc8280_1_gpios {
343	edp_bl_en: edp-bl-en-state {
344		pins = "gpio8";
345		function = "normal";
346	};
347
348	edp_bl_reg_en: edp-bl-reg-en-state {
349		pins = "gpio9";
350		function = "normal";
351	};
352
353	misc_3p3_reg_en: misc-3p3-reg-en-state {
354		pins = "gpio1";
355		function = "normal";
356	};
357};
358
359&pmc8280c_gpios {
360	edp_bl_pwm: edp-bl-pwm-state {
361		pins = "gpio8";
362		function = "func1";
363	};
364};
365
366&tlmm {
367	gpio-reserved-ranges = <74 6>, <83 4>, <125 2>, <128 2>, <154 7>;
368
369	kybd_default: kybd-default-state {
370		disable {
371			pins = "gpio102";
372			function = "gpio";
373			output-low;
374		};
375
376		int-n {
377			pins = "gpio104";
378			function = "gpio";
379			bias-disable;
380		};
381
382		reset {
383			pins = "gpio105";
384			function = "gpio";
385			bias-disable;
386		};
387	};
388
389	qup0_i2c4_default: qup0-i2c4-default-state {
390		pins = "gpio171", "gpio172";
391		function = "qup4";
392
393		bias-disable;
394		drive-strength = <16>;
395	};
396
397	qup2_i2c5_default: qup2-i2c5-default-state {
398		pins = "gpio81", "gpio82";
399		function = "qup21";
400
401		bias-disable;
402		drive-strength = <16>;
403	};
404
405	tpad_default: tpad-default-state {
406		int-n {
407			pins = "gpio182";
408			function = "gpio";
409			bias-disable;
410		};
411	};
412
413	ts0_default: ts0-default-state {
414		int-n {
415			pins = "gpio175";
416			function = "gpio";
417			bias-pull-up;
418		};
419
420		reset-n {
421			pins = "gpio99";
422			function = "gpio";
423			output-high;
424			drive-strength = <16>;
425		};
426	};
427};
428