1 // SPDX-License-Identifier: GPL-2.0
3 * SDM845 LG G7 / V35 (judyln / judyp) common device tree
5 * Copyright (c) 2022, The Linux Foundation. All rights reserved.
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>
12 #include "sdm845.dtsi"
13 #include "pm8998.dtsi"
14 #include "pmi8998.dtsi"
16 /delete-node/ &adsp_mem;
17 /delete-node/ &cdsp_mem;
18 /delete-node/ &gpu_mem;
19 /delete-node/ &ipa_fw_mem;
20 /delete-node/ &mba_region;
21 /delete-node/ &mpss_region;
22 /delete-node/ &qseecom_mem;
23 /delete-node/ &rmtfs_mem;
24 /delete-node/ &slpi_mem;
25 /delete-node/ &spss_mem;
26 /delete-node/ &venus_mem;
27 /delete-node/ &wlan_msa_mem;
41 qseecom_mem: memory@b2000000 {
42 reg = <0 0xb2000000 0 0x1800000>;
46 gpu_mem: memory@8c415000 {
47 reg = <0 0x8c415000 0 0x2000>;
51 ipa_fw_mem: memory@8c400000 {
52 reg = <0 0x8c400000 0 0x10000>;
56 adsp_mem: memory@8c500000 {
57 reg = <0 0x8c500000 0 0x1e00000>;
61 wlan_msa_mem: memory@8e300000 {
62 reg = <0 0x8e300000 0 0x100000>;
66 mpss_region: memory@8e400000 {
67 reg = <0 0x8e400000 0 0x8900000>;
71 venus_mem: memory@96d00000 {
72 reg = <0 0x96d00000 0 0x500000>;
76 cdsp_mem: memory@97200000 {
77 reg = <0 0x97200000 0 0x800000>;
81 mba_region: memory@97a00000 {
82 reg = <0 0x97a00000 0 0x200000>;
86 slpi_mem: memory@97c00000 {
87 reg = <0 0x97c00000 0 0x1400000>;
91 spss_mem: memory@99000000 {
92 reg = <0 0x99000000 0 0x100000>;
96 /* Framebuffer region */
98 reg = <0x0 0x9d400000 0x0 0x2400000>;
102 /* rmtfs lower guard */
104 reg = <0 0xf0800000 0 0x1000>;
108 rmtfs_mem: memory@f0801000 {
109 compatible = "qcom,rmtfs-mem";
110 reg = <0 0xf0801000 0 0x200000>;
113 qcom,client-id = <1>;
114 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
117 /* rmtfs upper guard */
119 reg = <0 0xf0a01000 0 0x1000>;
125 compatible = "gpio-keys";
127 pinctrl-names = "default";
128 pinctrl-0 = <&vol_up_pin_a>;
130 label = "GPIO Buttons";
134 linux,code = <KEY_VOLUMEUP>;
135 gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
139 vph_pwr: vph-pwr-regulator {
140 compatible = "regulator-fixed";
141 regulator-name = "vph_pwr";
142 regulator-min-microvolt = <3700000>;
143 regulator-max-microvolt = <3700000>;
147 * Apparently RPMh does not provide support for PM8998 S4 because it
148 * is always-on; model it as a fixed regulator.
150 vreg_s4a_1p8: pm8998-smps4-regulator {
151 compatible = "regulator-fixed";
152 regulator-name = "vreg_s4a_1p8";
154 regulator-min-microvolt = <1800000>;
155 regulator-max-microvolt = <1800000>;
160 vin-supply = <&vph_pwr>;
170 compatible = "qcom,pm8998-rpmh-regulators";
173 vdd-s1-supply = <&vph_pwr>;
174 vdd-s2-supply = <&vph_pwr>;
175 vdd-s3-supply = <&vph_pwr>;
176 vdd-s4-supply = <&vph_pwr>;
177 vdd-s5-supply = <&vph_pwr>;
178 vdd-s6-supply = <&vph_pwr>;
179 vdd-s7-supply = <&vph_pwr>;
180 vdd-s8-supply = <&vph_pwr>;
181 vdd-s9-supply = <&vph_pwr>;
182 vdd-s10-supply = <&vph_pwr>;
183 vdd-s11-supply = <&vph_pwr>;
184 vdd-s12-supply = <&vph_pwr>;
185 vdd-s13-supply = <&vph_pwr>;
186 vdd-l1-l27-supply = <&vreg_s7a_1p025>;
187 vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
188 vdd-l3-l11-supply = <&vreg_s7a_1p025>;
189 vdd-l4-l5-supply = <&vreg_s7a_1p025>;
190 vdd-l6-supply = <&vph_pwr>;
191 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
192 vdd-l9-supply = <&vreg_bob>;
193 vdd-l10-l23-l25-supply = <&vreg_bob>;
194 vdd-l13-l19-l21-supply = <&vreg_bob>;
195 vdd-l16-l28-supply = <&vreg_bob>;
196 vdd-l18-l22-supply = <&vreg_bob>;
197 vdd-l20-l24-supply = <&vreg_bob>;
198 vdd-l26-supply = <&vreg_s3a_1p35>;
199 vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
201 vreg_s2a_1p125: smps2 {
202 regulator-min-microvolt = <1100000>;
203 regulator-max-microvolt = <1100000>;
206 vreg_s3a_1p35: smps3 {
207 regulator-min-microvolt = <1352000>;
208 regulator-max-microvolt = <1352000>;
211 vreg_s5a_2p04: smps5 {
212 regulator-min-microvolt = <1904000>;
213 regulator-max-microvolt = <2040000>;
216 vreg_s7a_1p025: smps7 {
217 regulator-min-microvolt = <900000>;
218 regulator-max-microvolt = <1028000>;
239 vreg_l1a_0p875: ldo1 {
240 regulator-min-microvolt = <880000>;
241 regulator-max-microvolt = <880000>;
242 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
247 regulator-min-microvolt = <1200000>;
248 regulator-max-microvolt = <1200000>;
249 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
254 regulator-min-microvolt = <1000000>;
255 regulator-max-microvolt = <1000000>;
256 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
263 regulator-min-microvolt = <800000>;
264 regulator-max-microvolt = <800000>;
265 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
270 regulator-min-microvolt = <1856000>;
271 regulator-max-microvolt = <1856000>;
272 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
276 regulator-min-microvolt = <1800000>;
277 regulator-max-microvolt = <1800000>;
278 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
282 regulator-min-microvolt = <1200000>;
283 regulator-max-microvolt = <1248000>;
284 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
288 regulator-min-microvolt = <1704000>;
289 regulator-max-microvolt = <2928000>;
290 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
293 vreg_l10a_1p8: ldo10 {
294 regulator-min-microvolt = <1704000>;
295 regulator-max-microvolt = <2928000>;
296 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
299 vreg_l11a_1p0: ldo11 {
300 regulator-min-microvolt = <1000000>;
301 regulator-max-microvolt = <1048000>;
302 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
312 vreg_l12a_1p8: ldo12 {
313 regulator-min-microvolt = <1800000>;
314 regulator-max-microvolt = <1800000>;
315 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
319 vreg_l13a_2p95: ldo13 {
320 regulator-min-microvolt = <1800000>;
321 regulator-max-microvolt = <2960000>;
322 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
325 vreg_l14a_1p88: ldo14 {
326 regulator-min-microvolt = <1800000>;
327 regulator-max-microvolt = <1880000>;
328 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
331 vreg_l15a_1p8: ldo15 {
332 regulator-min-microvolt = <1800000>;
333 regulator-max-microvolt = <1800000>;
334 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
337 vreg_l17a_1p3: ldo17 {
338 regulator-min-microvolt = <1304000>;
339 regulator-max-microvolt = <1304000>;
340 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
343 vreg_l18a_2p7: ldo18 {
344 regulator-min-microvolt = <2704000>;
345 regulator-max-microvolt = <2960000>;
346 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
349 vreg_l20a_2p95: ldo20 {
350 regulator-min-microvolt = <2704000>;
351 regulator-max-microvolt = <2960000>;
352 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
355 vreg_l21a_2p95: ldo21 {
356 regulator-min-microvolt = <2704000>;
357 regulator-max-microvolt = <2960000>;
358 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
361 vreg_l22a_2p85: ldo22 {
362 regulator-min-microvolt = <2800000>;
363 regulator-max-microvolt = <2800000>;
364 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
367 vreg_l23a_3p3: ldo23 {
368 regulator-min-microvolt = <3000000>;
369 regulator-max-microvolt = <3312000>;
370 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
374 vreg_l24a_3p075: ldo24 {
375 regulator-min-microvolt = <3088000>;
376 regulator-max-microvolt = <3088000>;
377 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
380 vreg_l25a_3p3: ldo25 {
381 regulator-min-microvolt = <3000000>;
382 regulator-max-microvolt = <3312000>;
383 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
399 vreg_l26a_1p2: ldo26 {
400 regulator-min-microvolt = <1200000>;
401 regulator-max-microvolt = <1200000>;
402 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
405 vreg_l28a_3p0: ldo28 {
406 regulator-min-microvolt = <1800000>;
407 regulator-max-microvolt = <1800000>;
408 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
411 vreg_lvs1a_1p8: lvs1 {
412 regulator-min-microvolt = <1800000>;
413 regulator-max-microvolt = <1800000>;
416 vreg_lvs2a_1p8: lvs2 {
417 regulator-min-microvolt = <1800000>;
418 regulator-max-microvolt = <1800000>;
423 compatible = "qcom,pmi8998-rpmh-regulators";
426 vdd-bob-supply = <&vph_pwr>;
429 regulator-min-microvolt = <3312000>;
430 regulator-max-microvolt = <3600000>;
431 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
432 regulator-allow-bypass;
437 compatible = "qcom,pm8005-rpmh-regulators";
440 vdd-s1-supply = <&vph_pwr>;
441 vdd-s2-supply = <&vph_pwr>;
442 vdd-s3-supply = <&vph_pwr>;
443 vdd-s4-supply = <&vph_pwr>;
445 vreg_s3c_0p6: smps3 {
446 regulator-min-microvolt = <600000>;
447 regulator-max-microvolt = <600000>;
461 protected-clocks = <GCC_QSPI_CORE_CLK>,
462 <GCC_QSPI_CORE_CLK_SRC>,
463 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
464 <GCC_LPASS_Q6_AXI_CLK>,
465 <GCC_LPASS_SWAY_CLK>;
472 memory-region = <&gpu_mem>;
477 qcom,gsi-loader = "modem";
486 linux,code = <KEY_VOLUMEDOWN>;
493 cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
495 pinctrl-names = "default";
496 pinctrl-0 = <&sdc2_clk &sdc2_cmd &sdc2_data &sd_card_det_n>;
498 vmmc-supply = <&vreg_l21a_2p95>;
499 vqmmc-supply = <&vddpx_2>;
503 * UFS works partially and only with clk_ignore_unused.
504 * Sometimes it crashes with I/O errors.
509 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
511 vcc-supply = <&vreg_l20a_2p95>;
512 vcc-max-microamp = <600000>;
518 vdda-phy-supply = <&vdda_ufs1_core>;
519 vdda-pll-supply = <&vdda_ufs1_1p2>;
527 /* TODO: these devices have usb id pin */
528 dr_mode = "peripheral";
534 vdd-supply = <&vdda_usb1_ss_core>;
535 vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
536 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
538 qcom,imp-res-offset-value = <8>;
539 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
540 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
541 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
547 vdda-phy-supply = <&vdda_usb1_ss_1p2>;
548 vdda-pll-supply = <&vdda_usb1_ss_core>;
551 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
554 gpio-reserved-ranges = <28 4>, <81 4>;
556 sdc2_clk: sdc2-clk-state {
561 * It seems that mmc_test reports errors if drive
562 * strength is not 16 on clk, cmd, and data pins.
564 * TODO: copy-pasted from mtp, try other values
567 drive-strength = <16>;
570 sdc2_cmd: sdc2-cmd-state {
573 drive-strength = <16>;
576 sdc2_data: sdc2-data-state {
579 drive-strength = <16>;
582 sd_card_det_n: sd-card-det-n-state {
590 vol_up_pin_a: vol-up-active-state {
595 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;