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 = "Lenovo ThinkPad X13s";
17 compatible = "lenovo,thinkpad-x13s", "qcom,sc8280xp";
18
19 backlight {
20 compatible = "pwm-backlight";
21 pwms = <&pmc8280c_lpg 3 1000000>;
22 enable-gpios = <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>;
23 power-supply = <&vreg_edp_bl>;
24
25 pinctrl-names = "default";
26 pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
27 };
28
29 vreg_edp_bl: regulator-edp-bl {
30 compatible = "regulator-fixed";
31
32 regulator-name = "VBL9";
33 regulator-min-microvolt = <3600000>;
34 regulator-max-microvolt = <3600000>;
35
36 gpio = <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>;
37 enable-active-high;
38
39 pinctrl-names = "default";
40 pinctrl-0 = <&edp_bl_reg_en>;
41
42 regulator-boot-on;
43 };
44
45 vreg_misc_3p3: regulator-misc-3p3 {
46 compatible = "regulator-fixed";
47
48 regulator-name = "VCC3B";
49 regulator-min-microvolt = <3300000>;
50 regulator-max-microvolt = <3300000>;
51
52 gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>;
53 enable-active-high;
54
55 pinctrl-names = "default";
56 pinctrl-0 = <&misc_3p3_reg_en>;
57
58 regulator-boot-on;
59 regulator-always-on;
60 };
61 };
62
63 &apps_rsc {
64 pmc8280-1-rpmh-regulators {
65 compatible = "qcom,pm8350-rpmh-regulators";
66 qcom,pmic-id = "b";
67
68 vdd-l3-l5-supply = <&vreg_s11b>;
69
70 vreg_s11b: smps11 {
71 regulator-name = "vreg_s11b";
72 regulator-min-microvolt = <1272000>;
73 regulator-max-microvolt = <1272000>;
74 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
75 };
76
77 vreg_l3b: ldo3 {
78 regulator-name = "vreg_l3b";
79 regulator-min-microvolt = <1200000>;
80 regulator-max-microvolt = <1200000>;
81 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
82 regulator-allow-set-load;
83 regulator-boot-on;
84 };
85
86 vreg_l4b: ldo4 {
87 regulator-name = "vreg_l4b";
88 regulator-min-microvolt = <912000>;
89 regulator-max-microvolt = <912000>;
90 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
91 regulator-allow-set-load;
92 };
93
94 vreg_l6b: ldo6 {
95 regulator-name = "vreg_l6b";
96 regulator-min-microvolt = <880000>;
97 regulator-max-microvolt = <880000>;
98 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
99 regulator-allow-set-load;
100 regulator-boot-on;
101 regulator-always-on; // FIXME: VDD_A_EDP_0_0P9
102 };
103 };
104
105 pmc8280c-rpmh-regulators {
106 compatible = "qcom,pm8350c-rpmh-regulators";
107 qcom,pmic-id = "c";
108
109 vreg_l1c: ldo1 {
110 regulator-name = "vreg_l1c";
111 regulator-min-microvolt = <1800000>;
112 regulator-max-microvolt = <1800000>;
113 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
114 regulator-allow-set-load;
115 };
116
117 vreg_l12c: ldo12 {
118 regulator-name = "vreg_l12c";
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_l13c: ldo13 {
126 regulator-name = "vreg_l13c";
127 regulator-min-microvolt = <3072000>;
128 regulator-max-microvolt = <3072000>;
129 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
130 regulator-allow-set-load;
131 };
132 };
133
134 pmc8280-2-rpmh-regulators {
135 compatible = "qcom,pm8350-rpmh-regulators";
136 qcom,pmic-id = "d";
137
138 vdd-l1-l4-supply = <&vreg_s11b>;
139
140 vreg_l3d: ldo3 {
141 regulator-name = "vreg_l3d";
142 regulator-min-microvolt = <1200000>;
143 regulator-max-microvolt = <1200000>;
144 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
145 regulator-allow-set-load;
146 };
147
148 vreg_l4d: ldo4 {
149 regulator-name = "vreg_l4d";
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_l7d: ldo7 {
157 regulator-name = "vreg_l7d";
158 regulator-min-microvolt = <3072000>;
159 regulator-max-microvolt = <3072000>;
160 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
161 regulator-allow-set-load;
162 };
163
164 vreg_l9d: ldo9 {
165 regulator-name = "vreg_l9d";
166 regulator-min-microvolt = <912000>;
167 regulator-max-microvolt = <912000>;
168 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
169 regulator-allow-set-load;
170 };
171 };
172 };
173
174 &pmc8280c_lpg {
175 status = "okay";
176 };
177
178 &pmk8280_pon_pwrkey {
179 status = "okay";
180 };
181
182 &qup0 {
183 status = "okay";
184 };
185
186 &qup0_i2c4 {
187 clock-frequency = <400000>;
188
189 pinctrl-names = "default";
190 pinctrl-0 = <&qup0_i2c4_default>, <&ts0_default>;
191
192 status = "okay";
193
194 /* FIXME: verify */
195 touchscreen@10 {
196 compatible = "hid-over-i2c";
197 reg = <0x10>;
198 hid-descr-addr = <0x1>;
199 interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
200 vdd-supply = <&vreg_misc_3p3>;
201 };
202 };
203
204 &qup1 {
205 status = "okay";
206 };
207
208 &qup2 {
209 status = "okay";
210 };
211
212 &qup2_i2c5 {
213 clock-frequency = <400000>;
214
215 pinctrl-names = "default";
216 pinctrl-0 = <&qup2_i2c5_default>, <&kybd_default>, <&tpad_default>;
217
218 status = "okay";
219
220 touchpad@2c {
221 compatible = "hid-over-i2c";
222 reg = <0x2c>;
223 hid-descr-addr = <0x20>;
224 interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
225 vdd-supply = <&vreg_misc_3p3>;
226 };
227
228 keyboard@68 {
229 compatible = "hid-over-i2c";
230 reg = <0x68>;
231 hid-descr-addr = <0x1>;
232 interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
233 vdd-supply = <&vreg_misc_3p3>;
234 };
235 };
236
237 &remoteproc_adsp {
238 firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn";
239
240 status = "okay";
241 };
242
243 &remoteproc_nsp0 {
244 firmware-name = "qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn";
245
246 status = "okay";
247 };
248
249 &usb_0 {
250 status = "okay";
251 };
252
253 &usb_0_dwc3 {
254 /* TODO: Define USB-C connector properly */
255 dr_mode = "host";
256 };
257
258 &usb_0_hsphy {
259 vdda-pll-supply = <&vreg_l9d>;
260 vdda18-supply = <&vreg_l1c>;
261 vdda33-supply = <&vreg_l7d>;
262
263 status = "okay";
264 };
265
266 &usb_0_qmpphy {
267 vdda-phy-supply = <&vreg_l9d>;
268 vdda-pll-supply = <&vreg_l4d>;
269
270 status = "okay";
271 };
272
273 &usb_1 {
274 status = "okay";
275 };
276
277 &usb_1_dwc3 {
278 /* TODO: Define USB-C connector properly */
279 dr_mode = "host";
280 };
281
282 &usb_1_hsphy {
283 vdda-pll-supply = <&vreg_l4b>;
284 vdda18-supply = <&vreg_l1c>;
285 vdda33-supply = <&vreg_l13c>;
286
287 status = "okay";
288 };
289
290 &usb_1_qmpphy {
291 vdda-phy-supply = <&vreg_l4b>;
292 vdda-pll-supply = <&vreg_l3b>;
293
294 status = "okay";
295 };
296
297 &xo_board_clk {
298 clock-frequency = <38400000>;
299 };
300
301 /* PINCTRL */
302
303 &pmc8280_1_gpios {
304 edp_bl_en: edp-bl-en-state {
305 pins = "gpio8";
306 function = "normal";
307 };
308
309 edp_bl_reg_en: edp-bl-reg-en-state {
310 pins = "gpio9";
311 function = "normal";
312 };
313
314 misc_3p3_reg_en: misc-3p3-reg-en-state {
315 pins = "gpio1";
316 function = "normal";
317 };
318 };
319
320 &pmc8280c_gpios {
321 edp_bl_pwm: edp-bl-pwm-state {
322 pins = "gpio8";
323 function = "func1";
324 };
325 };
326
327 &tlmm {
328 gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7>;
329
330 kybd_default: kybd-default-state {
331 disable {
332 pins = "gpio102";
333 function = "gpio";
334 output-low;
335 };
336
337 int-n {
338 pins = "gpio104";
339 function = "gpio";
340 bias-disable;
341 };
342
343 reset {
344 pins = "gpio105";
345 function = "gpio";
346 bias-disable;
347 };
348 };
349
350 qup0_i2c4_default: qup0-i2c4-default-state {
351 pins = "gpio171", "gpio172";
352 function = "qup4";
353 bias-disable;
354 drive-strength = <16>;
355 };
356
357 qup2_i2c5_default: qup2-i2c5-default-state {
358 pins = "gpio81", "gpio82";
359 function = "qup21";
360 bias-disable;
361 drive-strength = <16>;
362 };
363
364 tpad_default: tpad-default-state {
365 int-n {
366 pins = "gpio182";
367 function = "gpio";
368 bias-disable;
369 };
370 };
371
372 ts0_default: ts0-default-state {
373 int-n {
374 pins = "gpio175";
375 function = "gpio";
376 bias-pull-up;
377 };
378
379 reset-n {
380 pins = "gpio99";
381 function = "gpio";
382 output-high;
383 drive-strength = <16>;
384 };
385 };
386 };
Cache object: ae330f234b1014997202db8ef7131b15
|