1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
10 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
11 #include "sm8150.dtsi"
12 #include "pm8150.dtsi"
13 #include "pm8150b.dtsi"
14 #include "pm8150l.dtsi"
16 /delete-node/ &cdsp_mem;
17 /delete-node/ &gpu_mem;
18 /delete-node/ &ipa_fw_mem;
19 /delete-node/ &ipa_gsi_mem;
20 /delete-node/ &mpss_mem;
21 /delete-node/ &slpi_mem;
22 /delete-node/ &spss_mem;
23 /delete-node/ &venus_mem;
26 qcom,msm-id = <339 0x20000>; /* SM8150 v2 */
27 qcom,board-id = <8 0>;
34 framebuffer: framebuffer@9c000000 {
35 compatible = "simple-framebuffer";
36 reg = <0 0x9c000000 0 0x2300000>;
37 /* Griffin BL initializes in 2.5k mode, not 4k */
40 stride = <(1096 * 4)>;
43 * That's (going to be) a lot of clocks, but it's necessary due
44 * to unused clk cleanup & no panel driver yet (& no dispcc either)..
46 clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
47 <&gcc GCC_DISP_SF_AXI_CLK>;
52 compatible = "gpio-keys";
54 pinctrl-names = "default";
55 pinctrl-0 = <&focus_n &snapshot_n &vol_down_n>;
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 cam0_vdig_vreg: cam0-vdig-regulator {
86 compatible = "regulator-fixed";
87 regulator-name = "camera0_vdig_vreg";
88 gpio = <&tlmm 22 GPIO_ACTIVE_HIGH>;
91 pinctrl-0 = <&main_cam_pwr_en>;
92 pinctrl-names = "default";
95 cam1_vdig_vreg: cam1-vdig-regulator {
96 compatible = "regulator-fixed";
97 regulator-name = "camera1_vdig_vreg";
98 gpio = <&tlmm 79 GPIO_ACTIVE_HIGH>;
101 pinctrl-0 = <&sub_cam_pwr_en>;
102 pinctrl-names = "default";
105 cam2_vdig_vreg: cam2-vdig-regulator {
106 compatible = "regulator-fixed";
107 regulator-name = "camera2_vdig_vreg";
108 gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
111 pinctrl-0 = <&chat_cam_pwr_en>;
112 pinctrl-names = "default";
115 cam3_vdig_vreg: cam3-vdig-regulator {
116 compatible = "regulator-fixed";
117 regulator-name = "camera3_vdig_vreg";
118 gpio = <&pm8150_gpios 7 GPIO_ACTIVE_HIGH>;
121 pinctrl-0 = <&supwc_pwr_en>;
122 pinctrl-names = "default";
125 cam_vmdr_vreg: cam-vmdr-regulator {
126 compatible = "regulator-fixed";
127 regulator-name = "camera_vmdr_vreg";
128 gpio = <&pm8150l_gpios 3 GPIO_ACTIVE_HIGH>;
131 pinctrl-0 = <&main_cam_pwr_vmdr_en>;
132 pinctrl-names = "default";
135 rgbcir_vreg: rgbcir-regulator {
136 compatible = "regulator-fixed";
137 regulator-name = "rgbcir_vreg";
138 gpio = <&tlmm 29 GPIO_ACTIVE_HIGH>;
141 pinctrl-0 = <&rgbc_ir_pwr_en>;
142 pinctrl-names = "default";
145 vph_pwr: vph-pwr-regulator {
146 compatible = "regulator-fixed";
147 regulator-name = "vph_pwr";
148 regulator-min-microvolt = <3700000>;
149 regulator-max-microvolt = <3700000>;
153 * Apparently RPMh does not provide support for PM8150 S4 because it
154 * is always-on; model it as a fixed regulator.
156 vreg_s4a_1p8: pm8150-s4 {
157 compatible = "regulator-fixed";
158 regulator-name = "vreg_s4a_1p8";
160 regulator-min-microvolt = <1800000>;
161 regulator-max-microvolt = <1800000>;
166 vin-supply = <&vph_pwr>;
170 mpss_mem: memory@8dc00000 {
171 reg = <0x0 0x8dc00000 0x0 0x9600000>;
175 venus_mem: memory@97200000 {
176 reg = <0x0 0x97200000 0x0 0x500000>;
180 slpi_mem: memory@97700000 {
181 reg = <0x0 0x97700000 0x0 0x1400000>;
185 ipa_fw_mem: memory@98b00000 {
186 reg = <0x0 0x98b00000 0x0 0x10000>;
190 ipa_gsi_mem: memory@98b10000 {
191 reg = <0x0 0x98b10000 0x0 0x5000>;
195 gpu_mem: memory@98b15000 {
196 reg = <0x0 0x98b15000 0x0 0x2000>;
200 spss_mem: memory@98c00000 {
201 reg = <0x0 0x98c00000 0x0 0x100000>;
205 cdsp_mem: memory@98d00000 {
206 reg = <0x0 0x98d00000 0x0 0x1400000>;
210 cont_splash_mem: memory@9c000000 {
211 reg = <0x0 0x9c000000 0x0 0x2400000>;
215 cdsp_sec_mem: memory@a4c00000 {
216 reg = <0x0 0xa4c00000 0x0 0x3c00000>;
221 compatible = "ramoops";
222 reg = <0x0 0xffc00000 0x0 0x100000>;
223 record-size = <0x1000>;
224 console-size = <0x40000>;
225 pmsg-size = <0x20000>;
233 reg = <0x0 0x8be00000 0x0 0x1e00000>;
238 compatible = "qcom,pm8150-rpmh-regulators";
241 vdd-s1-supply = <&vph_pwr>;
242 vdd-s2-supply = <&vph_pwr>;
243 vdd-s3-supply = <&vph_pwr>;
244 vdd-s4-supply = <&vph_pwr>;
245 vdd-s5-supply = <&vph_pwr>;
246 vdd-s6-supply = <&vph_pwr>;
247 vdd-s7-supply = <&vph_pwr>;
248 vdd-s8-supply = <&vph_pwr>;
249 vdd-s9-supply = <&vph_pwr>;
250 vdd-s10-supply = <&vph_pwr>;
252 vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
253 vdd-l2-l10-supply = <&vreg_bob>;
254 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
255 vdd-l6-l9-supply = <&vreg_s8c_1p3>;
256 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
257 vdd-l13-l16-l17-supply = <&vreg_bob>;
259 vreg_s2a_0p6: smps2 {
260 regulator-min-microvolt = <600000>;
261 regulator-max-microvolt = <600000>;
262 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
265 vreg_s5a_1p9: smps5 {
266 regulator-min-microvolt = <1904000>;
267 regulator-max-microvolt = <2040000>;
268 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
271 vreg_s6a_0p9: smps6 {
272 regulator-min-microvolt = <920000>;
273 regulator-max-microvolt = <1128000>;
274 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
277 vreg_l1a_0p75: ldo1 {
278 regulator-min-microvolt = <752000>;
279 regulator-max-microvolt = <752000>;
280 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
284 regulator-min-microvolt = <3072000>;
285 regulator-max-microvolt = <3072000>;
286 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
290 regulator-min-microvolt = <480000>;
291 regulator-max-microvolt = <932000>;
292 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
295 vreg_l5a_0p875: ldo5 {
296 regulator-min-microvolt = <880000>;
297 regulator-max-microvolt = <880000>;
298 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
302 regulator-min-microvolt = <1200000>;
303 regulator-max-microvolt = <1200000>;
304 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
308 regulator-min-microvolt = <1800000>;
309 regulator-max-microvolt = <1800000>;
310 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
314 regulator-min-microvolt = <1200000>;
315 regulator-max-microvolt = <1200000>;
316 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
319 vreg_l10a_2p5: ldo10 {
320 regulator-min-microvolt = <2504000>;
321 regulator-max-microvolt = <2960000>;
322 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
325 vreg_l11a_0p8: ldo11 {
326 regulator-min-microvolt = <800000>;
327 regulator-max-microvolt = <800000>;
328 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
331 vreg_l12a_1p8: ldo12 {
332 regulator-min-microvolt = <1800000>;
333 regulator-max-microvolt = <1800000>;
334 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
339 vreg_l14a_1p8: ldo14 {
340 regulator-min-microvolt = <1800000>;
341 regulator-max-microvolt = <1800000>;
342 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
345 vreg_l15a_1p7: ldo15 {
346 regulator-min-microvolt = <1704000>;
347 regulator-max-microvolt = <1704000>;
348 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
351 vreg_l16a_2p7: ldo16 {
352 regulator-min-microvolt = <2704000>;
353 regulator-max-microvolt = <2960000>;
354 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
357 vreg_l17a_3p0: ldo17 {
358 regulator-min-microvolt = <2856000>;
359 regulator-max-microvolt = <3008000>;
360 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
363 vreg_l18a_0p8: ldo18 {
364 regulator-min-microvolt = <880000>;
365 regulator-max-microvolt = <912000>;
366 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
371 compatible = "qcom,pm8150l-rpmh-regulators";
374 vdd-s1-supply = <&vph_pwr>;
375 vdd-s2-supply = <&vph_pwr>;
376 vdd-s3-supply = <&vph_pwr>;
377 vdd-s4-supply = <&vph_pwr>;
378 vdd-s5-supply = <&vph_pwr>;
379 vdd-s6-supply = <&vph_pwr>;
380 vdd-s7-supply = <&vph_pwr>;
381 vdd-s8-supply = <&vph_pwr>;
383 vdd-l1-l8-supply = <&vreg_s4a_1p8>;
384 vdd-l2-l3-supply = <&vreg_s8c_1p3>;
385 vdd-l4-l5-l6-supply = <&vreg_bob>;
386 vdd-l7-l11-supply = <&vreg_bob>;
387 vdd-l9-l10-supply = <&vreg_bob>;
389 vdd-bob-supply = <&vph_pwr>;
390 vdd-flash-supply = <&vreg_bob>;
391 vdd-rgb-supply = <&vreg_bob>;
394 regulator-min-microvolt = <3350000>;
395 regulator-max-microvolt = <4000000>;
396 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
397 regulator-allow-bypass;
400 vreg_s1c_1p1: smps1 {
401 regulator-min-microvolt = <1128000>;
402 regulator-max-microvolt = <1128000>;
403 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
406 vreg_s8c_1p3: smps8 {
407 regulator-min-microvolt = <1352000>;
408 regulator-max-microvolt = <1352000>;
409 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
413 regulator-min-microvolt = <1800000>;
414 regulator-max-microvolt = <1800000>;
415 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
419 regulator-min-microvolt = <1304000>;
420 regulator-max-microvolt = <1304000>;
421 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
425 regulator-min-microvolt = <1200000>;
426 regulator-max-microvolt = <1200000>;
427 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
431 regulator-min-microvolt = <1704000>;
432 regulator-max-microvolt = <2928000>;
433 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
437 regulator-min-microvolt = <1704000>;
438 regulator-max-microvolt = <2928000>;
439 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
443 regulator-min-microvolt = <1800000>;
444 regulator-max-microvolt = <2960000>;
445 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
446 regulator-allow-set-load;
447 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
448 RPMH_REGULATOR_MODE_HPM>;
452 regulator-min-microvolt = <2856000>;
453 regulator-max-microvolt = <3104000>;
454 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
458 regulator-min-microvolt = <1800000>;
459 regulator-max-microvolt = <1800000>;
460 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
464 regulator-min-microvolt = <2704000>;
465 regulator-max-microvolt = <2960000>;
466 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
467 regulator-allow-set-load;
468 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
469 RPMH_REGULATOR_MODE_HPM>;
472 vreg_l10c_3p3: ldo10 {
473 regulator-min-microvolt = <3000000>;
474 regulator-max-microvolt = <3312000>;
475 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
478 vreg_l11c_3p3: ldo11 {
479 regulator-min-microvolt = <3000000>;
480 regulator-max-microvolt = <3312000>;
481 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
485 /* PM8009 is not present on these boards, even if downstream sources suggest so. */
491 /* Qcom SMB1355 @ c */
492 /* Qcom SMB1390 @ 10 */
493 /* Qcom FSA4480 USB-C audio switch @ 43 */
496 compatible = "nxp,nxp-nci-i2c";
499 interrupt-parent = <&tlmm>;
500 interrupts = <47 IRQ_TYPE_EDGE_RISING>;
502 enable-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
503 firmware-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
510 /* AMS TCS3490 RGB+IR color sensor @ 72 */
516 /* Samsung touchscreen @ 48 */
520 gpio-line-names = "VOL_DOWN_N", /* GPIO_1 */
531 vol_down_n: vol-down-n-state {
539 supwc_pwr_en: supwc-pwr-en-state {
542 qcom,drive-strength = <1>;
550 gpio-line-names = "SNAPSHOT_N", /* GPIO_1 */
563 snapshot_n: snapshot-n-state {
571 focus_n: focus-n-state {
581 gpio-line-names = "TS_VDDIO_EN", /* GPIO_1 */
583 "MAIN_CAM_PWR_VMDR_EN",
594 main_cam_pwr_vmdr_en: main-cam-pwr-vmdr-en-state {
597 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
609 linux,code = <KEY_VOLUMEUP>;
622 vmmc-supply = <&vreg_l9c_2p9>;
623 vqmmc-supply = <&vreg_l6c_2p9>;
624 cd-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
633 gpio-reserved-ranges = <126 4>;
634 gpio-line-names = "NFC_ESE_SPI_MISO", /* GPIO_0 */
644 "TS_I2C_SCL", /* GPIO_10 */
654 "CCI_I2C_SCL1", /* GPIO_20 */
664 "CAM1_RST_N", /* GPIO_30 */
684 "WLAN_SW_CTRL", /* GPIO_50 */
704 "MSS_LTE_COXM_RXD", /* GPIO_70 */
714 "FP_RESET_N", /* GPIO_80 */
734 "USB_AUDIO_EN1", /* GPIO_100 */
744 "UIM1_CLK", /* GPIO_110 */
754 "BAROMETER_INT", /* GPIO_120 */
784 "LPASS_SLIMBUS_DATA0", /* GPIO_150 */
785 "LPASS_SLIMBUS_DATA1",
787 "BT_FM_SLIMBUS_DATA",
794 "SSC_SPI_1_CS_N", /* GPIO_160 */
795 "SSC_SENSOR_I2C_SDA",
796 "SSC_SENSOR_I2C_SCL",
804 "WL_CMD_DATA_CHAIN0", /* GPIO_170 */
806 "WL_CMD_DATA_CHAIN1",
810 main_cam_pwr_en: main-cam-pwr-en-state {
813 drive-strength = <2>;
818 chat_cam_pwr_en: chat-cam-pwr-en-state {
821 drive-strength = <2>;
826 rgbc_ir_pwr_en: rgbc-ir-pwr-en-state {
829 drive-strength = <2>;
834 sub_cam_pwr_en: sub-cam-pwr-en-state {
837 drive-strength = <2>;
846 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
847 &ufs_mem_hc { status = "disabled"; };
848 &ufs_mem_phy { status = "disabled"; };
855 dr_mode = "peripheral";
860 vdda-pll-supply = <&vreg_l5a_0p875>;
861 vdda33-supply = <&vreg_l2a_3p1>;
862 vdda18-supply = <&vreg_l12a_1p8>;
867 vdda-phy-supply = <&vreg_l3c_1p2>;
868 vdda-pll-supply = <&vreg_l18a_0p8>;