1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (C) 2021, Microsoft Corporation
8 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9 #include <dt-bindings/gpio/gpio.h>
10 #include "sm8150.dtsi"
11 #include "pm8150.dtsi"
12 #include "pm8150b.dtsi"
13 #include "pm8150l.dtsi"
16 model = "Microsoft Surface Duo";
17 compatible = "microsoft,surface-duo", "qcom,sm8150";
24 stdout-path = "serial0:115200n8";
27 vph_pwr: vph-pwr-regulator {
28 compatible = "regulator-fixed";
29 regulator-name = "vph_pwr";
30 regulator-min-microvolt = <3700000>;
31 regulator-max-microvolt = <3700000>;
35 * Apparently RPMh does not provide support for PM8150 S4 because it
36 * is always-on; model it as a fixed regulator.
38 vreg_s4a_1p8: pm8150-s4 {
39 compatible = "regulator-fixed";
40 regulator-name = "vreg_s4a_1p8";
42 regulator-min-microvolt = <1800000>;
43 regulator-max-microvolt = <1800000>;
48 vin-supply = <&vph_pwr>;
52 compatible = "gpio-keys";
56 gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
57 linux,code = <KEY_VOLUMEUP>;
63 pm8150-rpmh-regulators {
64 compatible = "qcom,pm8150-rpmh-regulators";
67 vdd-s1-supply = <&vph_pwr>;
68 vdd-s2-supply = <&vph_pwr>;
69 vdd-s3-supply = <&vph_pwr>;
70 vdd-s4-supply = <&vph_pwr>;
71 vdd-s5-supply = <&vph_pwr>;
72 vdd-s6-supply = <&vph_pwr>;
73 vdd-s7-supply = <&vph_pwr>;
74 vdd-s8-supply = <&vph_pwr>;
75 vdd-s9-supply = <&vph_pwr>;
76 vdd-s10-supply = <&vph_pwr>;
78 vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
79 vdd-l2-l10-supply = <&vreg_bob>;
80 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
81 vdd-l6-l9-supply = <&vreg_s8c_1p3>;
82 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;
83 vdd-l13-l16-l17-supply = <&vreg_bob>;
86 regulator-min-microvolt = <1904000>;
87 regulator-max-microvolt = <2000000>;
91 regulator-min-microvolt = <920000>;
92 regulator-max-microvolt = <1128000>;
97 regulator-min-microvolt = <752000>;
98 regulator-max-microvolt = <752000>;
99 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
105 regulator-min-microvolt = <3072000>;
106 regulator-max-microvolt = <3072000>;
107 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
111 regulator-min-microvolt = <480000>;
112 regulator-max-microvolt = <932000>;
113 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
127 vdda_pll_hv_cc_ebi01:
128 vdda_pll_hv_cc_ebi23:
133 vdda_usb_ss_dp_core_1:
134 vdda_usb_ss_dp_core_2:
137 vreg_l5a_0p875: ldo5 {
138 regulator-min-microvolt = <880000>;
139 regulator-max-microvolt = <880000>;
140 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
144 regulator-min-microvolt = <1200000>;
145 regulator-max-microvolt = <1200000>;
146 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
150 regulator-min-microvolt = <1800000>;
151 regulator-max-microvolt = <1800000>;
152 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
157 regulator-min-microvolt = <1200000>;
158 regulator-max-microvolt = <1200000>;
159 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
162 vreg_l10a_2p5: ldo10 {
163 regulator-min-microvolt = <2504000>;
164 regulator-max-microvolt = <2960000>;
165 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
168 vreg_l11a_0p8: ldo11 {
169 regulator-min-microvolt = <800000>;
170 regulator-max-microvolt = <800000>;
171 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
181 vreg_l12a_1p8: ldo12 {
182 regulator-min-microvolt = <1800000>;
183 regulator-max-microvolt = <1800000>;
184 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
187 vreg_l13a_2p7: ldo13 {
188 regulator-min-microvolt = <2704000>;
189 regulator-max-microvolt = <2704000>;
190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
193 vreg_l14a_1p8: ldo14 {
194 regulator-min-microvolt = <1800000>;
195 regulator-max-microvolt = <1880000>;
196 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
199 vreg_l15a_1p7: ldo15 {
200 regulator-min-microvolt = <1704000>;
201 regulator-max-microvolt = <1704000>;
202 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
205 vreg_l16a_2p7: ldo16 {
206 regulator-min-microvolt = <2704000>;
207 regulator-max-microvolt = <2960000>;
208 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
211 vreg_l17a_3p0: ldo17 {
212 regulator-min-microvolt = <2856000>;
213 regulator-max-microvolt = <3008000>;
214 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
218 pm8150l-rpmh-regulators {
219 compatible = "qcom,pm8150l-rpmh-regulators";
222 vdd-s1-supply = <&vph_pwr>;
223 vdd-s2-supply = <&vph_pwr>;
224 vdd-s3-supply = <&vph_pwr>;
225 vdd-s4-supply = <&vph_pwr>;
226 vdd-s5-supply = <&vph_pwr>;
227 vdd-s6-supply = <&vph_pwr>;
228 vdd-s7-supply = <&vph_pwr>;
229 vdd-s8-supply = <&vph_pwr>;
231 vdd-l1-l8-supply = <&vreg_s4a_1p8>;
232 vdd-l2-l3-supply = <&vreg_s8c_1p3>;
233 vdd-l4-l5-l6-supply = <&vreg_bob>;
234 vdd-l7-l11-supply = <&vreg_bob>;
235 vdd-l9-l10-supply = <&vreg_bob>;
237 vdd-bob-supply = <&vph_pwr>;
238 vdd-flash-supply = <&vreg_bob>;
239 vdd-rgb-supply = <&vreg_bob>;
242 regulator-min-microvolt = <3008000>;
243 regulator-max-microvolt = <4000000>;
244 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
245 regulator-allow-bypass;
248 vreg_s8c_1p3: smps8 {
249 regulator-min-microvolt = <1352000>;
250 regulator-max-microvolt = <1352000>;
254 regulator-min-microvolt = <1800000>;
255 regulator-max-microvolt = <1800000>;
256 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
262 regulator-min-microvolt = <1304000>;
263 regulator-max-microvolt = <1304000>;
264 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
274 regulator-min-microvolt = <1200000>;
275 regulator-max-microvolt = <1200000>;
276 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
281 regulator-min-microvolt = <1704000>;
282 regulator-max-microvolt = <2928000>;
283 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>;
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <2960000>;
297 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
301 regulator-min-microvolt = <2856000>;
302 regulator-max-microvolt = <3104000>;
303 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
307 regulator-min-microvolt = <1800000>;
308 regulator-max-microvolt = <1800000>;
309 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
313 regulator-min-microvolt = <2704000>;
314 regulator-max-microvolt = <2960000>;
315 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
318 vreg_l10c_3p3: ldo10 {
319 regulator-min-microvolt = <3000000>;
320 regulator-max-microvolt = <3312000>;
321 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
324 vreg_l11c_3p3: ldo11 {
325 regulator-min-microvolt = <3000000>;
326 regulator-max-microvolt = <3312000>;
327 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
331 pm8009-rpmh-regulators {
332 compatible = "qcom,pm8009-rpmh-regulators";
335 vdd-s1-supply = <&vph_pwr>;
336 vdd-s2-supply = <&vreg_bob>;
338 vdd-l2-supply = <&vreg_s8c_1p3>;
339 vdd-l5-l6-supply = <&vreg_bob>;
342 regulator-min-microvolt = <1200000>;
343 regulator-max-microvolt = <1200000>;
344 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
347 vreg_l5f_2p85: ldo5 {
348 regulator-min-microvolt = <2800000>;
349 regulator-max-microvolt = <2800000>;
350 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
353 vreg_l6f_2p85: ldo6 {
354 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
355 regulator-min-microvolt = <2856000>;
356 regulator-max-microvolt = <2856000>;
363 clock-frequency = <400000>;
366 compatible = "ti,bq27742";
371 compatible = "dlg,da7280";
373 interrupts-extended = <&tlmm 42 IRQ_TYPE_LEVEL_LOW>;
374 pinctrl-names = "da7280_default";
375 pinctrl-0 = <&da7280_intr_default>;
377 dlg,actuator-type = "LRA";
378 dlg,dlg,const-op-mode = <1>;
379 dlg,dlg,periodic-op-mode = <1>;
380 dlg,nom-microvolt = <2000000>;
381 dlg,abs-max-microvolt = <2000000>;
382 dlg,imax-microamp = <129000>;
383 dlg,resonant-freq-hz = <180>;
384 dlg,impd-micro-ohms = <14300000>;
385 dlg,freq-track-enable;
386 dlg,bemf-sens-enable;
388 0x06 0x08 0x10 0x11 0x12 0x13 0x14 0x15 0x1c 0x2a
389 0x33 0x3c 0x42 0x4b 0x4c 0x4e 0x17 0x19 0x27 0x29
390 0x17 0x19 0x03 0x84 0x5e 0x04 0x08 0x84 0x5d 0x01
391 0x84 0x5e 0x02 0x00 0xa4 0x5d 0x03 0x84 0x5e 0x06
392 0x08 0x84 0x5d 0x05 0x84 0x5d 0x06 0x84 0x5e 0x08
393 0x84 0x5e 0x05 0x8c 0x5e 0x24 0x84 0x5f 0x10 0x84
394 0x5e 0x05 0x84 0x5e 0x08 0x84 0x5f 0x01 0x8c 0x5e
395 0x04 0x84 0x5e 0x08 0x84 0x5f 0x11 0x19 0x88 0x00
396 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
397 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
402 /* MAX34417 @ 0x1c */
407 clock-frequency = <400000>;
415 clock-frequency = <400000>;
418 compatible = "ti,bq27742";
425 clock-frequency = <400000>;
427 /* MAX34417 @ 0x12 */
428 /* MAX34417 @ 0x1a */
429 /* MAX34417 @ 0x1e */
438 compatible = "qcom,pm8941-resin";
439 interrupts = <0x0 0x8 0x1 IRQ_TYPE_EDGE_BOTH>;
442 linux,code = <KEY_VOLUMEDOWN>;
460 firmware-name = "qcom/sm8150/microsoft/adsp.mdt";
465 firmware-name = "qcom/sm8150/microsoft/cdsp.mdt";
470 firmware-name = "qcom/sm8150/microsoft/modem.mdt";
475 firmware-name = "qcom/sm8150/microsoft/slpi.mdt";
479 gpio-reserved-ranges = <126 4>;
481 da7280_intr_default: da7280-intr-default {
496 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
498 vcc-supply = <&vreg_l10a_2p5>;
499 vcc-max-microamp = <750000>;
500 vccq-supply = <&vreg_l9a_1p2>;
501 vccq-max-microamp = <700000>;
502 vccq2-supply = <&vreg_s4a_1p8>;
503 vccq2-max-microamp = <750000>;
509 vdda-phy-supply = <&vdda_ufs_2ln_core_1>;
510 vdda-max-microamp = <90200>;
511 vdda-pll-supply = <&vreg_l3c_1p2>;
512 vdda-pll-max-microamp = <19000>;
517 vdda-pll-supply = <&vdd_usb_hs_core>;
518 vdda33-supply = <&vdda_usb_hs_3p1>;
519 vdda18-supply = <&vdda_usb_hs_1p8>;
524 vdda-phy-supply = <&vreg_l3c_1p2>;
525 vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
533 dr_mode = "peripheral";
539 vdd-0.8-cx-mx-supply = <&vdda_wcss_pll>;
540 vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
541 vdd-1.3-rfa-supply = <&vdda_wcss_adcdac_1>;
542 vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;