1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2020, Konrad Dybcio <konrad.dybcio@somainline.org>
6 #include "msm8994.dtsi"
8 #include "pmi8994.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/input/gpio-keys.h>
13 /* required for bootloader to select correct board */
16 * We support MSM8994 v2 (0x20000) and v2.1 (0x20001).
17 * The V1 chip (0x0 and 0x10000) is significantly different
18 * and requires driver-side changes (including CPR, be warned!!).
19 * Besides that, it's very rare.
21 qcom,msm-id = <207 0x20000>, <207 0x20001>;
22 /* We only use pm8994+pmi8994. */
23 qcom,pmic-id = <0x10009 0x1000a 0x00 0x00>;
24 /* This property is shared across all kitakami devices. */
25 qcom,board-id = <8 0>;
27 /* Kitakami firmware doesn't support PSCI */
31 compatible = "gpio-keys";
32 input-name = "gpio-keys";
38 label = "Volume Down";
39 gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
40 linux,input-type = <1>;
41 linux,code = <KEY_VOLUMEDOWN>;
43 debounce-interval = <15>;
48 gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>;
49 linux,input-type = <1>;
50 linux,code = <KEY_VOLUMEUP>;
52 debounce-interval = <15>;
56 label = "Camera Snapshot";
57 gpios = <&pm8994_gpios 4 GPIO_ACTIVE_LOW>;
58 linux,input-type = <1>;
59 linux,code = <KEY_CAMERA>;
61 debounce-interval = <15>;
65 label = "Camera Focus";
66 gpios = <&pm8994_gpios 5 GPIO_ACTIVE_LOW>;
67 linux,input-type = <1>;
68 linux,code = <KEY_VOLUMEUP>;
70 debounce-interval = <15>;
75 /* This is for getting crash logs using Android downstream kernels */
77 compatible = "ramoops";
78 reg = <0 0x1fe00000 0 0x200000>;
79 console-size = <0x100000>;
80 record-size = <0x10000>;
81 ftrace-size = <0x10000>;
82 pmsg-size = <0x80000>;
85 fb_region: fb_region@40000000 {
86 reg = <0 0x40000000 0 0x1000000>;
90 tzapp: memory@c7800000 {
91 reg = <0 0xc7800000 0 0x1900000>;
100 /* FPC fingerprint reader */
103 /* I2C1 is disabled on this board */
107 clock-frequency = <355000>;
114 clock-frequency = <355000>;
116 /* Empty but active */
121 clock-frequency = <355000>;
123 touchscreen: rmi4-i2c-dev@2c {
124 compatible = "syna,rmi4-i2c";
126 #address-cells = <1>;
129 interrupt-parent = <&tlmm>;
130 interrupts = <42 IRQ_TYPE_EDGE_FALLING>;
132 pinctrl-names = "default";
133 pinctrl-0 = <&ts_int_active &ts_reset_active>;
135 vdd-supply = <&pm8994_l22>;
136 vio-supply = <&pm8994_s4>;
138 syna,reset-delay-ms = <220>;
139 syna,startup-delay-ms = <220>;
143 syna,nosleep-mode = <1>;
148 syna,sensor-type = <1>;
159 clock-frequency = <355000>;
161 /* sii8620 HDMI/MHL bridge */
169 * Kitakami bootloader only turns cont_splash on when it detects
170 * specific downstream MDSS/backlight nodes in the active DTB.
171 * One way to use that framebuffer is to load a secondary instance of
172 * LK with the downstream DTB appended and then, only from there, load
176 reg = <0 0x3401000 0 0x2200000>;
179 &pmi8994_spmi_regulators {
181 * Yeah, this one *is* managed by RPMPD, but also needs
182 * to be hacked up as a-o due to the GPU device only accepting a single
183 * power domain.. which still isn't enough and forces us to bind
184 * OXILI_CX and OXILI_GX together!
187 reg = <0x1700 0x100>;
188 regulator-name = "VDD_GFX";
189 regulator-min-microvolt = <980000>;
190 regulator-max-microvolt = <980000>;
192 /* hack until we rig up the gpu consumer */
198 pm8994_regulators: pm8994-regulators {
199 compatible = "qcom,rpm-pm8994-regulators";
201 vdd_s1-supply = <&vph_pwr>;
202 vdd_s2-supply = <&vph_pwr>;
203 vdd_s3-supply = <&vph_pwr>;
204 vdd_s4-supply = <&vph_pwr>;
205 vdd_s5-supply = <&vph_pwr>;
206 vdd_s6-supply = <&vph_pwr>;
207 vdd_s7-supply = <&vph_pwr>;
208 vdd_s8-supply = <&vph_pwr>;
209 vdd_s9-supply = <&vph_pwr>;
210 vdd_s10-supply = <&vph_pwr>;
211 vdd_s11-supply = <&vph_pwr>;
212 vdd_s12-supply = <&vph_pwr>;
213 vdd_l1-supply = <&pmi8994_s1>;
214 vdd_l2_l26_l28-supply = <&pm8994_s3>;
215 vdd_l3_l11-supply = <&pm8994_s3>;
216 vdd_l4_l27_l31-supply = <&pm8994_s3>;
217 vdd_l5_l7-supply = <&pm8994_s5>;
218 vdd_l6_l12_l32-supply = <&pm8994_s5>;
219 vdd_l8_l16_l30-supply = <&vph_pwr>;
220 vdd_l9_l10_l18_l22-supply = <&pmi8994_bby>;
221 vdd_l13_l19_l23_l24-supply = <&pmi8994_bby>;
222 vdd_l14_l15-supply = <&pm8994_s5>;
223 vdd_l17_l29-supply = <&pmi8994_bby>;
224 vdd_l20_l21-supply = <&pmi8994_bby>;
225 vdd_l25-supply = <&pm8994_s3>;
226 vdd_lvs1_lvs2-supply = <&pm8994_s4>;
228 /* S1, S2, S6 and S12 are managed by RPMPD */
231 regulator-min-microvolt = <1300000>;
232 regulator-max-microvolt = <1300000>;
236 regulator-min-microvolt = <1800000>;
237 regulator-max-microvolt = <1800000>;
238 regulator-allow-set-load;
240 regulator-system-load = <325000>;
244 regulator-min-microvolt = <2150000>;
245 regulator-max-microvolt = <2150000>;
249 regulator-min-microvolt = <1000000>;
250 regulator-max-microvolt = <1000000>;
254 * S8 - SPMI-managed VDD_APC0
255 * S9, S10 and S11 (the main one) - SPMI-managed VDD_APC1
259 regulator-min-microvolt = <1000000>;
260 regulator-max-microvolt = <1000000>;
264 regulator-min-microvolt = <1250000>;
265 regulator-max-microvolt = <1250000>;
266 regulator-allow-set-load;
267 regulator-system-load = <10000>;
271 regulator-min-microvolt = <1100000>;
272 regulator-max-microvolt = <1100000>;
276 regulator-min-microvolt = <1225000>;
277 regulator-max-microvolt = <1225000>;
280 /* L5 is inaccessible from RPM */
283 regulator-min-microvolt = <1800000>;
284 regulator-max-microvolt = <1800000>;
287 /* L7 is inaccessible from RPM */
290 regulator-min-microvolt = <1800000>;
291 regulator-max-microvolt = <1800000>;
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <1800000>;
300 regulator-min-microvolt = <1800000>;
301 regulator-max-microvolt = <1800000>;
305 regulator-min-microvolt = <1200000>;
306 regulator-max-microvolt = <1200000>;
310 regulator-min-microvolt = <1800000>;
311 regulator-max-microvolt = <1800000>;
312 regulator-allow-set-load;
313 regulator-system-load = <10000>;
317 regulator-min-microvolt = <1800000>;
318 regulator-max-microvolt = <2950000>;
322 regulator-min-microvolt = <1800000>;
323 regulator-max-microvolt = <1800000>;
324 regulator-allow-set-load;
325 regulator-system-load = <10000>;
329 regulator-min-microvolt = <1800000>;
330 regulator-max-microvolt = <1800000>;
334 regulator-min-microvolt = <2700000>;
335 regulator-max-microvolt = <2700000>;
339 regulator-min-microvolt = <2200000>;
340 regulator-max-microvolt = <2200000>;
344 regulator-min-microvolt = <2850000>;
345 regulator-max-microvolt = <2850000>;
350 regulator-min-microvolt = <2850000>;
351 regulator-max-microvolt = <2850000>;
355 regulator-min-microvolt = <2950000>;
356 regulator-max-microvolt = <2950000>;
359 regulator-allow-set-load;
360 regulator-system-load = <570000>;
364 regulator-min-microvolt = <2950000>;
365 regulator-max-microvolt = <2950000>;
367 regulator-allow-set-load;
368 regulator-system-load = <800000>;
372 regulator-min-microvolt = <3000000>;
373 regulator-max-microvolt = <3000000>;
377 regulator-min-microvolt = <2800000>;
378 regulator-max-microvolt = <2800000>;
382 regulator-min-microvolt = <3075000>;
383 regulator-max-microvolt = <3150000>;
387 regulator-min-microvolt = <1000000>;
388 regulator-max-microvolt = <1000000>;
392 regulator-min-microvolt = <987500>;
393 regulator-max-microvolt = <987500>;
397 regulator-min-microvolt = <1200000>;
398 regulator-max-microvolt = <1200000>;
402 regulator-min-microvolt = <1000000>;
403 regulator-max-microvolt = <1000000>;
404 regulator-allow-set-load;
405 regulator-system-load = <10000>;
409 regulator-min-microvolt = <2700000>;
410 regulator-max-microvolt = <2700000>;
414 regulator-min-microvolt = <1800000>;
415 regulator-max-microvolt = <1800000>;
419 regulator-min-microvolt = <1200000>;
420 regulator-max-microvolt = <1200000>;
421 regulator-allow-set-load;
422 regulator-system-load = <10000>;
426 regulator-min-microvolt = <1800000>;
427 regulator-max-microvolt = <1800000>;
430 pm8994_lvs1: lvs1 {};
431 pm8994_lvs2: lvs2 {};
434 pmi8994_regulators: pmi8994-regulators {
435 compatible = "qcom,rpm-pmi8994-regulators";
437 vdd_s1-supply = <&vph_pwr>;
438 vdd_bst_byp-supply = <&vph_pwr>;
441 regulator-min-microvolt = <1025000>;
442 regulator-max-microvolt = <1025000>;
445 /* S2 & S3 - VDD_GFX */
447 pmi8994_bby: boost-bypass {
448 regulator-min-microvolt = <3150000>;
449 regulator-max-microvolt = <3600000>;
456 * There is an issue with the eMMC causing permanent
457 * damage to the card if a quirk isn't addressed.
458 * Until it's fixed, disable the MMC so as not to brick
464 * Downstream pushes 2.95V to the sdhci device,
465 * but upstream driver REALLY wants to make vmmc 1.8v
466 * cause of the hs400-1_8v mode. MMC works fine without
467 * that regulator, so let's not use it for now.
468 * vqmmc is also disabled cause driver stll complains.
470 * vmmc-supply = <&pm8994_l20>;
471 * vqmmc-supply = <&pm8994_s4>;
478 cd-gpios = <&tlmm 100 0>;
479 vmmc-supply = <&pm8994_l21>;
480 vqmmc-supply = <&pm8994_l13>;
484 ts_int_active: ts-int-active {
486 drive-strength = <2>;
491 ts_reset_active: ts-reset-active {
493 drive-strength = <2>;