1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2021, AngeloGioacchino Del Regno
4 * <angelogioacchino.delregno@somainline.org>
5 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
8 #include "msm8998.dtsi"
10 #include "pm8998.dtsi"
11 #include "pmi8998.dtsi"
12 #include <dt-bindings/input/input.h>
13 #include <dt-bindings/leds/common.h>
14 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
15 #include <dt-bindings/sound/qcom,q6afe.h>
16 #include <dt-bindings/sound/qcom,q6asm.h>
19 /* required for bootloader to select correct board */
20 qcom,msm-id = <0x124 0x20000>, <0x124 0x20001>; /* 8998v2, v2.1 */
21 qcom,board-id = <8 0>;
24 compatible = "simple-bus";
27 compatible = "gpio-gate-clock";
28 pinctrl-0 = <&audio_mclk_pin>;
29 pinctrl-names = "default";
30 clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
32 enable-gpios = <&pm8998_gpio 13 GPIO_ACTIVE_HIGH>;
36 board_vbat: vbat-regulator {
37 compatible = "regulator-fixed";
38 regulator-name = "VBAT";
40 regulator-min-microvolt = <4000000>;
41 regulator-max-microvolt = <4000000>;
46 cam0_vdig_vreg: cam0-vdig {
47 compatible = "regulator-fixed";
48 regulator-name = "cam0_vdig";
49 startup-delay-us = <0>;
51 gpio = <&tlmm 21 GPIO_ACTIVE_HIGH>;
52 pinctrl-names = "default";
53 pinctrl-0 = <&cam0_vdig_default>;
56 cam1_vdig_vreg: cam1-vdig {
57 compatible = "regulator-fixed";
58 regulator-name = "cam1_vdig";
59 startup-delay-us = <0>;
61 gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
62 pinctrl-names = "default";
63 pinctrl-0 = <&cam1_vdig_default>;
64 vin-supply = <&vreg_s3a_1p35>;
67 cam_vio_vreg: cam-vio-vreg {
68 compatible = "regulator-fixed";
69 regulator-name = "cam_vio_vreg";
70 startup-delay-us = <0>;
72 gpio = <&pmi8998_gpio 1 GPIO_ACTIVE_HIGH>;
73 pinctrl-names = "default";
74 pinctrl-0 = <&cam_vio_default>;
75 vin-supply = <&vreg_lvs1a_1p8>;
78 touch_vddio_vreg: touch-vddio-vreg {
79 compatible = "regulator-fixed";
80 regulator-name = "touch_vddio_vreg";
81 startup-delay-us = <10000>;
82 gpio = <&tlmm 133 GPIO_ACTIVE_HIGH>;
83 pinctrl-names = "default";
84 pinctrl-0 = <&ts_vddio_en>;
87 vph_pwr: vph-pwr-regulator {
88 compatible = "regulator-fixed";
89 regulator-name = "vph_pwr";
95 compatible = "gpio-keys";
96 label = "Side buttons";
97 pinctrl-names = "default";
98 pinctrl-0 = <&vol_down_pin_a>, <&cam_focus_pin_a>,
99 <&cam_snapshot_pin_a>;
101 label = "Volume Down";
102 gpios = <&pm8998_gpio 5 GPIO_ACTIVE_LOW>;
103 linux,input-type = <EV_KEY>;
104 linux,code = <KEY_VOLUMEDOWN>;
106 debounce-interval = <15>;
110 label = "Camera Snapshot";
111 gpios = <&pm8998_gpio 7 GPIO_ACTIVE_LOW>;
112 linux,input-type = <EV_KEY>;
113 linux,code = <KEY_CAMERA>;
114 debounce-interval = <15>;
118 label = "Camera Focus";
119 gpios = <&pm8998_gpio 8 GPIO_ACTIVE_LOW>;
120 linux,input-type = <EV_KEY>;
121 linux,code = <KEY_CAMERA_FOCUS>;
122 debounce-interval = <15>;
127 compatible = "gpio-keys";
128 label = "Hall sensors";
129 pinctrl-names = "default";
130 pinctrl-0 = <&hall_sensor0_default>;
133 label = "Cover Hall Sensor";
134 gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
135 linux,input-type = <EV_SW>;
136 linux,code = <SW_LID>;
138 debounce-interval = <30>;
143 #address-cells = <2>;
147 hyp_mem: memory@85800000 {
148 reg = <0x0 0x85800000 0x0 0x3700000>;
152 cont_splash_mem: memory@9d400000 {
153 reg = <0x0 0x9d400000 0x0 0x2400000>;
157 zap_shader_region: memory@f6400000 {
158 compatible = "shared-dma-pool";
159 reg = <0x0 0xf6400000 0x0 0x2000>;
163 adsp_region: memory@fe000000 {
164 reg = <0x0 0xfe000000 0x0 0x800000>;
168 qseecom_region: memory@fe800000 {
169 reg = <0x0 0xfe800000 0x0 0x1400000>;
174 compatible = "ramoops";
175 reg = <0x0 0xffc00000 0x0 0x100000>;
176 record-size = <0x10000>;
177 console-size = <0x60000>;
178 ftrace-size = <0x10000>;
179 pmsg-size = <0x20000>;
185 compatible = "gpio-vibrator";
186 enable-gpios = <&pmi8998_gpio 5 GPIO_ACTIVE_HIGH>;
187 pinctrl-names = "default";
188 pinctrl-0 = <&vib_default>;
194 clock-frequency = <355000>;
197 compatible = "syna,rmi4-i2c";
199 #address-cells = <1>;
201 interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
203 pinctrl-names = "default";
204 pinctrl-0 = <&ts_int_n>;
206 vdd-supply = <&vreg_l28_3p0>;
207 vio-supply = <&touch_vddio_vreg>;
209 syna,reset-delay-ms = <220>;
210 syna,startup-delay-ms = <1000>;
214 syna,nosleep-mode = <1>;
219 syna,sensor-type = <1>;
232 compatible = "qcom,wcn3990-bt";
234 vddio-supply = <&vreg_s4a_1p8>;
235 vddxo-supply = <&vreg_l7a_1p8>;
236 vddrf-supply = <&vreg_l17a_1p3>;
237 vddch0-supply = <&vreg_l25a_3p3>;
238 max-speed = <3200000>;
240 clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>;
249 regulator-min-microamp = <800000>;
250 regulator-max-microamp = <800000>;
251 regulator-enable-ramp-delay = <200>;
252 regulator-over-current-protection;
254 regulator-ramp-delay = <1>;
255 regulator-settling-time-up-us = <600>;
256 regulator-settling-time-down-us = <1000>;
257 regulator-soft-start;
258 qcom,discharge-resistor-kohms = <300>;
262 regulator-min-microamp = <200000>;
263 regulator-max-microamp = <200000>;
264 regulator-enable-ramp-delay = <500>;
265 regulator-over-current-protection;
267 regulator-ramp-delay = <1>;
268 regulator-settling-time-up-us = <50000>;
269 regulator-settling-time-down-us = <3000>;
270 regulator-soft-start;
283 compatible = "qcom,pm8005-regulators";
285 vdd_s1-supply = <&vph_pwr>;
289 regulator-min-microvolt = <524000>;
290 regulator-max-microvolt = <1088000>;
291 regulator-enable-ramp-delay = <500>;
298 vol_down_pin_a: vol-down-active {
300 function = PMIC_GPIO_FUNC_NORMAL;
303 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
306 cam_focus_pin_a: cam-focus-btn-active {
308 function = PMIC_GPIO_FUNC_NORMAL;
311 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
314 cam_snapshot_pin_a: cam-snapshot-btn-active {
316 function = PMIC_GPIO_FUNC_NORMAL;
319 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
322 audio_mclk_pin: audio-mclk-pin-active {
330 cam_vio_default: cam-vio-active {
332 function = PMIC_GPIO_FUNC_NORMAL;
336 qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
340 vib_default: vib-en {
342 function = PMIC_GPIO_FUNC_NORMAL;
346 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
353 compatible = "qcom,pm8941-resin";
354 interrupts = <GIC_SPI 0x8 1 IRQ_TYPE_EDGE_BOTH>;
357 linux,code = <KEY_VOLUMEUP>;
364 vdda-pll-supply = <&vreg_l12a_1p8>;
365 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
370 compatible = "qcom,rpm-pm8998-regulators";
372 vdd_s1-supply = <&vph_pwr>;
373 vdd_s2-supply = <&vph_pwr>;
374 vdd_s3-supply = <&vph_pwr>;
375 vdd_s4-supply = <&vph_pwr>;
376 vdd_s5-supply = <&vph_pwr>;
377 vdd_s6-supply = <&vph_pwr>;
378 vdd_s7-supply = <&vph_pwr>;
379 vdd_s8-supply = <&vph_pwr>;
380 vdd_s9-supply = <&vph_pwr>;
381 vdd_s10-supply = <&vph_pwr>;
382 vdd_s11-supply = <&vph_pwr>;
383 vdd_s12-supply = <&vph_pwr>;
384 vdd_s13-supply = <&vph_pwr>;
385 vdd_l1_l27-supply = <&vreg_s7a_1p025>;
386 vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>;
387 vdd_l3_l11-supply = <&vreg_s7a_1p025>;
388 vdd_l4_l5-supply = <&vreg_s7a_1p025>;
389 vdd_l6-supply = <&vreg_s5a_2p04>;
390 vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>;
391 vdd_l9-supply = <&vreg_bob>;
392 vdd_l10_l23_l25-supply = <&vreg_bob>;
393 vdd_l13_l19_l21-supply = <&vreg_bob>;
394 vdd_l16_l28-supply = <&vreg_bob>;
395 vdd_l18_l22-supply = <&vreg_bob>;
396 vdd_l20_l24-supply = <&vreg_bob>;
397 vdd_l26-supply = <&vreg_s3a_1p35>;
398 vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;
401 regulator-min-microvolt = <1352000>;
402 regulator-max-microvolt = <1352000>;
405 regulator-min-microvolt = <1800000>;
406 regulator-max-microvolt = <1800000>;
407 regulator-system-load = <100000>;
408 regulator-allow-set-load;
411 regulator-min-microvolt = <1904000>;
412 regulator-max-microvolt = <2032000>;
415 regulator-min-microvolt = <900000>;
416 regulator-max-microvolt = <1028000>;
419 regulator-min-microvolt = <880000>;
420 regulator-max-microvolt = <880000>;
421 regulator-system-load = <73400>;
422 regulator-allow-set-load;
425 regulator-min-microvolt = <1200000>;
426 regulator-max-microvolt = <1200000>;
427 regulator-system-load = <12560>;
428 regulator-allow-set-load;
431 regulator-min-microvolt = <1000000>;
432 regulator-max-microvolt = <1000000>;
435 regulator-min-microvolt = <800000>;
436 regulator-max-microvolt = <800000>;
439 regulator-min-microvolt = <1800000>;
440 regulator-max-microvolt = <1800000>;
443 regulator-min-microvolt = <1800000>;
444 regulator-max-microvolt = <1800000>;
447 regulator-min-microvolt = <1200000>;
448 regulator-max-microvolt = <1200000>;
451 regulator-min-microvolt = <1808000>;
452 regulator-max-microvolt = <2960000>;
455 regulator-min-microvolt = <1808000>;
456 regulator-max-microvolt = <2960000>;
459 regulator-min-microvolt = <1000000>;
460 regulator-max-microvolt = <1000000>;
463 regulator-min-microvolt = <1800000>;
464 regulator-max-microvolt = <1800000>;
466 vreg_l13a_2p95: l13 {
467 regulator-min-microvolt = <1808000>;
468 regulator-max-microvolt = <2960000>;
469 regulator-allow-set-load;
471 vreg_l14a_1p85: l14 {
472 regulator-min-microvolt = <1848000>;
473 regulator-max-microvolt = <1856000>;
474 regulator-system-load = <32000>;
475 regulator-allow-set-load;
478 regulator-min-microvolt = <1800000>;
479 regulator-max-microvolt = <1800000>;
482 regulator-min-microvolt = <2704000>;
483 regulator-max-microvolt = <2704000>;
486 regulator-min-microvolt = <1304000>;
487 regulator-max-microvolt = <1304000>;
489 vreg_l18a_2p85: l18 {};
491 regulator-min-microvolt = <2696000>;
492 regulator-max-microvolt = <2704000>;
494 vreg_l20a_2p95: l20 {
495 regulator-min-microvolt = <2960000>;
496 regulator-max-microvolt = <2960000>;
497 regulator-system-load = <10000>;
498 regulator-allow-set-load;
500 vreg_l21a_2p95: l21 {
501 regulator-min-microvolt = <2960000>;
502 regulator-max-microvolt = <2960000>;
503 regulator-system-load = <800000>;
504 regulator-allow-set-load;
506 vreg_l22a_2p85: l22 { };
508 regulator-min-microvolt = <3312000>;
509 regulator-max-microvolt = <3312000>;
511 vreg_l24a_3p075: l24 {
512 regulator-min-microvolt = <3088000>;
513 regulator-max-microvolt = <3088000>;
516 regulator-min-microvolt = <3104000>;
517 regulator-max-microvolt = <3312000>;
520 regulator-min-microvolt = <1200000>;
521 regulator-max-microvolt = <1200000>;
522 regulator-allow-set-load;
525 regulator-min-microvolt = <3000000>;
526 regulator-max-microvolt = <3000000>;
528 vreg_lvs1a_1p8: lvs1 { };
529 vreg_lvs2a_1p8: lvs2 { };
533 compatible = "qcom,rpm-pmi8998-regulators";
535 vdd_bob-supply = <&vph_pwr>;
538 regulator-min-microvolt = <3312000>;
539 regulator-max-microvolt = <3600000>;
546 cd-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
548 vmmc-supply = <&vreg_l21a_2p95>;
549 vqmmc-supply = <&vreg_l13a_2p95>;
551 pinctrl-names = "default", "sleep";
552 pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
553 pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
557 gpio-reserved-ranges = <0 4>, <81 4>;
559 mdp_vsync_n: mdp-vsync-n {
561 function = "mdp_vsync_a";
562 drive-strength = <2>;
570 drive-strength = <2>;
574 msm_mclk0_default: msm-mclk0-active {
576 function = "cam_mclk";
577 drive-strength = <2>;
581 msm_mclk1_default: msm-mclk1-active {
583 function = "cam_mclk";
584 drive-strength = <2>;
588 cci0_default: cci0-default {
589 pins = "gpio18", "gpio19";
590 function = "cci_i2c";
592 drive-strength = <2>;
595 cci1_default: cci1-default {
596 pins = "gpio19", "gpio20";
597 function = "cci_i2c";
599 drive-strength = <2>;
602 cam0_vdig_default: cam0-vdig-default {
606 drive-strength = <2>;
609 cam1_vdig_default: cam1-vdig-default {
613 drive-strength = <2>;
616 hall_sensor0_default: acc-cover-open {
620 drive-strength = <2>;
627 drive-strength = <8>;
631 ts_vddio_en: ts-vddio-en-default {
635 drive-strength = <2>;
642 * Disable UFS until card quirks are in to avoid unrecoverable hard-brick
643 * that would happen as soon as the UFS card gets probed as, without the
644 * required quirks, the bootloader will be erased right after card probe.
659 /* Force to peripheral until we have Type-C hooked up */
660 dr_mode = "peripheral";
666 vdda-phy-supply = <&vreg_l1a_0p875>;
667 vdda-pll-supply = <&vreg_l2a_1p2>;