1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2022, Konrad Dybcio <konrad.dybcio@somainline.org>
6 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
7 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10 #include "pm8350b.dtsi"
11 #include "pm8350c.dtsi"
12 #include "pm8450.dtsi"
13 #include "pmk8350.dtsi"
14 #include "pmr735a.dtsi"
16 /delete-node/ &adsp_mem;
17 /delete-node/ &rmtfs_mem;
18 /delete-node/ &video_mem;
21 chassis-type = "handset";
28 stdout-path = "serial0:115200n8";
32 compatible = "gpio-keys";
35 pinctrl-names = "default";
36 pinctrl-0 = <&focus_n &snapshot_n &vol_down_n>;
39 label = "Camera Focus";
40 linux,code = <KEY_CAMERA_FOCUS>;
41 gpios = <&pm8350b_gpios 8 GPIO_ACTIVE_LOW>;
42 debounce-interval = <15>;
48 label = "Camera Snapshot";
49 linux,code = <KEY_CAMERA>;
50 gpios = <&pm8350b_gpios 5 GPIO_ACTIVE_LOW>;
51 debounce-interval = <15>;
57 label = "Volume Down";
58 linux,code = <KEY_VOLUMEDOWN>;
59 gpios = <&pm8350_gpios 6 GPIO_ACTIVE_LOW>;
60 debounce-interval = <15>;
67 adsp_mem: memory@85700000 {
68 reg = <0x0 0x85700000 0x0 0x2800000>;
72 video_mem: memory@9fd00000 {
73 reg = <0x0 0x9fd00000 0x0 0x700000>;
77 rmtfs_mem: memory@f3300000 {
78 compatible = "qcom,rmtfs-mem";
79 reg = <0x0 0xf3300000 0x0 0x280000>;
83 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
87 compatible = "ramoops";
88 reg = <0 0xffc00000 0 0x200000>;
89 console-size = <0x40000>;
90 record-size = <0x1000>;
96 /* Sadly, the voltages for these GPIO regulators are unknown. */
97 imx650_vana_regulator: imx650-vana-regulator {
98 compatible = "regulator-fixed";
99 regulator-name = "imx650_vana_regulator";
100 gpio = <&tlmm 23 GPIO_ACTIVE_HIGH>;
103 pinctrl-names = "default";
104 pinctrl-0 = <&telec_pwr_en>;
107 vph_pwr: vph-pwr-regulator {
108 compatible = "regulator-fixed";
109 regulator-name = "vph_pwr";
110 regulator-min-microvolt = <3700000>;
111 regulator-max-microvolt = <3700000>;
120 compatible = "qcom,pm8350-rpmh-regulators";
123 vdd-s1-supply = <&vph_pwr>;
124 vdd-s2-supply = <&vph_pwr>;
125 vdd-s3-supply = <&vph_pwr>;
126 vdd-s4-supply = <&vph_pwr>;
127 vdd-s5-supply = <&vph_pwr>;
128 vdd-s6-supply = <&vph_pwr>;
129 vdd-s7-supply = <&vph_pwr>;
130 vdd-s8-supply = <&vph_pwr>;
131 vdd-s9-supply = <&vph_pwr>;
132 vdd-s10-supply = <&vph_pwr>;
133 vdd-s11-supply = <&vph_pwr>;
134 vdd-s12-supply = <&vph_pwr>;
136 vdd-l1-l4-supply = <&pm8350_s11>;
137 vdd-l2-l7-supply = <&vreg_bob>;
138 vdd-l3-l5-supply = <&vreg_bob>;
139 vdd-l6-l9-l10-supply = <&pm8350_s12>;
148 regulator-name = "pm8350_s10";
149 regulator-min-microvolt = <1800000>;
150 regulator-max-microvolt = <1800000>;
154 regulator-name = "pm8350_s11";
155 regulator-min-microvolt = <848000>;
156 regulator-max-microvolt = <1104000>;
160 regulator-name = "pm8350_s12";
161 regulator-min-microvolt = <1224000>;
162 regulator-max-microvolt = <1400000>;
166 regulator-name = "pm8350_l1";
167 regulator-min-microvolt = <912000>;
168 regulator-max-microvolt = <920000>;
169 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
173 regulator-name = "pm8350_l2";
174 regulator-min-microvolt = <3072000>;
175 regulator-max-microvolt = <3072000>;
176 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
180 regulator-name = "pm8350_l3";
181 regulator-min-microvolt = <904000>;
182 regulator-max-microvolt = <904000>;
183 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
187 regulator-name = "pm8350_l5";
188 regulator-min-microvolt = <880000>;
189 regulator-max-microvolt = <912000>;
190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
194 regulator-name = "pm8350_l6";
195 regulator-min-microvolt = <1200000>;
196 regulator-max-microvolt = <1200000>;
197 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
201 regulator-name = "pm8350_l7";
202 regulator-min-microvolt = <2504000>;
203 regulator-max-microvolt = <2504000>;
204 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
208 regulator-name = "pm8350_l9";
209 regulator-min-microvolt = <1200000>;
210 regulator-max-microvolt = <1200000>;
211 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
216 compatible = "qcom,pm8350c-rpmh-regulators";
219 vdd-s1-supply = <&vph_pwr>;
220 vdd-s2-supply = <&vph_pwr>;
221 vdd-s3-supply = <&vph_pwr>;
222 vdd-s4-supply = <&vph_pwr>;
223 vdd-s5-supply = <&vph_pwr>;
224 vdd-s6-supply = <&vph_pwr>;
225 vdd-s7-supply = <&vph_pwr>;
226 vdd-s8-supply = <&vph_pwr>;
227 vdd-s9-supply = <&vph_pwr>;
228 vdd-s10-supply = <&vph_pwr>;
230 vdd-l1-l12-supply = <&vreg_bob>;
231 vdd-l2-l8-supply = <&vreg_bob>;
232 vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
233 vdd-l6-l9-l11-supply = <&vreg_bob>;
234 vdd-l10-supply = <&pm8350_s12>;
236 vdd-bob-supply = <&vph_pwr>;
246 regulator-name = "pm8350c_s1";
247 regulator-min-microvolt = <1800000>;
248 regulator-max-microvolt = <2024000>;
251 pm8350c_s10: smps10 {
252 regulator-name = "pm8350c_s10";
253 regulator-min-microvolt = <1000000>;
254 regulator-max-microvolt = <1100000>;
258 regulator-name = "vreg_bob";
259 regulator-min-microvolt = <3400000>;
260 regulator-max-microvolt = <3960000>;
261 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
265 regulator-name = "pm8350c_l1";
266 regulator-min-microvolt = <1800000>;
267 regulator-max-microvolt = <1800000>;
268 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
272 regulator-name = "pm8350c_l2";
273 regulator-min-microvolt = <1800000>;
274 regulator-max-microvolt = <1800000>;
275 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
279 regulator-name = "pm8350c_l3";
280 regulator-min-microvolt = <3296000>;
281 regulator-max-microvolt = <3304000>;
282 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
286 regulator-name = "pm8350c_l4";
287 regulator-min-microvolt = <1704000>;
288 regulator-max-microvolt = <3000000>;
289 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
293 regulator-name = "pm8350c_l5";
294 regulator-min-microvolt = <1704000>;
295 regulator-max-microvolt = <3000000>;
296 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
300 regulator-name = "pm8350c_l6";
301 regulator-min-microvolt = <2960000>;
302 /* Originally max = 3008000 but SDHCI expects 2960000 */
303 regulator-max-microvolt = <2960000>;
304 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
308 regulator-name = "pm8350c_l7";
309 regulator-min-microvolt = <3008000>;
310 regulator-max-microvolt = <3008000>;
311 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
315 regulator-name = "pm8350c_l8";
316 regulator-min-microvolt = <1800000>;
317 regulator-max-microvolt = <1800000>;
318 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
322 regulator-name = "pm8350c_l9";
323 regulator-min-microvolt = <2960000>;
324 /* Originally max = 3008000 but SDHCI expects 2960000 */
325 regulator-max-microvolt = <2960000>;
326 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
330 regulator-name = "pm8350c_l10";
331 regulator-min-microvolt = <1200000>;
332 regulator-max-microvolt = <1200000>;
333 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
337 regulator-name = "pm8350c_l12";
338 regulator-min-microvolt = <1800000>;
339 regulator-max-microvolt = <1968000>;
340 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
344 regulator-name = "pm8350c_l13";
345 regulator-min-microvolt = <3000000>;
346 regulator-max-microvolt = <3000000>;
347 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
352 compatible = "qcom,pm8450-rpmh-regulators";
355 vdd-s1-supply = <&vph_pwr>;
356 vdd-s2-supply = <&vph_pwr>;
357 vdd-s3-supply = <&vph_pwr>;
358 vdd-s4-supply = <&vph_pwr>;
359 vdd-s5-supply = <&vph_pwr>;
360 vdd-s6-supply = <&vph_pwr>;
362 vdd-l2-supply = <&vreg_bob>;
363 vdd-l3-supply = <&vreg_bob>;
364 vdd-l4-supply = <&vreg_bob>;
375 regulator-name = "pm8450_s3";
376 regulator-min-microvolt = <500000>;
377 regulator-max-microvolt = <600000>;
381 regulator-name = "pm8450_l2";
382 regulator-min-microvolt = <880000>;
383 regulator-max-microvolt = <912000>;
384 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
388 regulator-name = "pm8450_l3";
389 regulator-min-microvolt = <912000>;
390 regulator-max-microvolt = <912000>;
391 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
396 compatible = "qcom,pmr735a-rpmh-regulators";
399 vdd-s1-supply = <&vph_pwr>;
400 vdd-s2-supply = <&vph_pwr>;
401 vdd-s3-supply = <&vph_pwr>;
403 vdd-l1-l2-supply = <&pmr735a_s2>;
404 vdd-l3-supply = <&pmr735a_s1>;
405 vdd-l4-supply = <&pm8350c_s1>;
406 vdd-l5-l6-supply = <&pm8350c_s1>;
407 vdd-l7-bob-supply = <&vreg_bob>;
410 regulator-name = "pmr735a_s1";
411 regulator-min-microvolt = <1200000>;
412 regulator-max-microvolt = <1296000>;
416 regulator-name = "pmr735a_s2";
417 regulator-min-microvolt = <500000>;
418 regulator-max-microvolt = <1040000>;
422 regulator-name = "pmr735a_s3";
423 regulator-min-microvolt = <435000>;
424 regulator-max-microvolt = <2352000>;
428 regulator-name = "pmr735a_l1";
429 regulator-min-microvolt = <800000>;
430 regulator-max-microvolt = <800000>;
434 regulator-name = "pmr735a_l2";
435 regulator-min-microvolt = <480000>;
436 regulator-max-microvolt = <912000>;
440 regulator-name = "pmr735a_l3";
441 regulator-min-microvolt = <1200000>;
442 regulator-max-microvolt = <1200000>;
446 regulator-name = "pmr735a_l4";
447 regulator-min-microvolt = <1776000>;
448 regulator-max-microvolt = <1776000>;
452 regulator-name = "pmr735a_l5";
453 regulator-min-microvolt = <880000>;
454 regulator-max-microvolt = <880000>;
458 regulator-name = "pmr735a_l6";
459 regulator-min-microvolt = <1200000>;
460 regulator-max-microvolt = <1200000>;
464 regulator-name = "pmr735a_l7";
465 regulator-min-microvolt = <2800000>;
466 regulator-max-microvolt = <2800000>;
484 clock-frequency = <400000>;
488 compatible = "samsung,s6sy761";
490 interrupt-parent = <&tlmm>;
491 interrupts = <21 0x2008>;
492 vdd-supply = <&pm8350c_l2>;
493 avdd-supply = <&pm8350c_l3>;
495 pinctrl-names = "default";
496 pinctrl-0 = <&ts_reset_default &ts_int_default>;
501 clock-frequency = <400000>;
505 compatible = "dlg,slg51000";
507 dlg,cs-gpios = <&pm8350b_gpios 1 GPIO_ACTIVE_HIGH>;
509 pinctrl-names = "default";
510 pinctrl-0 = <&cam_pwr_a_cs>;
513 slg51000_a_ldo1: ldo1 {
514 regulator-name = "slg51000_a_ldo1";
515 regulator-min-microvolt = <2400000>;
516 regulator-max-microvolt = <3300000>;
519 slg51000_a_ldo2: ldo2 {
520 regulator-name = "slg51000_a_ldo2";
521 regulator-min-microvolt = <2400000>;
522 regulator-max-microvolt = <3300000>;
525 slg51000_a_ldo3: ldo3 {
526 regulator-name = "slg51000_a_ldo3";
527 regulator-min-microvolt = <1200000>;
528 regulator-max-microvolt = <3750000>;
531 slg51000_a_ldo4: ldo4 {
532 regulator-name = "slg51000_a_ldo4";
533 regulator-min-microvolt = <1200000>;
534 regulator-max-microvolt = <3750000>;
537 slg51000_a_ldo5: ldo5 {
538 regulator-name = "slg51000_a_ldo5";
539 regulator-min-microvolt = <500000>;
540 regulator-max-microvolt = <1200000>;
543 slg51000_a_ldo6: ldo6 {
544 regulator-name = "slg51000_a_ldo6";
545 regulator-min-microvolt = <500000>;
546 regulator-max-microvolt = <1200000>;
549 slg51000_a_ldo7: ldo7 {
550 regulator-name = "slg51000_a_ldo7";
551 regulator-min-microvolt = <1200000>;
552 regulator-max-microvolt = <3750000>;
559 clock-frequency = <400000>;
562 /* NXP SN1X0 NFC @ 28 */
566 clock-frequency = <1000000>;
569 cs35l41_l: speaker-amp@40 {
570 compatible = "cirrus,cs35l41";
572 interrupt-parent = <&tlmm>;
573 interrupts = <182 IRQ_TYPE_LEVEL_LOW>;
574 reset-gpios = <&tlmm 183 GPIO_ACTIVE_HIGH>;
575 cirrus,boost-peak-milliamp = <4000>;
576 cirrus,boost-ind-nanohenry = <1000>;
577 cirrus,boost-cap-microfarad = <15>;
578 cirrus,gpio2-src-select = <2>;
579 cirrus,gpio2-output-enable;
580 cirrus,asp-sdout-hiz = <3>;
581 #sound-dai-cells = <1>;
584 cs35l41_r: speaker-amp@41 {
585 compatible = "cirrus,cs35l41";
587 interrupt-parent = <&tlmm>;
588 interrupts = <182 IRQ_TYPE_LEVEL_LOW>;
589 reset-gpios = <&tlmm 183 GPIO_ACTIVE_HIGH>;
590 cirrus,boost-peak-milliamp = <4000>;
591 cirrus,boost-ind-nanohenry = <1000>;
592 cirrus,boost-cap-microfarad = <15>;
593 cirrus,gpio2-src-select = <2>;
594 cirrus,gpio2-output-enable;
595 cirrus,asp-sdout-hiz = <3>;
596 #sound-dai-cells = <1>;
601 clock-frequency = <400000>;
604 /* AMS TCS3490 RGB+IR color sensor @ 72 */
608 clock-frequency = <1000000>;
611 /* Cirrus Logic CS40L25A boosted haptics driver @ 40 */
615 max-link-speed = <2>;
620 vdda-phy-supply = <&pm8350_l5>;
621 vdda-pll-supply = <&pm8350_l6>;
626 gpio-line-names = "ASSIGN1_THERM", /* GPIO_1 */
635 "PM8350_OPTION"; /* GPIO_10 */
637 vol_down_n: vol-down-n-state {
647 cam_pwr_a_cs: cam-pwr-a-cs-state {
650 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
656 snapshot_n: snapshot-n-state {
664 focus_n: focus-n-state {
674 gpio-line-names = "FP_LDO_EN", /* GPIO_1 */
681 gpio-line-names = "NC", /* GPIO_1 */
692 linux,code = <KEY_VOLUMEUP>;
697 firmware-name = "/*(DEBLOBBED)*/";
702 firmware-name = "/*(DEBLOBBED)*/";
707 firmware-name = "/*(DEBLOBBED)*/";
724 cd-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>;
725 pinctrl-names = "default", "sleep";
726 pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
727 pinctrl-1 = <&sdc2_sleep_state &sdc2_card_det_n>;
728 vmmc-supply = <&pm8350c_l9>;
729 vqmmc-supply = <&pm8350c_l6>;
738 /* NXP SN1X0 NFC Secure Element @ 0 */
742 gpio-reserved-ranges = <28 4>;
744 ts_reset_default: ts-reset-default-state {
747 drive-strength = <2>;
752 ts_int_default: ts-int-default-state {
755 drive-strength = <2>;
759 telec_pwr_en: telec-pwr-en-state {
762 drive-strength = <2>;
767 sdc2_card_det_n: sd-card-det-n-state {
770 drive-strength = <2>;
784 dr_mode = "peripheral";
788 vdda-pll-supply = <&pm8350_l5>;
789 vdda18-supply = <&pm8350c_l1>;
790 vdda33-supply = <&pm8350_l2>;
795 vdda-phy-supply = <&pm8350_l6>;
796 vdda-pll-supply = <&pm8350_l1>;