OSDN Git Service

Merge tag 'char-misc-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregk...
[uclinux-h8/linux.git] / arch / arm64 / boot / dts / qcom / msm8996-xiaomi-common.dtsi
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2020, Yassine Oudjana <y.oudjana@protonmail.com>
4  */
5
6 /dts-v1/;
7
8 #include "msm8996.dtsi"
9 #include "pm8994.dtsi"
10 #include "pmi8994.dtsi"
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/leds/common.h>
14 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
15
16 / {
17         clocks {
18                 compatible = "simple-bus";
19
20                 divclk1_cdc: divclk1 {
21                         compatible = "gpio-gate-clock";
22                         clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
23                         #clock-cells = <0>;
24                         enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>;
25
26                         pinctrl-names = "default";
27                         pinctrl-0 = <&divclk1_default>;
28                 };
29
30                 divclk4: divclk4 {
31                         compatible = "fixed-clock";
32                         #clock-cells = <0>;
33                         clock-frequency = <32768>;
34                         clock-output-names = "divclk4";
35
36                         pinctrl-names = "default";
37                         pinctrl-0 = <&divclk4_pin_a>;
38                 };
39         };
40
41         gpio_keys {
42                 compatible = "gpio-keys";
43
44                 vol_up {
45                         label = "Volume Up";
46                         gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
47                         linux,code = <KEY_VOLUMEUP>;
48                         wakeup-source;
49                         debounce-interval = <15>;
50                 };
51
52                 dome {
53                         label = "Home";
54                         gpios = <&tlmm 34 GPIO_ACTIVE_LOW>;
55                         linux,code = <KEY_HOME>;
56                         wakeup-source;
57                         debounce-interval = <15>;
58                 };
59         };
60
61         reserved-memory {
62                 memory@88800000 {
63                         reg = <0x0 0x88800000 0x0 0x1400000>;
64                         no-map;
65                 };
66
67                 /* This platform has all PIL regions offset by 0x1400000 */
68                 /delete-node/ mpss@88800000;
69                 mpss_region: mpss@89c00000 {
70                         reg = <0x0 0x89c00000 0x0 0x6200000>;
71                         no-map;
72                 };
73
74                 /delete-node/ adsp@8ea00000;
75                 adsp_region: adsp@8ea00000 {
76                         reg = <0x0 0x8fe00000 0x0 0x1b00000>;
77                         no-map;
78                 };
79
80                 /delete-node/ slpi@90b00000;
81                 slpi_region: slpi@91900000 {
82                         reg = <0x0 0x91900000 0x0 0xa00000>;
83                         no-map;
84                 };
85
86                 /delete-node/ gpu@8f200000;
87                 zap_shader_region: gpu@92300000 {
88                         compatible = "shared-dma-pool";
89                         reg = <0x0 0x92300000 0x0 0x2000>;
90                         no-map;
91                 };
92
93                 /delete-node/ venus@91000000;
94                 venus_region: venus@90400000 {
95                         reg = <0x0 0x92400000 0x0 0x500000>;
96                         no-map;
97                 };
98
99                 ramoops@92900000 {
100                         compatible = "ramoops";
101                         reg = <0x0 0x92900000 0x0 0x100000>;
102                         no-map;
103
104                         record-size = <0x8000>;
105                         console-size = <0x80000>;
106                         ftrace-size = <0x20000>;
107                         pmsg-size = <0x40000>;
108                 };
109
110                 /delete-node/ rmtfs@86700000;
111                 rmtfs@f6c00000 {
112                         compatible = "qcom,rmtfs-mem";
113                         reg = <0 0xf6c00000 0 0x200000>;
114                         no-map;
115
116                         qcom,client-id = <1>;
117                         qcom,vmid = <15>;
118                 };
119
120                 /delete-node/ mba@91500000;
121                 mba_region: mba@f6f00000 {
122                         reg = <0x0 0xf6f00000 0x0 0x100000>;
123                         no-map;
124                 };
125         };
126
127         vph_pwr: vph-pwr-regulator {
128                 compatible = "regulator-fixed";
129                 regulator-name = "vph_pwr";
130                 regulator-min-microvolt = <3800000>;
131                 regulator-max-microvolt = <3800000>;
132                 regulator-always-on;
133                 regulator-boot-on;
134         };
135
136         vdd_3v2_tp: vdd-3v2-tp {
137                 compatible = "regulator-fixed";
138                 regulator-name = "vdd_3v2_tp";
139                 regulator-min-microvolt = <3200000>;
140                 regulator-max-microvolt = <3200000>;
141                 startup-delay-us = <4000>;
142                 vin-supply = <&vph_pwr>;
143
144                 gpio = <&tlmm 73 0>;
145                 enable-active-high;
146         };
147
148         vdd_3v3: rome-vreg {
149                 compatible = "regulator-fixed";
150                 regulator-name = "vdd_3v3";
151                 regulator-min-microvolt = <3300000>;
152                 regulator-max-microvolt = <3300000>;
153                 startup-delay-us = <4000>;
154                 vin-supply = <&vph_pwr_bbyp>;
155
156                 gpio = <&pm8994_gpios 9 0>;
157                 enable-active-high;
158                 pinctrl-names = "default";
159                 pinctrl-0 = <&rome_enable_default>;
160
161                 /* Required by QCA6174a - vddpe-3v3 */
162                 regulator-always-on;
163         };
164
165         /* WL_EN pin defined as a fixed regulator */
166         wlan_en: wlan-en-1-8v {
167                 compatible = "regulator-fixed";
168                 regulator-name = "wlan-en-regulator";
169                 regulator-min-microvolt = <1800000>;
170                 regulator-max-microvolt = <1800000>;
171
172                 gpio = <&pm8994_gpios 8 0>;
173                 /* WLAN card specific delay */
174                 startup-delay-us = <70000>;
175                 enable-active-high;
176                 pinctrl-names = "default";
177                 pinctrl-0 = <&wlan_en_default>;
178         };
179 };
180
181 &adsp_pil {
182         status = "okay";
183 };
184
185 &blsp2_i2c2 {
186         status = "okay";
187         label = "NFC_I2C";
188         clock-frequency = <400000>;
189
190         nfc: pn548@28 {
191                 compatible = "nxp,nxp-nci-i2c";
192
193                 reg = <0x28>;
194
195                 interrupt-parent = <&tlmm>;
196                 interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
197
198                 enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
199                 firmware-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
200
201                 pinctrl-names = "default";
202                 pinctrl-0 = <&nfc_default>;
203         };
204 };
205
206 &blsp2_i2c3 {
207         status = "okay";
208         label = "TYPEC_I2C";
209
210         typec: tusb320l@47 {
211                 compatible = "ti,tusb320l";
212                 reg = <0x47>;
213                 interrupt-parent = <&tlmm>;
214                 interrupts = <63 IRQ_TYPE_EDGE_RISING>;
215         };
216 };
217
218 &blsp2_i2c6 {
219         status = "okay";
220         label = "MSM_TS_I2C";
221 };
222
223 &blsp1_uart2 {
224         status = "okay";
225         label = "QCA_UART";
226
227         bluetooth: qca6174a {
228                 compatible = "qcom,qca6174-bt";
229
230                 enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
231                 clocks = <&divclk4>;
232         };
233 };
234
235 &dsi0 {
236         status = "okay";
237
238         vdd-supply = <&vreg_l2a_1p25>;
239         vddio-supply = <&vreg_l14a_1p8>;
240
241         pinctrl-names = "default", "sleep";
242         pinctrl-0 = <&mdss_dsi_default &mdss_te_default>;
243         pinctrl-1 = <&mdss_dsi_sleep &mdss_te_sleep>;
244 };
245
246 &dsi0_out {
247         status = "okay";
248
249         data-lanes = <0 1 2 3>;
250 };
251
252 &dsi0_phy {
253         status = "okay";
254
255         vcca-supply = <&vreg_l28a_0p925>;
256 };
257
258 &gpu {
259         status = "okay";
260 };
261
262 &mdss {
263         status = "okay";
264 };
265
266 &mmcc {
267         vdd-gfx-supply = <&vdd_gfx>;
268 };
269
270 &pcie0 {
271         status = "okay";
272
273         /* Supplied by vdd_3v3, but choose wlan_en to drive enable pin high */
274         vddpe-3v3-supply = <&wlan_en>;
275         vdda-supply = <&vreg_l28a_0p925>;
276
277         perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
278         wake-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
279 };
280
281 &pcie_phy {
282         status = "okay";
283
284         vdda-phy-supply = <&vreg_l28a_0p925>;
285         vdda-pll-supply = <&vreg_l12a_1p8>;
286 };
287
288 &pm8994_resin {
289         status = "okay";
290
291         linux,code = <KEY_VOLUMEDOWN>;
292 };
293
294 &usb3 {
295         status = "okay";
296         extcon = <&typec>;
297
298         qcom,select-utmi-as-pipe-clk;
299
300         dwc3@6a00000 {
301                 extcon = <&typec>;
302
303                 /* usb3-phy is not used on this device */
304                 phys = <&hsusb_phy1>;
305                 phy-names = "usb2-phy";
306
307                 maximum-speed = "high-speed";
308                 snps,is-utmi-l1-suspend;
309                 snps,usb2-gadget-lpm-disable;
310                 snps,hird-threshold = /bits/ 8 <0>;
311         };
312 };
313
314 &hsusb_phy1 {
315         status = "okay";
316         extcon = <&typec>;
317
318         vdda-pll-supply = <&vreg_l12a_1p8>;
319         vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
320 };
321
322 &ufshc {
323         status = "okay";
324
325         vcc-supply = <&vreg_l20a_2p95>;
326         vccq-supply = <&vreg_l25a_1p2>;
327         vccq2-supply = <&vreg_s4a_1p8>;
328
329         vcc-max-microamp = <600000>;
330         vccq-max-microamp = <450000>;
331         vccq2-max-microamp = <450000>;
332 };
333
334 &ufsphy {
335         status = "okay";
336
337         vdda-phy-supply = <&vreg_l28a_0p925>;
338         vdda-pll-supply = <&vreg_l12a_1p8>;
339
340         vdda-phy-max-microamp = <18380>;
341         vdda-pll-max-microamp = <9440>;
342
343         vddp-ref-clk-supply = <&vreg_l25a_1p2>;
344         vddp-ref-clk-max-microamp = <100>;
345         vddp-ref-clk-always-on;
346 };
347
348 &venus {
349         status = "okay";
350 };
351
352 &wcd9335 {
353         clock-names = "mclk", "slimbus";
354         clocks = <&divclk1_cdc>,
355                  <&rpmcc RPM_SMD_BB_CLK1>;
356
357         vdd-buck-supply = <&vreg_s4a_1p8>;
358         vdd-buck-sido-supply = <&vreg_s4a_1p8>;
359         vdd-rx-supply = <&vreg_s4a_1p8>;
360         vdd-tx-supply = <&vreg_s4a_1p8>;
361         vdd-vbat-supply = <&vph_pwr>;
362         vdd-micbias-supply = <&vph_pwr_bbyp>;
363         vdd-io-supply = <&vreg_s4a_1p8>;
364 };
365
366 &rpm_requests {
367         pm8994-regulators {
368                 compatible = "qcom,rpm-pm8994-regulators";
369
370                 vdd_s1-supply = <&vph_pwr>;
371                 vdd_s2-supply = <&vph_pwr>;
372                 vdd_s3-supply = <&vph_pwr>;
373                 vdd_s4-supply = <&vph_pwr>;
374                 vdd_s5-supply = <&vph_pwr>;
375                 vdd_s6-supply = <&vph_pwr>;
376                 vdd_s7-supply = <&vph_pwr>;
377                 vdd_s8-supply = <&vph_pwr>;
378                 vdd_s9-supply = <&vph_pwr>;
379                 vdd_s10-supply = <&vph_pwr>;
380                 vdd_s11-supply = <&vph_pwr>;
381                 vdd_s12-supply = <&vph_pwr>;
382                 vdd_l1-supply = <&vreg_s1b_1p025>;
383                 vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
384                 vdd_l3_l11-supply = <&vreg_s3a_1p3>;
385                 vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
386                 vdd_l5_l7-supply = <&vreg_s5a_2p15>;
387                 vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
388                 vdd_l8_l16_l30-supply = <&vph_pwr>;
389                 vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>;
390                 vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>;
391                 vdd_l14_l15-supply = <&vreg_s5a_2p15>;
392                 vdd_l17_l29-supply = <&vph_pwr_bbyp>;
393                 vdd_l20_l21-supply = <&vph_pwr_bbyp>;
394                 vdd_l25-supply = <&vreg_s3a_1p3>;
395                 vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
396
397                 vreg_s3a_1p3: s3 {
398                         regulator-name = "vreg_s3a_1p3";
399                         regulator-min-microvolt = <1300000>;
400                         regulator-max-microvolt = <1300000>;
401
402                         /* Required by QCA6174a - vdd-core */
403                         regulator-always-on;
404                 };
405                 vreg_s4a_1p8: s4 {
406                         regulator-name = "vreg_s4a_1p8";
407                         regulator-min-microvolt = <1800000>;
408                         regulator-max-microvolt = <1800000>;
409                         regulator-allow-set-load;
410
411                         /* Required by QCA6174a - vddio */
412                         regulator-always-on;
413                 };
414                 vreg_s5a_2p15: s5 {
415                         regulator-name = "vreg_s5a_2p15";
416                         regulator-min-microvolt = <2150000>;
417                         regulator-max-microvolt = <2150000>;
418                 };
419                 vreg_s7a_0p8: s7 {
420                         regulator-name = "vreg_s7a_0p8";
421                         regulator-min-microvolt = <800000>;
422                         regulator-max-microvolt = <800000>;
423                 };
424                 vreg_l1a_1p0: l1 {
425                         regulator-name = "vreg_l1a_1p0";
426                         regulator-min-microvolt = <1000000>;
427                         regulator-max-microvolt = <1000000>;
428                 };
429                 vreg_l2a_1p25: l2 {
430                         regulator-name = "vreg_l2a_1p25";
431                         regulator-min-microvolt = <1250000>;
432                         regulator-max-microvolt = <1250000>;
433                 };
434                 vreg_l4a_1p225: l4 {
435                         regulator-name = "vreg_l4a_1p225";
436                         regulator-min-microvolt = <1225000>;
437                         regulator-max-microvolt = <1225000>;
438                 };
439                 vreg_l6a_1p8: l6 {
440                         regulator-name = "vreg_l6a_1p8";
441                         regulator-min-microvolt = <1800000>;
442                         regulator-max-microvolt = <1800000>;
443                 };
444                 vreg_l8a_1p8: l8 {
445                         regulator-name = "vreg_l8a_1p8";
446                         regulator-min-microvolt = <1800000>;
447                         regulator-max-microvolt = <1800000>;
448                 };
449                 vreg_l9a_1p8: l9 {
450                         regulator-name = "vreg_l9a_1p8";
451                         regulator-min-microvolt = <1800000>;
452                         regulator-max-microvolt = <1800000>;
453                 };
454                 vreg_l10a_1p8: l10 {
455                         regulator-name = "vreg_l10a_1p8";
456                         regulator-min-microvolt = <1800000>;
457                         regulator-max-microvolt = <1800000>;
458                 };
459                 vreg_l12a_1p8: l12 {
460                         regulator-name = "vreg_l12a_1p8";
461                         regulator-min-microvolt = <1800000>;
462                         regulator-max-microvolt = <1800000>;
463                         regulator-allow-set-load;
464                 };
465                 vreg_l13a_2p95: l13 {
466                         regulator-name = "vreg_l13a_2p95";
467                         regulator-min-microvolt = <1800000>;
468                         regulator-max-microvolt = <2950000>;
469                 };
470                 vreg_l14a_1p8: l14 {
471                         regulator-name = "vreg_l14a_1p8";
472                         regulator-min-microvolt = <1800000>;
473                         regulator-max-microvolt = <1800000>;
474                 };
475                 vreg_l15a_1p8: l15 {
476                         regulator-name = "vreg_l15a_1p8";
477                         regulator-min-microvolt = <1800000>;
478                         regulator-max-microvolt = <1800000>;
479                 };
480                 vreg_l16a_2p7: l16 {
481                         regulator-name = "vreg_l16a_2p7";
482                         regulator-min-microvolt = <2700000>;
483                         regulator-max-microvolt = <2700000>;
484                 };
485                 vreg_l19a_3p3: l19 {
486                         regulator-name = "vreg_l19a_3p3";
487                         regulator-min-microvolt = <3000000>;
488                         regulator-max-microvolt = <3000000>;
489                 };
490                 vreg_l20a_2p95: l20 {
491                         regulator-name = "vreg_l20a_2p95";
492                         regulator-min-microvolt = <2950000>;
493                         regulator-max-microvolt = <2950000>;
494                         regulator-allow-set-load;
495                 };
496                 vreg_l21a_2p95: l21 {
497                         regulator-name = "vreg_l21a_2p95";
498                         regulator-min-microvolt = <3300000>;
499                         regulator-max-microvolt = <3300000>;
500                         regulator-always-on;
501                 };
502                 vreg_l23a_2p8: l23 {
503                         regulator-name = "vreg_l23a_2p8";
504                         regulator-min-microvolt = <2800000>;
505                         regulator-max-microvolt = <2800000>;
506                 };
507                 vreg_l24a_3p075: l24 {
508                         regulator-name = "vreg_l24a_3p075";
509                         regulator-min-microvolt = <3075000>;
510                         regulator-max-microvolt = <3075000>;
511                 };
512                 vreg_l25a_1p2: l25 {
513                         regulator-name = "vreg_l25a_1p2";
514                         regulator-min-microvolt = <1200000>;
515                         regulator-max-microvolt = <1200000>;
516                         regulator-allow-set-load;
517                 };
518                 vreg_l27a_1p2: l27 {
519                         regulator-name = "vreg_l27a_1p2";
520                         regulator-min-microvolt = <1200000>;
521                         regulator-max-microvolt = <1200000>;
522                 };
523                 vreg_l28a_0p925: l28 {
524                         regulator-name = "vreg_l28a_0p925";
525                         regulator-min-microvolt = <925000>;
526                         regulator-max-microvolt = <925000>;
527                         regulator-allow-set-load;
528                 };
529                 vreg_l30a_1p8: l30 {
530                         regulator-name = "vreg_l30a_1p8";
531                         regulator-min-microvolt = <1800000>;
532                         regulator-max-microvolt = <1800000>;
533
534                         /* Required by QCA6174a - vddio-xtal */
535                         regulator-always-on;
536                 };
537                 vreg_l32a_1p8: l32 {
538                         regulator-name = "vreg_l32a_1p8";
539                         regulator-min-microvolt = <1800000>;
540                         regulator-max-microvolt = <1800000>;
541                 };
542                 vreg_lvs1a_1p8: lvs1 {
543                         regulator-min-microvolt = <1800000>;
544                         regulator-max-microvolt = <1800000>;
545                 };
546                 vreg_lvs2a_1p8: lvs2 {
547                         regulator-min-microvolt = <1800000>;
548                         regulator-max-microvolt = <1800000>;
549                 };
550         };
551
552         pmi8994-regulators {
553                 compatible = "qcom,rpm-pmi8994-regulators";
554
555                 vdd_s1-supply = <&vph_pwr>;
556                 vdd_s2-supply = <&vph_pwr>;
557                 vdd_s3-supply = <&vph_pwr>;
558                 vdd_bst_byp-supply = <&vph_pwr>;
559
560                 vreg_s1b_1p025: s1 {
561                         regulator-name = "vreg_s1b_1p025";
562                         regulator-min-microvolt = <1025000>;
563                         regulator-max-microvolt = <1025000>;
564                 };
565
566                 vph_pwr_bbyp: boost-bypass {
567                         regulator-name = "vph_pwr_bbyp";
568                         regulator-min-microvolt = <3150000>;
569                         regulator-max-microvolt = <3600000>;
570                 };
571         };
572 };
573
574 &pm8994_spmi_regulators {
575         qcom,saw-reg = <&saw3>;
576         s8 {
577                 qcom,saw-slave;
578         };
579         s9 {
580                 qcom,saw-slave;
581         };
582         s10 {
583                 qcom,saw-slave;
584         };
585         vreg_apc_0p8: s11 {
586                 qcom,saw-leader;
587                 regulator-name = "vreg_apc_0p8";
588                 regulator-min-microvolt = <470000>;
589                 regulator-max-microvolt = <1140000>;
590                 regulator-max-step-microvolt = <150000>;
591                 regulator-always-on;
592         };
593 };
594
595 &pmi8994_spmi_regulators {
596         vdd_gfx: s2 {
597                 regulator-name = "vdd_gfx";
598                 regulator-min-microvolt = <400000>;
599                 regulator-max-microvolt = <1015000>;
600                 regulator-enable-ramp-delay = <500>;
601         };
602 };
603
604 &pm8994_gpios {
605         wlan_en_default: wlan-en-default {
606                 pins = "gpio8";
607                 function = PMIC_GPIO_FUNC_NORMAL;
608                 output-low;
609                 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
610                 power-source = <PM8994_GPIO_S4>;
611                 bias-disable;
612         };
613
614         rome_enable_default: rome-enable-default {
615                 pins = "gpio9";
616                 function = PMIC_GPIO_FUNC_NORMAL;
617                 output-high;
618                 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
619                 power-source = <PM8994_GPIO_VPH>;
620         };
621
622         divclk1_default: divclk1_default {
623                 pins = "gpio15";
624                 function = PMIC_GPIO_FUNC_FUNC1;
625                 bias-disable;
626                 power-source = <PM8994_GPIO_S4>;
627                 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
628         };
629
630         divclk4_pin_a: divclk4 {
631                 pins = "gpio18";
632                 function = PMIC_GPIO_FUNC_FUNC2;
633                 bias-disable;
634                 power-source = <PM8994_GPIO_S4>;
635         };
636 };
637
638 &tlmm {
639         mdss_dsi_default: mdss_dsi_default {
640                 pins = "gpio8";
641                 function = "gpio";
642                 drive-strength = <8>;
643                 bias-disable;
644         };
645
646         mdss_dsi_sleep: mdss_dsi_sleep {
647                 pins = "gpio8";
648                 function = "gpio";
649                 drive-strength = <2>;
650                 bias-pull-down;
651         };
652
653         mdss_te_default: mdss_te_default {
654                 pins = "gpio10";
655                 function = "mdp_vsync";
656                 drive-strength = <2>;
657                 bias-pull-down;
658         };
659
660         mdss_te_sleep: mdss_te_sleep {
661                 pins = "gpio10";
662                 function = "mdp_vsync";
663                 drive-strength = <2>;
664                 bias-pull-down;
665         };
666
667         nfc_default: nfc_default {
668                 pins = "gpio12", "gpio21";
669                 function = "gpio";
670                 drive-strength = <16>;
671                 bias-pull-up;
672         };
673 };