1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
6 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9 #include "pm8150b.dtsi"
10 #include "pm8150l.dtsi"
11 #include "pm8009.dtsi"
13 /delete-node/ &adsp_mem;
14 /delete-node/ &spss_mem;
15 /delete-node/ &cdsp_secure_heap;
18 qcom,msm-id = <356 0x20001>; /* SM8250 v2.1 */
19 qcom,board-id = <0x10008 0>;
26 framebuffer: framebuffer@9c000000 {
27 compatible = "simple-framebuffer";
28 reg = <0 0x9c000000 0 0x2300000>;
29 /* pdx203 BL initializes in 2.5k mode, not 4k */
32 stride = <(1096 * 4)>;
35 * That's a lot of clocks, but it's necessary due
36 * to unused clk cleanup & no panel driver yet..
38 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
39 <&gcc GCC_DISP_HF_AXI_CLK>,
40 <&gcc GCC_DISP_SF_AXI_CLK>,
41 <&dispcc DISP_CC_MDSS_VSYNC_CLK>,
42 <&dispcc DISP_CC_MDSS_MDP_CLK>,
43 <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
44 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
45 <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
46 <&dispcc DISP_CC_MDSS_ESC0_CLK>;
47 power-domains = <&dispcc MDSS_GDSC>;
51 gpio_keys: gpio-keys {
52 compatible = "gpio-keys";
54 pinctrl-0 = <&focus_n &snapshot_n &vol_down_n>;
55 pinctrl-names = "default";
58 label = "Camera Focus";
59 linux,code = <KEY_CAMERA_FOCUS>;
60 gpios = <&pm8150b_gpios 2 GPIO_ACTIVE_LOW>;
61 debounce-interval = <15>;
67 label = "Camera Snapshot";
68 linux,code = <KEY_CAMERA>;
69 gpios = <&pm8150b_gpios 1 GPIO_ACTIVE_LOW>;
70 debounce-interval = <15>;
76 label = "Volume Down";
77 linux,code = <KEY_VOLUMEDOWN>;
78 gpios = <&pm8150_gpios 1 GPIO_ACTIVE_LOW>;
79 debounce-interval = <15>;
85 vph_pwr: vph-pwr-regulator {
86 compatible = "regulator-fixed";
87 regulator-name = "vph_pwr";
88 regulator-min-microvolt = <3700000>;
89 regulator-max-microvolt = <3700000>;
92 /* S6c is really ebi.lvl but it's there for supply map completeness sake. */
93 vreg_s6c_0p88: smpc6-regulator {
94 compatible = "regulator-fixed";
95 regulator-name = "vreg_s6c_0p88";
97 regulator-min-microvolt = <880000>;
98 regulator-max-microvolt = <880000>;
100 vin-supply = <&vph_pwr>;
104 adsp_mem: memory@8a100000 {
105 reg = <0x0 0x8a100000 0x0 0x2500000>;
109 spss_mem: memory@8c600000 {
110 reg = <0x0 0x8c600000 0x0 0x100000>;
114 cdsp_secure_heap: memory@8c700000 {
115 reg = <0x0 0x8c700000 0x0 0x4600000>;
119 cont_splash_mem: memory@9c000000 {
120 reg = <0x0 0x9c000000 0x0 0x2300000>;
125 compatible = "ramoops";
126 reg = <0x0 0xffc00000 0x0 0x100000>;
127 record-size = <0x1000>;
128 console-size = <0x40000>;
129 pmsg-size = <0x20000>;
141 pm8150-rpmh-regulators {
142 compatible = "qcom,pm8150-rpmh-regulators";
145 vdd-s1-supply = <&vph_pwr>;
146 vdd-s2-supply = <&vph_pwr>;
147 vdd-s3-supply = <&vph_pwr>;
148 vdd-s4-supply = <&vph_pwr>;
149 vdd-s5-supply = <&vph_pwr>;
150 vdd-s6-supply = <&vph_pwr>;
151 vdd-s7-supply = <&vph_pwr>;
152 vdd-s8-supply = <&vph_pwr>;
153 vdd-s9-supply = <&vph_pwr>;
154 vdd-s10-supply = <&vph_pwr>;
155 vdd-l1-l8-l11-supply = <&vreg_s6c_0p88>;
156 vdd-l2-l10-supply = <&vreg_bob>;
157 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p6>;
158 vdd-l6-l9-supply = <&vreg_s8c_1p2>;
159 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
160 vdd-l13-l16-l17-supply = <&vreg_bob>;
162 /* (S1+S2+S3) - cx.lvl (ARC) */
164 vreg_s4a_1p8: smps4 {
165 regulator-name = "vreg_s4a_1p8";
166 regulator-min-microvolt = <1800000>;
167 regulator-max-microvolt = <1920000>;
168 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
171 vreg_s5a_1p9: smps5 {
172 regulator-name = "vreg_s5a_1p9";
173 regulator-min-microvolt = <1824000>;
174 regulator-max-microvolt = <2040000>;
175 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
178 vreg_s6a_0p6: smps6 {
179 regulator-name = "vreg_s6a_0p6";
180 regulator-min-microvolt = <600000>;
181 regulator-max-microvolt = <1128000>;
182 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
186 regulator-name = "vreg_l2a_3p1";
187 regulator-min-microvolt = <3072000>;
188 regulator-max-microvolt = <3072000>;
189 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
193 regulator-name = "vreg_l3a_0p9";
194 regulator-min-microvolt = <928000>;
195 regulator-max-microvolt = <932000>;
196 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
199 /* L4 - lmx.lvl (ARC) */
201 vreg_l5a_0p88: ldo5 {
202 regulator-name = "vreg_l5a_0p88";
203 regulator-min-microvolt = <880000>;
204 regulator-max-microvolt = <880000>;
205 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
209 regulator-name = "vreg_l6a_1p2";
210 regulator-min-microvolt = <1200000>;
211 regulator-max-microvolt = <1200000>;
212 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
218 regulator-name = "vreg_l9a_1p2";
219 regulator-min-microvolt = <1200000>;
220 regulator-max-microvolt = <1200000>;
221 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
224 /* L10 is unused, L11 - lcx.lvl (ARC) */
226 vreg_l12a_1p8: ldo12 {
227 regulator-name = "vreg_l12a_1p8";
228 regulator-min-microvolt = <1800000>;
229 regulator-max-microvolt = <1800000>;
230 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
235 vreg_l14a_1p8: ldo14 {
236 regulator-name = "vreg_l14a_1p8";
237 regulator-min-microvolt = <1800000>;
238 regulator-max-microvolt = <1880000>;
239 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
242 /* L15 & L16 are unused. */
244 vreg_l17a_3p0: ldo17 {
245 regulator-name = "vreg_l17a_3p0";
246 regulator-min-microvolt = <2496000>;
247 regulator-max-microvolt = <3008000>;
248 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
251 vreg_l18a_0p9: ldo18 {
252 regulator-name = "vreg_l18a_0p9";
253 regulator-min-microvolt = <800000>;
254 regulator-max-microvolt = <920000>;
255 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
260 * Remaining regulators that are not yet supported:
261 * OLEDB: 4925000-8100000
262 * ab: 4600000-6100000
263 * ibb: 800000-5400000
265 pm8150l-rpmh-regulators {
266 compatible = "qcom,pm8150l-rpmh-regulators";
269 vdd-s1-supply = <&vph_pwr>;
270 vdd-s2-supply = <&vph_pwr>;
271 vdd-s3-supply = <&vph_pwr>;
272 vdd-s4-supply = <&vph_pwr>;
273 vdd-s5-supply = <&vph_pwr>;
274 vdd-s6-supply = <&vph_pwr>;
275 vdd-s7-supply = <&vph_pwr>;
276 vdd-s8-supply = <&vph_pwr>;
277 vdd-l1-l8-supply = <&vreg_s4a_1p8>;
278 vdd-l2-l3-supply = <&vreg_s8c_1p2>;
279 vdd-l4-l5-l6-supply = <&vreg_bob>;
280 vdd-l7-l11-supply = <&vreg_bob>;
281 vdd-l9-l10-supply = <&vreg_bob>;
282 vdd-bob-supply = <&vph_pwr>;
285 regulator-name = "vreg_bob";
286 regulator-min-microvolt = <3350000>;
287 regulator-max-microvolt = <3960000>;
288 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
295 * (S4+S5) - mmcx.lvl,
299 vreg_s7c_0p35: smps7 {
300 regulator-name = "vreg_s7c_0p35";
301 regulator-min-microvolt = <348000>;
302 regulator-max-microvolt = <1000000>;
303 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
306 vreg_s8c_1p2: smps8 {
307 regulator-name = "vreg_s8c_1p2";
308 regulator-min-microvolt = <1200000>;
309 regulator-max-microvolt = <1400000>;
310 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
314 regulator-name = "vreg_l1c_1p8";
315 regulator-min-microvolt = <1800000>;
316 regulator-max-microvolt = <1800000>;
317 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
320 /* L2-4 are unused. */
323 regulator-name = "vreg_l5c_1p8";
324 regulator-min-microvolt = <1800000>;
325 regulator-max-microvolt = <2800000>;
326 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
330 regulator-name = "vreg_l6c_2p9";
331 regulator-min-microvolt = <1800000>;
332 regulator-max-microvolt = <2960000>;
333 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
334 regulator-allow-set-load;
335 regulator-allowed-modes =
336 <RPMH_REGULATOR_MODE_LPM
337 RPMH_REGULATOR_MODE_HPM>;
340 vreg_l7c_2p85: ldo7 {
341 regulator-name = "vreg_l7c_2p85";
342 regulator-min-microvolt = <2856000>;
343 regulator-max-microvolt = <3104000>;
344 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
348 regulator-name = "vreg_l8c_1p8";
349 regulator-min-microvolt = <1800000>;
350 regulator-max-microvolt = <1800000>;
351 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
355 regulator-name = "vreg_l9c_2p9";
356 regulator-min-microvolt = <2704000>;
357 regulator-max-microvolt = <2960000>;
358 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
359 regulator-allow-set-load;
360 regulator-allowed-modes =
361 <RPMH_REGULATOR_MODE_LPM
362 RPMH_REGULATOR_MODE_HPM>;
365 vreg_l10c_3p3: ldo10 {
366 regulator-name = "vreg_l10c_3p3";
367 regulator-min-microvolt = <3296000>;
368 regulator-max-microvolt = <3296000>;
369 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
372 vreg_l11c_3p0: ldo11 {
373 regulator-name = "vreg_l11c_3p0";
374 regulator-min-microvolt = <3000000>;
375 regulator-max-microvolt = <3000000>;
376 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
380 pm8009-rpmh-regulators {
381 compatible = "qcom,pm8009-rpmh-regulators";
384 vdd-s1-supply = <&vph_pwr>;
385 vdd-s2-supply = <&vreg_bob>;
386 vdd-l2-supply = <&vreg_s8c_1p2>;
387 vdd-l5-l6-supply = <&vreg_bob>;
388 vdd-l7-supply = <&vreg_s4a_1p8>;
390 vreg_s1f_1p2: smps1 {
391 regulator-name = "vreg_s1f_1p2";
392 regulator-min-microvolt = <1200000>;
393 regulator-max-microvolt = <1200000>;
394 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
397 vreg_s2f_0p5: smps2 {
398 regulator-name = "vreg_s2f_0p5";
399 regulator-min-microvolt = <512000>;
400 regulator-max-microvolt = <1100000>;
401 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
407 regulator-name = "vreg_l2f_1p3";
408 regulator-min-microvolt = <1304000>;
409 regulator-max-microvolt = <1304000>;
410 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
413 /* L3 & L4 are unused. */
416 regulator-name = "vreg_l5f_2p85";
417 regulator-min-microvolt = <2800000>;
418 regulator-max-microvolt = <2800000>;
419 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
423 regulator-name = "vreg_l6f_2p8";
424 regulator-min-microvolt = <2800000>;
425 regulator-max-microvolt = <2800000>;
426 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
430 regulator-name = "vreg_l7f_1p8";
431 regulator-min-microvolt = <1800000>;
432 regulator-max-microvolt = <1800000>;
433 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
456 clock-frequency = <400000>;
458 /* NXP PN553 NFC @ 28 */
463 clock-frequency = <1000000>;
465 cs35l41_l: cs35l41@40 {
466 compatible = "cirrus,cs35l41";
468 interrupt-parent = <&tlmm>;
469 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
470 reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
471 cirrus,boost-peak-milliamp = <4000>;
472 cirrus,boost-ind-nanohenry = <1000>;
473 cirrus,boost-cap-microfarad = <15>;
474 cirrus,asp-sdout-hiz = <3>;
475 cirrus,gpio2-src-select = <2>;
476 cirrus,gpio2-output-enable;
477 #sound-dai-cells = <1>;
480 cs35l41_r: cs35l41@41 {
481 compatible = "cirrus,cs35l41";
483 interrupt-parent = <&tlmm>;
484 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
485 reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
486 cirrus,boost-peak-milliamp = <4000>;
487 cirrus,boost-ind-nanohenry = <1000>;
488 cirrus,boost-cap-microfarad = <15>;
489 cirrus,asp-sdout-hiz = <3>;
490 cirrus,gpio2-src-select = <2>;
491 cirrus,gpio2-output-enable;
492 #sound-dai-cells = <1>;
498 clock-frequency = <400000>;
500 /* Dialog SLG51000 CMIC @ 75 */
505 clock-frequency = <400000>;
507 /* AMS TCS3490 RGB+IR color sensor @ 72 */
512 clock-frequency = <400000>;
515 compatible = "samsung,s6sy761";
517 interrupt-parent = <&tlmm>;
518 interrupts = <39 0x2008>;
519 /* It's "vddio" downstream but it works anyway! */
520 vdd-supply = <&vreg_l1c_1p8>;
521 avdd-supply = <&vreg_l10c_3p3>;
523 pinctrl-names = "default";
524 pinctrl-0 = <&ts_int_default>;
530 clock-frequency = <400000>;
532 /* Qcom SMB1390 @ 10 */
533 /* Silicon Labs SI4704 FM Radio Receiver @ 11 */
534 /* Qcom SMB1390_slave @ 18 */
535 /* HALO HL6111R Qi charger @ 25 */
536 /* Richwave RTC6226 FM Radio Receiver @ 64 */
546 vdda-phy-supply = <&vreg_l5a_0p88>;
547 vdda-pll-supply = <&vreg_l9a_1p2>;
553 pinctrl-0 = <&pcie2_default_state &mdm2ap_default &ap2mdm_default>;
559 vdda-phy-supply = <&vreg_l5a_0p88>;
560 vdda-pll-supply = <&vreg_l9a_1p2>;
564 vol_down_n: vol-down-n-state {
574 snapshot_n: snapshot-n-state {
582 focus_n: focus-n-state {
598 linux,code = <KEY_VOLUMEUP>;
616 cd-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>;
617 pinctrl-names = "default", "sleep";
618 pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
619 pinctrl-1 = <&sdc2_sleep_state &sdc2_card_det_n>;
620 vmmc-supply = <&vreg_l9c_2p9>;
621 vqmmc-supply = <&vreg_l6c_2p9>;
632 gpio-reserved-ranges = <40 4>, <52 4>;
634 sdc2_default_state: sdc2-default {
637 drive-strength = <16>;
643 drive-strength = <16>;
649 drive-strength = <16>;
654 mdm2ap_default: mdm2ap-default {
655 pins = "gpio1", "gpio3";
657 drive-strength = <8>;
661 ts_int_default: ts-int-default {
664 drive-strength = <2>;
669 ap2mdm_default: ap2mdm-default {
670 pins = "gpio56", "gpio57";
672 drive-strength = <16>;
676 sdc2_card_det_n: sd-card-det-n {
680 drive-strength = <2>;
688 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
689 &ufs_mem_hc { status = "disabled"; };
690 &ufs_mem_phy { status = "disabled"; };
697 dr_mode = "peripheral";
703 vdda-pll-supply = <&vreg_l5a_0p88>;
704 vdda18-supply = <&vreg_l12a_1p8>;
705 vdda33-supply = <&vreg_l2a_3p1>;
711 vdda-phy-supply = <&vreg_l9a_1p2>;
712 vdda-pll-supply = <&vreg_l18a_0p9>;