1 // SPDX-License-Identifier: GPL-2.0
3 * SDM845 MTP board device tree source
5 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
12 #include "sdm845.dtsi"
15 model = "Qualcomm Technologies, Inc. SDM845 MTP";
16 compatible = "qcom,sdm845-mtp", "qcom,sdm845";
23 stdout-path = "serial0:115200n8";
26 vph_pwr: vph-pwr-regulator {
27 compatible = "regulator-fixed";
28 regulator-name = "vph_pwr";
29 regulator-min-microvolt = <3700000>;
30 regulator-max-microvolt = <3700000>;
34 * Apparently RPMh does not provide support for PM8998 S4 because it
35 * is always-on; model it as a fixed regulator.
37 vreg_s4a_1p8: pm8998-smps4 {
38 compatible = "regulator-fixed";
39 regulator-name = "vreg_s4a_1p8";
41 regulator-min-microvolt = <1800000>;
42 regulator-max-microvolt = <1800000>;
47 vin-supply = <&vph_pwr>;
53 firmware-name = "qcom/sdm845/adsp.mdt";
57 pm8998-rpmh-regulators {
58 compatible = "qcom,pm8998-rpmh-regulators";
61 vdd-s1-supply = <&vph_pwr>;
62 vdd-s2-supply = <&vph_pwr>;
63 vdd-s3-supply = <&vph_pwr>;
64 vdd-s4-supply = <&vph_pwr>;
65 vdd-s5-supply = <&vph_pwr>;
66 vdd-s6-supply = <&vph_pwr>;
67 vdd-s7-supply = <&vph_pwr>;
68 vdd-s8-supply = <&vph_pwr>;
69 vdd-s9-supply = <&vph_pwr>;
70 vdd-s10-supply = <&vph_pwr>;
71 vdd-s11-supply = <&vph_pwr>;
72 vdd-s12-supply = <&vph_pwr>;
73 vdd-s13-supply = <&vph_pwr>;
74 vdd-l1-l27-supply = <&vreg_s7a_1p025>;
75 vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
76 vdd-l3-l11-supply = <&vreg_s7a_1p025>;
77 vdd-l4-l5-supply = <&vreg_s7a_1p025>;
78 vdd-l6-supply = <&vph_pwr>;
79 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
80 vdd-l9-supply = <&vreg_bob>;
81 vdd-l10-l23-l25-supply = <&vreg_bob>;
82 vdd-l13-l19-l21-supply = <&vreg_bob>;
83 vdd-l16-l28-supply = <&vreg_bob>;
84 vdd-l18-l22-supply = <&vreg_bob>;
85 vdd-l20-l24-supply = <&vreg_bob>;
86 vdd-l26-supply = <&vreg_s3a_1p35>;
87 vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
89 vreg_s2a_1p125: smps2 {
90 regulator-min-microvolt = <1100000>;
91 regulator-max-microvolt = <1100000>;
94 vreg_s3a_1p35: smps3 {
95 regulator-min-microvolt = <1352000>;
96 regulator-max-microvolt = <1352000>;
99 vreg_s5a_2p04: smps5 {
100 regulator-min-microvolt = <1904000>;
101 regulator-max-microvolt = <2040000>;
104 vreg_s7a_1p025: smps7 {
105 regulator-min-microvolt = <900000>;
106 regulator-max-microvolt = <1028000>;
127 vreg_l1a_0p875: ldo1 {
128 regulator-min-microvolt = <880000>;
129 regulator-max-microvolt = <880000>;
130 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
135 regulator-min-microvolt = <1200000>;
136 regulator-max-microvolt = <1200000>;
137 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
142 regulator-min-microvolt = <1000000>;
143 regulator-max-microvolt = <1000000>;
144 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
151 regulator-min-microvolt = <800000>;
152 regulator-max-microvolt = <800000>;
153 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
158 regulator-min-microvolt = <1856000>;
159 regulator-max-microvolt = <1856000>;
160 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
164 regulator-min-microvolt = <1800000>;
165 regulator-max-microvolt = <1800000>;
166 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
170 regulator-min-microvolt = <1200000>;
171 regulator-max-microvolt = <1248000>;
172 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
176 regulator-min-microvolt = <1704000>;
177 regulator-max-microvolt = <2928000>;
178 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
181 vreg_l10a_1p8: ldo10 {
182 regulator-min-microvolt = <1704000>;
183 regulator-max-microvolt = <2928000>;
184 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
187 vreg_l11a_1p0: ldo11 {
188 regulator-min-microvolt = <1000000>;
189 regulator-max-microvolt = <1048000>;
190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
200 vreg_l12a_1p8: ldo12 {
201 regulator-min-microvolt = <1800000>;
202 regulator-max-microvolt = <1800000>;
203 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
207 vreg_l13a_2p95: ldo13 {
208 regulator-min-microvolt = <1800000>;
209 regulator-max-microvolt = <2960000>;
210 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
213 vreg_l14a_1p88: ldo14 {
214 regulator-min-microvolt = <1800000>;
215 regulator-max-microvolt = <1800000>;
216 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
219 vreg_l15a_1p8: ldo15 {
220 regulator-min-microvolt = <1800000>;
221 regulator-max-microvolt = <1800000>;
222 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
225 vreg_l16a_2p7: ldo16 {
226 regulator-min-microvolt = <2704000>;
227 regulator-max-microvolt = <2704000>;
228 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
231 vreg_l17a_1p3: ldo17 {
232 regulator-min-microvolt = <1304000>;
233 regulator-max-microvolt = <1304000>;
234 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
237 vreg_l18a_2p7: ldo18 {
238 regulator-min-microvolt = <2704000>;
239 regulator-max-microvolt = <2960000>;
240 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
243 vreg_l19a_3p0: ldo19 {
244 regulator-min-microvolt = <2856000>;
245 regulator-max-microvolt = <3104000>;
246 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
249 vreg_l20a_2p95: ldo20 {
250 regulator-min-microvolt = <2704000>;
251 regulator-max-microvolt = <2960000>;
252 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
255 vreg_l21a_2p95: ldo21 {
256 regulator-min-microvolt = <2704000>;
257 regulator-max-microvolt = <2960000>;
258 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
261 vreg_l22a_2p85: ldo22 {
262 regulator-min-microvolt = <2864000>;
263 regulator-max-microvolt = <3312000>;
264 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
267 vreg_l23a_3p3: ldo23 {
268 regulator-min-microvolt = <3000000>;
269 regulator-max-microvolt = <3312000>;
270 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
274 vreg_l24a_3p075: ldo24 {
275 regulator-min-microvolt = <3088000>;
276 regulator-max-microvolt = <3088000>;
277 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
280 vreg_l25a_3p3: ldo25 {
281 regulator-min-microvolt = <3300000>;
282 regulator-max-microvolt = <3312000>;
283 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
299 vreg_l26a_1p2: ldo26 {
300 regulator-min-microvolt = <1200000>;
301 regulator-max-microvolt = <1200000>;
302 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
305 vreg_l28a_3p0: ldo28 {
306 regulator-min-microvolt = <2856000>;
307 regulator-max-microvolt = <3008000>;
308 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
311 vreg_lvs1a_1p8: lvs1 {
312 regulator-min-microvolt = <1800000>;
313 regulator-max-microvolt = <1800000>;
316 vreg_lvs2a_1p8: lvs2 {
317 regulator-min-microvolt = <1800000>;
318 regulator-max-microvolt = <1800000>;
322 pmi8998-rpmh-regulators {
323 compatible = "qcom,pmi8998-rpmh-regulators";
326 vdd-bob-supply = <&vph_pwr>;
329 regulator-min-microvolt = <3312000>;
330 regulator-max-microvolt = <3600000>;
331 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
332 regulator-allow-bypass;
336 pm8005-rpmh-regulators {
337 compatible = "qcom,pm8005-rpmh-regulators";
340 vdd-s1-supply = <&vph_pwr>;
341 vdd-s2-supply = <&vph_pwr>;
342 vdd-s3-supply = <&vph_pwr>;
343 vdd-s4-supply = <&vph_pwr>;
345 vreg_s3c_0p6: smps3 {
346 regulator-min-microvolt = <600000>;
347 regulator-max-microvolt = <600000>;
354 firmware-name = "qcom/sdm845/cdsp.mdt";
359 vdda-supply = <&vdda_mipi_dsi0_1p2>;
364 #address-cells = <1>;
370 remote-endpoint = <&truly_in_0>;
371 data-lanes = <0 1 2 3>;
377 compatible = "truly,nt35597-2K-display";
379 vdda-supply = <&vreg_l14a_1p88>;
381 reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
382 mode-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
385 #address-cells = <1>;
390 truly_in_0: endpoint {
391 remote-endpoint = <&dsi0_out>;
397 truly_in_1: endpoint {
398 remote-endpoint = <&dsi1_out>;
407 vdds-supply = <&vdda_mipi_dsi0_pll>;
412 vdda-supply = <&vdda_mipi_dsi1_1p2>;
419 remote-endpoint = <&truly_in_1>;
420 data-lanes = <0 1 2 3>;
428 vdds-supply = <&vdda_mipi_dsi1_pll>;
432 protected-clocks = <GCC_QSPI_CORE_CLK>,
433 <GCC_QSPI_CORE_CLK_SRC>,
434 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
435 <GCC_LPASS_Q6_AXI_CLK>,
436 <GCC_LPASS_SWAY_CLK>;
441 memory-region = <&gpu_mem>;
442 firmware-name = "qcom/sdm845/a630_zap.mbn";
448 clock-frequency = <400000>;
461 firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mbn";
471 pinctrl-names = "default";
472 pinctrl-0 = <&sdc2_clk &sdc2_cmd &sdc2_data &sd_card_det_n>;
474 vmmc-supply = <&vreg_l21a_2p95>;
475 vqmmc-supply = <&vddpx_2>;
477 cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
487 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
489 vcc-supply = <&vreg_l20a_2p95>;
490 vcc-max-microamp = <600000>;
496 vdda-phy-supply = <&vdda_ufs1_core>;
497 vdda-pll-supply = <&vdda_ufs1_1p2>;
505 /* Until we have Type C hooked up we'll force this as peripheral. */
506 dr_mode = "peripheral";
512 vdd-supply = <&vdda_usb1_ss_core>;
513 vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
514 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
516 qcom,imp-res-offset-value = <8>;
517 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
518 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
519 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
525 vdda-phy-supply = <&vdda_usb1_ss_1p2>;
526 vdda-pll-supply = <&vdda_usb1_ss_core>;
535 * Though the USB block on SDM845 can support host, there's no vbus
536 * signal for this port on MTP. Thus (unless you have a non-compliant
537 * hub that works without vbus) the only sensible thing is to force
540 dr_mode = "peripheral";
546 vdd-supply = <&vdda_usb2_ss_core>;
547 vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
548 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
550 qcom,imp-res-offset-value = <8>;
551 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
557 vdda-phy-supply = <&vdda_usb2_ss_1p2>;
558 vdda-pll-supply = <&vdda_usb2_ss_core>;
563 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
564 vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
565 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
566 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
569 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
573 pins = "gpio55", "gpio56";
574 drive-strength = <2>;
582 drive-strength = <2>;
588 drive-strength = <2>;
594 gpio-reserved-ranges = <0 4>, <81 4>;
602 * It seems that mmc_test reports errors if drive
603 * strength is not 16 on clk, cmd, and data pins.
605 drive-strength = <16>;
613 drive-strength = <16>;
617 sdc2_data: sdc2-data {
621 drive-strength = <16>;
625 sd_card_det_n: sd-card-det-n {