GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm64 / boot / dts / qcom / sc8280xp-lenovo-thinkpad-x13s.dts
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-boot-on;
83                 };
84
85                 vreg_l4b: ldo4 {
86                         regulator-name = "vreg_l4b";
87                         regulator-min-microvolt = <912000>;
88                         regulator-max-microvolt = <912000>;
89                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
90                 };
91
92                 vreg_l6b: ldo6 {
93                         regulator-name = "vreg_l6b";
94                         regulator-min-microvolt = <880000>;
95                         regulator-max-microvolt = <880000>;
96                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
97                         regulator-boot-on;
98                         regulator-always-on;    // FIXME: VDD_A_EDP_0_0P9
99                 };
100         };
101
102         pmc8280c-rpmh-regulators {
103                 compatible = "qcom,pm8350c-rpmh-regulators";
104                 qcom,pmic-id = "c";
105
106                 vreg_l1c: ldo1 {
107                         regulator-name = "vreg_l1c";
108                         regulator-min-microvolt = <1800000>;
109                         regulator-max-microvolt = <1800000>;
110                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
111                 };
112
113                 vreg_l12c: ldo12 {
114                         regulator-name = "vreg_l12c";
115                         regulator-min-microvolt = <1800000>;
116                         regulator-max-microvolt = <1800000>;
117                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
118                 };
119
120                 vreg_l13c: ldo13 {
121                         regulator-name = "vreg_l13c";
122                         regulator-min-microvolt = <3072000>;
123                         regulator-max-microvolt = <3072000>;
124                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
125                 };
126         };
127
128         pmc8280-2-rpmh-regulators {
129                 compatible = "qcom,pm8350-rpmh-regulators";
130                 qcom,pmic-id = "d";
131
132                 vdd-l1-l4-supply = <&vreg_s11b>;
133
134                 vreg_l3d: ldo3 {
135                         regulator-name = "vreg_l3d";
136                         regulator-min-microvolt = <1200000>;
137                         regulator-max-microvolt = <1200000>;
138                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
139                 };
140
141                 vreg_l4d: ldo4 {
142                         regulator-name = "vreg_l4d";
143                         regulator-min-microvolt = <1200000>;
144                         regulator-max-microvolt = <1200000>;
145                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
146                 };
147
148                 vreg_l7d: ldo7 {
149                         regulator-name = "vreg_l7d";
150                         regulator-min-microvolt = <3072000>;
151                         regulator-max-microvolt = <3072000>;
152                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
153                 };
154
155                 vreg_l9d: ldo9 {
156                         regulator-name = "vreg_l9d";
157                         regulator-min-microvolt = <912000>;
158                         regulator-max-microvolt = <912000>;
159                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
160                 };
161         };
162 };
163
164 &pmc8280c_lpg {
165         status = "okay";
166 };
167
168 &pmk8280_pon_pwrkey {
169         status = "okay";
170 };
171
172 &qup0 {
173         status = "okay";
174 };
175
176 &qup0_i2c4 {
177         clock-frequency = <400000>;
178
179         pinctrl-names = "default";
180         pinctrl-0 = <&qup0_i2c4_default>;
181
182         status = "okay";
183
184         /* FIXME: verify */
185         touchscreen@10 {
186                 compatible = "hid-over-i2c";
187                 reg = <0x10>;
188
189                 hid-descr-addr = <0x1>;
190                 interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
191                 vdd-supply = <&vreg_misc_3p3>;
192
193                 pinctrl-names = "default";
194                 pinctrl-0 = <&ts0_default>;
195         };
196 };
197
198 &qup1 {
199         status = "okay";
200 };
201
202 &qup2 {
203         status = "okay";
204 };
205
206 &qup2_i2c5 {
207         clock-frequency = <400000>;
208
209         pinctrl-names = "default";
210         pinctrl-0 = <&qup2_i2c5_default>;
211
212         status = "okay";
213
214         touchpad@15 {
215                 compatible = "hid-over-i2c";
216                 reg = <0x15>;
217
218                 hid-descr-addr = <0x1>;
219                 interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
220                 vdd-supply = <&vreg_misc_3p3>;
221
222                 pinctrl-names = "default";
223                 pinctrl-0 = <&tpad_default>;
224
225                 wakeup-source;
226
227                 status = "disabled";
228         };
229
230         touchpad@2c {
231                 compatible = "hid-over-i2c";
232                 reg = <0x2c>;
233
234                 hid-descr-addr = <0x20>;
235                 interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
236                 vdd-supply = <&vreg_misc_3p3>;
237
238                 pinctrl-names = "default";
239                 pinctrl-0 = <&tpad_default>;
240
241                 wakeup-source;
242         };
243
244         keyboard@68 {
245                 compatible = "hid-over-i2c";
246                 reg = <0x68>;
247
248                 hid-descr-addr = <0x1>;
249                 interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
250                 vdd-supply = <&vreg_misc_3p3>;
251
252                 pinctrl-names = "default";
253                 pinctrl-0 = <&kybd_default>;
254
255                 wakeup-source;
256         };
257 };
258
259 &remoteproc_adsp {
260         firmware-name = "/*(DEBLOBBED)*/";
261
262         status = "okay";
263 };
264
265 &remoteproc_nsp0 {
266         firmware-name = "/*(DEBLOBBED)*/";
267
268         status = "okay";
269 };
270
271 &usb_0 {
272         status = "okay";
273 };
274
275 &usb_0_dwc3 {
276         /* TODO: Define USB-C connector properly */
277         dr_mode = "host";
278 };
279
280 &usb_0_hsphy {
281         vdda-pll-supply = <&vreg_l9d>;
282         vdda18-supply = <&vreg_l1c>;
283         vdda33-supply = <&vreg_l7d>;
284
285         status = "okay";
286 };
287
288 &usb_0_qmpphy {
289         vdda-phy-supply = <&vreg_l9d>;
290         vdda-pll-supply = <&vreg_l4d>;
291
292         status = "okay";
293 };
294
295 &usb_1 {
296         status = "okay";
297 };
298
299 &usb_1_dwc3 {
300         /* TODO: Define USB-C connector properly */
301         dr_mode = "host";
302 };
303
304 &usb_1_hsphy {
305         vdda-pll-supply = <&vreg_l4b>;
306         vdda18-supply = <&vreg_l1c>;
307         vdda33-supply = <&vreg_l13c>;
308
309         status = "okay";
310 };
311
312 &usb_1_qmpphy {
313         vdda-phy-supply = <&vreg_l4b>;
314         vdda-pll-supply = <&vreg_l3b>;
315
316         status = "okay";
317 };
318
319 &xo_board_clk {
320         clock-frequency = <38400000>;
321 };
322
323 /* PINCTRL */
324
325 &pmc8280_1_gpios {
326         edp_bl_en: edp-bl-en-state {
327                 pins = "gpio8";
328                 function = "normal";
329         };
330
331         edp_bl_reg_en: edp-bl-reg-en-state {
332                 pins = "gpio9";
333                 function = "normal";
334         };
335
336         misc_3p3_reg_en: misc-3p3-reg-en-state {
337                 pins = "gpio1";
338                 function = "normal";
339         };
340 };
341
342 &pmc8280c_gpios {
343         edp_bl_pwm: edp-bl-pwm-state {
344                 pins = "gpio8";
345                 function = "func1";
346         };
347 };
348
349 &tlmm {
350         gpio-reserved-ranges = <70 2>, <74 6>, <125 2>, <128 2>, <154 4>;
351
352         kybd_default: kybd-default-state {
353                 disable {
354                         pins = "gpio102";
355                         function = "gpio";
356                         output-low;
357                 };
358
359                 int-n {
360                         pins = "gpio104";
361                         function = "gpio";
362                         bias-disable;
363                 };
364
365                 reset {
366                         pins = "gpio105";
367                         function = "gpio";
368                         bias-disable;
369                 };
370         };
371
372         qup0_i2c4_default: qup0-i2c4-default-state {
373                 pins = "gpio171", "gpio172";
374                 function = "qup4";
375                 bias-disable;
376                 drive-strength = <16>;
377         };
378
379         qup2_i2c5_default: qup2-i2c5-default-state {
380                 pins = "gpio81", "gpio82";
381                 function = "qup21";
382                 bias-disable;
383                 drive-strength = <16>;
384         };
385
386         tpad_default: tpad-default-state {
387                 int-n {
388                         pins = "gpio182";
389                         function = "gpio";
390                         bias-disable;
391                 };
392         };
393
394         ts0_default: ts0-default-state {
395                 int-n {
396                         pins = "gpio175";
397                         function = "gpio";
398                         bias-disable;
399                 };
400
401                 reset-n {
402                         pins = "gpio99";
403                         function = "gpio";
404                         output-high;
405                         drive-strength = <16>;
406                 };
407         };
408 };