1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2020, Konrad Dybcio <konrad.dybcio@somainline.org>
4 * Copyright (c) 2020, AngeloGioacchino Del Regno
5 * <angelogioacchino.delregno@somainline.org>
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/input/gpio-keys.h>
13 #include <dt-bindings/leds/common.h>
16 /* required for bootloader to select correct board */
17 qcom,msm-id = <318 0>;
18 qcom,board-id = <8 1>;
19 qcom,pmic-id = <0x1001b 0x101011a 0x00 0x00 0x1001b 0x201011a 0x00 0x00>;
21 /* This part enables graphical output via bootloader-enabled display */
23 bootargs = "earlycon=tty0 console=tty0";
29 stdout-path = "framebuffer0";
31 framebuffer0: framebuffer@9d400000 {
32 compatible = "simple-framebuffer";
33 reg = <0 0x9d400000 0 (1920 * 1080 * 4)>;
36 stride = <(1080 * 4)>;
42 board_vbat: vbat-regulator {
43 compatible = "regulator-fixed";
44 regulator-name = "VBAT";
46 regulator-min-microvolt = <4000000>;
47 regulator-max-microvolt = <4000000>;
52 vph_pwr: vph-pwr-regulator {
53 compatible = "regulator-fixed";
54 regulator-name = "vph_pwr";
60 cam_vdig_imx300_219_vreg: cam-vdig-imx300-219-regulator {
61 compatible = "regulator-fixed";
62 regulator-name = "cam_vdig_imx300_219_vreg";
63 startup-delay-us = <0>;
65 gpio = <&tlmm 52 GPIO_ACTIVE_HIGH>;
66 pinctrl-names = "default";
67 pinctrl-0 = <&cam_vdig_default>;
70 cam_vana_front_vreg: cam-vana-front-regulator {
71 compatible = "regulator-fixed";
72 regulator-name = "cam_vana_front_vreg";
73 startup-delay-us = <0>;
75 gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
76 pinctrl-names = "default";
77 pinctrl-0 = <&imx219_vana_default>;
80 cam_vana_rear_vreg: cam-vana-rear-regulator {
81 compatible = "regulator-fixed";
82 regulator-name = "cam_vana_rear_vreg";
83 startup-delay-us = <0>;
85 gpio = <&tlmm 50 GPIO_ACTIVE_HIGH>;
87 pinctrl-names = "default";
88 pinctrl-0 = <&imx300_vana_default>;
92 compatible = "gpio-keys";
95 label = "Camera Focus";
96 gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
97 linux,input-type = <1>;
98 linux,code = <KEY_CAMERA_FOCUS>;
99 debounce-interval = <15>;
102 key-camera-snapshot {
103 label = "Camera Snapshot";
104 gpios = <&tlmm 113 GPIO_ACTIVE_LOW>;
105 linux,input-type = <1>;
106 linux,code = <KEY_CAMERA>;
107 debounce-interval = <15>;
111 label = "Volume Down";
112 gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
113 linux,input-type = <1>;
114 linux,code = <KEY_VOLUMEDOWN>;
116 debounce-interval = <15>;
121 #address-cells = <2>;
126 compatible = "ramoops";
127 reg = <0x0 0xffc00000 0x0 0x100000>;
128 record-size = <0x10000>;
129 console-size = <0x60000>;
130 ftrace-size = <0x10000>;
131 pmsg-size = <0x20000>;
137 reg = <0x00 0xffb00000 0x00 0x100000>;
141 cont_splash_mem: splash@9d400000 {
142 reg = <0 0x9d400000 0 (1920 * 1080 * 4)>;
148 * Until we hook up type-c detection, we
149 * have to stick with this. But it works.
151 extcon_usb: extcon-usb {
152 compatible = "linux,extcon-usb-gpio";
153 id-gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>;
158 firmware-name = "/*(DEBLOBBED)*/";
164 touchscreen: synaptics-rmi4-i2c@70 {
165 compatible = "syna,rmi4-i2c";
167 #address-cells = <1>;
169 interrupts-extended = <&tlmm 45 0x2008>;
171 pinctrl-names = "default";
172 pinctrl-0 = <&ts_int_active &ts_lcd_id_active>;
174 syna,reset-delay-ms = <200>;
175 syna,startup-delay-ms = <220>;
179 syna,nosleep-mode = <1>;
184 syna,sensor-type = <1>;
192 /* SMB1351 charger */
195 /* I2C3, 4, 5, 7 and 8 are disabled on this board. */
206 /* MSM serial console */
216 qcom,power-source = <1>;
221 color = <LED_COLOR_ID_RGB>;
222 function = LED_FUNCTION_STATUS;
224 #address-cells = <1>;
229 color = <LED_COLOR_ID_BLUE>;
234 color = <LED_COLOR_ID_GREEN>;
239 color = <LED_COLOR_ID_RED>;
251 linux,code = <KEY_VOLUMEUP>;
255 reg = <0x00 0x85800000 0x00 0x3700000>;
261 vdd-supply = <&vreg_l1b_0p925>;
262 vdda-pll-supply = <&vreg_l10a_1p8>;
263 vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
268 compatible = "qcom,rpm-pm660l-regulators";
270 vdd_s1-supply = <&vph_pwr>;
271 vdd_s2-supply = <&vph_pwr>;
272 vdd_s3_s4-supply = <&vph_pwr>;
273 vdd_s5-supply = <&vph_pwr>;
274 vdd_s6-supply = <&vph_pwr>;
276 vdd_l1_l9_l10-supply = <&vreg_s2b_1p05>;
277 vdd_l2-supply = <&vreg_bob>;
278 vdd_l3_l5_l7_l8-supply = <&vreg_bob>;
279 vdd_l4_l6-supply = <&vreg_bob>;
280 vdd_bob-supply = <&vph_pwr>;
283 regulator-min-microvolt = <1125000>;
284 regulator-max-microvolt = <1125000>;
285 regulator-enable-ramp-delay = <200>;
286 regulator-ramp-delay = <0>;
290 regulator-min-microvolt = <1050000>;
291 regulator-max-microvolt = <1050000>;
292 regulator-enable-ramp-delay = <200>;
293 regulator-ramp-delay = <0>;
297 * At least on Nile's configuration, S3B/S4B (VDD_CX) and
298 * S5B (VDD_MX) are managed only through RPM Power Domains.
299 * Trying to set a voltage on the main supply will create
300 * havoc and freeze the SoC.
301 * In any case, reference voltages for these regulators are:
308 regulator-min-microvolt = <920000>;
309 regulator-max-microvolt = <928000>;
310 regulator-enable-ramp-delay = <250>;
311 regulator-ramp-delay = <0>;
312 regulator-allow-set-load;
317 * This regulator supports 1.648 - 3.104V on this board
318 * but we set a max voltage of anything less than 2.7V
319 * to satisfy a condition in sdhci.c that will disable
320 * 3.3V SDHCI signaling, which happens to be not really
321 * supported on the Xperia Nile/Ganges platform.
323 regulator-min-microvolt = <1648000>;
324 regulator-max-microvolt = <2696000>;
325 regulator-enable-ramp-delay = <250>;
326 regulator-ramp-delay = <0>;
327 regulator-allow-set-load;
331 regulator-min-microvolt = <2800000>;
332 regulator-max-microvolt = <2800000>;
333 regulator-enable-ramp-delay = <250>;
334 regulator-ramp-delay = <0>;
335 regulator-min-microamp = <200>;
336 regulator-max-microamp = <600000>;
337 regulator-system-load = <100000>;
338 regulator-allow-set-load;
342 regulator-min-microvolt = <2944000>;
343 regulator-max-microvolt = <2952000>;
344 regulator-enable-ramp-delay = <250>;
345 regulator-ramp-delay = <0>;
347 regulator-min-microamp = <200>;
348 regulator-max-microamp = <600000>;
349 regulator-system-load = <570000>;
350 regulator-allow-set-load;
354 * Downstream specifies a range of 1721-3600mV,
355 * but the only assigned consumers are SDHCI2 VMMC
356 * and Coresight QPDI that both request pinned 2.95V.
357 * Tighten the range to 1.8-3.328 (closest to 3.3) to
358 * make the mmc driver happy.
361 regulator-min-microvolt = <1800000>;
362 regulator-max-microvolt = <3328000>;
363 regulator-enable-ramp-delay = <250>;
364 regulator-ramp-delay = <0>;
365 regulator-allow-set-load;
366 regulator-system-load = <800000>;
370 regulator-min-microvolt = <1704000>;
371 regulator-max-microvolt = <3312000>;
372 regulator-enable-ramp-delay = <250>;
373 regulator-ramp-delay = <0>;
377 regulator-min-microvolt = <2704000>;
378 regulator-max-microvolt = <3128000>;
379 regulator-enable-ramp-delay = <250>;
380 regulator-ramp-delay = <0>;
384 regulator-min-microvolt = <2800000>;
385 regulator-max-microvolt = <3400000>;
386 regulator-enable-ramp-delay = <250>;
387 regulator-ramp-delay = <0>;
390 /* L9B (870mV) is currently unused */
391 /* L10B (915mV) is currently unused */
394 regulator-min-microvolt = <3304000>;
395 regulator-max-microvolt = <3624000>;
396 regulator-enable-ramp-delay = <500>;
397 regulator-ramp-delay = <0>;
402 compatible = "qcom,rpm-pm660-regulators";
404 vdd_s1-supply = <&vph_pwr>;
405 vdd_s2-supply = <&vph_pwr>;
406 vdd_s3-supply = <&vph_pwr>;
407 vdd_s4-supply = <&vph_pwr>;
408 vdd_s5-supply = <&vph_pwr>;
409 vdd_s6-supply = <&vph_pwr>;
411 vdd_l1_l6_l7-supply = <&vreg_s5a_1p35>;
412 vdd_l2_l3-supply = <&vreg_s2b_1p05>;
413 vdd_l5-supply = <&vreg_s2b_1p05>;
414 vdd_l8_l9_l10_l11_l12_l13_l14-supply = <&vreg_s4a_2p04>;
415 vdd_l15_l16_l17_l18_l19-supply = <&vreg_bob>;
418 * S1A (FTAPC0), S2A (FTAPC1), S3A (HFAPC1) are managed
419 * by the Core Power Reduction hardened (CPRh) and the
420 * Operating State Manager (OSM) HW automatically.
424 regulator-min-microvolt = <2040000>;
425 regulator-max-microvolt = <2040000>;
426 regulator-enable-ramp-delay = <200>;
427 regulator-ramp-delay = <0>;
432 regulator-min-microvolt = <1224000>;
433 regulator-max-microvolt = <1350000>;
434 regulator-enable-ramp-delay = <200>;
435 regulator-ramp-delay = <0>;
439 regulator-min-microvolt = <504000>;
440 regulator-max-microvolt = <992000>;
441 regulator-enable-ramp-delay = <150>;
442 regulator-ramp-delay = <0>;
447 regulator-min-microvolt = <1226000>;
448 regulator-max-microvolt = <1250000>;
449 regulator-enable-ramp-delay = <250>;
450 regulator-ramp-delay = <0>;
451 regulator-allow-set-load;
455 regulator-min-microvolt = <944000>;
456 regulator-max-microvolt = <1008000>;
457 regulator-enable-ramp-delay = <250>;
458 regulator-ramp-delay = <0>;
462 regulator-min-microvolt = <944000>;
463 regulator-max-microvolt = <1008000>;
464 regulator-enable-ramp-delay = <250>;
465 regulator-ramp-delay = <0>;
469 regulator-min-microvolt = <800000>;
470 regulator-max-microvolt = <952000>;
471 regulator-enable-ramp-delay = <250>;
472 regulator-ramp-delay = <0>;
476 regulator-min-microvolt = <1304000>;
477 regulator-max-microvolt = <1368000>;
478 regulator-allow-set-load;
479 regulator-enable-ramp-delay = <250>;
480 regulator-ramp-delay = <0>;
484 regulator-min-microvolt = <1200000>;
485 regulator-max-microvolt = <1200000>;
486 regulator-enable-ramp-delay = <250>;
487 regulator-ramp-delay = <0>;
491 regulator-min-microvolt = <1800000>;
492 regulator-max-microvolt = <1800000>;
493 regulator-enable-ramp-delay = <250>;
494 regulator-ramp-delay = <0>;
495 regulator-system-load = <325000>;
496 regulator-allow-set-load;
500 regulator-min-microvolt = <1804000>;
501 regulator-max-microvolt = <1896000>;
502 regulator-enable-ramp-delay = <250>;
503 regulator-ramp-delay = <0>;
504 regulator-allow-set-load;
508 regulator-min-microvolt = <1800000>;
509 regulator-max-microvolt = <1944000>;
510 regulator-enable-ramp-delay = <250>;
511 regulator-ramp-delay = <0>;
512 regulator-allow-set-load;
516 regulator-min-microvolt = <1784000>;
517 regulator-max-microvolt = <1944000>;
518 regulator-enable-ramp-delay = <250>;
519 regulator-ramp-delay = <0>;
523 regulator-min-microvolt = <1800000>;
524 regulator-max-microvolt = <1944000>;
525 regulator-enable-ramp-delay = <250>;
526 regulator-ramp-delay = <0>;
529 /* This gives power to the LPDDR4: never turn it off! */
531 regulator-min-microvolt = <1800000>;
532 regulator-max-microvolt = <1944000>;
533 regulator-enable-ramp-delay = <250>;
534 regulator-ramp-delay = <0>;
540 regulator-min-microvolt = <1710000>;
541 regulator-max-microvolt = <1904000>;
542 regulator-enable-ramp-delay = <250>;
543 regulator-ramp-delay = <0>;
547 regulator-min-microvolt = <1648000>;
548 regulator-max-microvolt = <2952000>;
549 regulator-enable-ramp-delay = <250>;
550 regulator-ramp-delay = <0>;
553 /* L16A (2.70V) is unused */
556 regulator-min-microvolt = <1648000>;
557 regulator-max-microvolt = <2952000>;
558 regulator-enable-ramp-delay = <250>;
559 regulator-ramp-delay = <0>;
563 regulator-min-microvolt = <1800000>;
564 regulator-max-microvolt = <1800000>;
565 regulator-enable-ramp-delay = <250>;
566 regulator-ramp-delay = <10>;
567 regulator-min-microamp = <200>;
568 regulator-max-microamp = <50000>;
569 regulator-system-load = <10000>;
570 regulator-allow-set-load;
574 regulator-min-microvolt = <3312000>;
575 regulator-max-microvolt = <3400000>;
576 regulator-enable-ramp-delay = <250>;
577 regulator-ramp-delay = <0>;
578 regulator-allow-set-load;
588 drive-strength = <2>;
597 drive-strength = <2>;
605 /* SoMC Nile platform's eMMC doesn't support HS200 mode */
608 mmc-hs400-enhanced-strobe;
610 vmmc-supply = <&vreg_l4b_2p95>;
611 vqmmc-supply = <&vreg_l8a_1p8>;
617 vmmc-supply = <&vreg_l5b_2p95>;
618 vqmmc-supply = <&vreg_l2b_2p95>;
622 gpio-reserved-ranges = <8 4>;
624 ts_int_active: ts-int-active-state {
627 drive-strength = <8>;
631 ts_lcd_id_active: ts-lcd-id-active-state {
634 drive-strength = <8>;
638 imx300_vana_default: imx300-vana-default-state {
642 drive-strength = <2>;
645 imx219_vana_default: imx219-vana-default-state {
649 drive-strength = <2>;
652 cam_vdig_default: cam-vdig-default-state {
656 drive-strength = <2>;
665 dr_mode = "peripheral";
666 extcon = <&extcon_usb>;