Skip to content

Commit 1d26338

Browse files
committed
Add MediaTek MT6357 PMIC support
Merge series from Alexandre Mergnat <amergnat@baylibre.com>: This adds regulator support for the MT6357 PMIC.
2 parents ba62319 + dafc7cd commit 1d26338

File tree

5 files changed

+808
-0
lines changed

5 files changed

+808
-0
lines changed
Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,294 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/regulator/mediatek,mt6357-regulator.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MediaTek MT6357 Regulators
8+
9+
maintainers:
10+
- Chen Zhong <chen.zhong@mediatek.com>
11+
- Fabien Parent <fabien.parent@linaro.org>
12+
- Alexandre Mergnat <amergnat@baylibre.com>
13+
14+
description: |
15+
The MT6357 PMIC provides 5 BUCK and 29 LDO.
16+
Regulators and nodes are named according to the regulator type:
17+
- buck-<name>
18+
- ldo-<name>.
19+
MT6357 regulators node should be sub node of the MT6397 MFD node.
20+
21+
patternProperties:
22+
"^buck-v(core|modem|pa|proc|s1)$":
23+
type: object
24+
$ref: regulator.yaml#
25+
unevaluatedProperties: false
26+
description:
27+
Properties for single BUCK regulator.
28+
29+
required:
30+
- regulator-name
31+
- regulator-min-microvolt
32+
- regulator-max-microvolt
33+
34+
"^ldo-v(camio18|aud28|aux18|io18|io28|rf12|rf18|cn18|cn28|fe28)$":
35+
type: object
36+
$ref: fixed-regulator.yaml#
37+
unevaluatedProperties: false
38+
description:
39+
Properties for single fixed LDO regulator.
40+
41+
required:
42+
- regulator-name
43+
- regulator-min-microvolt
44+
- regulator-max-microvolt
45+
46+
"^ldo-v(efuse|ibr|ldo28|mch|cama|camd|cn33-bt|cn33-wifi)$":
47+
type: object
48+
$ref: regulator.yaml#
49+
unevaluatedProperties: false
50+
description:
51+
Properties for single LDO regulator.
52+
53+
required:
54+
- regulator-name
55+
- regulator-min-microvolt
56+
- regulator-max-microvolt
57+
58+
"^ldo-v(xo22|emc|mc|sim1|sim2|sram-others|sram-proc|dram|usb33)$":
59+
type: object
60+
$ref: regulator.yaml#
61+
unevaluatedProperties: false
62+
description:
63+
Properties for single LDO regulator.
64+
65+
required:
66+
- regulator-name
67+
- regulator-min-microvolt
68+
- regulator-max-microvolt
69+
70+
additionalProperties: false
71+
72+
examples:
73+
- |
74+
pmic {
75+
regulators {
76+
mt6357_vproc_reg: buck-vproc {
77+
regulator-name = "vproc";
78+
regulator-min-microvolt = <518750>;
79+
regulator-max-microvolt = <1312500>;
80+
regulator-ramp-delay = <6250>;
81+
regulator-enable-ramp-delay = <220>;
82+
regulator-always-on;
83+
};
84+
mt6357_vcore_reg: buck-vcore {
85+
regulator-name = "vcore";
86+
regulator-min-microvolt = <518750>;
87+
regulator-max-microvolt = <1312500>;
88+
regulator-ramp-delay = <6250>;
89+
regulator-enable-ramp-delay = <220>;
90+
regulator-always-on;
91+
};
92+
mt6357_vmodem_reg: buck-vmodem {
93+
regulator-name = "vmodem";
94+
regulator-min-microvolt = <500000>;
95+
regulator-max-microvolt = <1193750>;
96+
regulator-ramp-delay = <6250>;
97+
regulator-enable-ramp-delay = <220>;
98+
};
99+
mt6357_vs1_reg: buck-vs1 {
100+
regulator-name = "vs1";
101+
regulator-min-microvolt = <1200000>;
102+
regulator-max-microvolt = <2200000>;
103+
regulator-ramp-delay = <12500>;
104+
regulator-enable-ramp-delay = <220>;
105+
regulator-always-on;
106+
};
107+
mt6357_vpa_reg: buck-vpa {
108+
regulator-name = "vpa";
109+
regulator-min-microvolt = <500000>;
110+
regulator-max-microvolt = <3650000>;
111+
regulator-ramp-delay = <50000>;
112+
regulator-enable-ramp-delay = <220>;
113+
};
114+
mt6357_vfe28_reg: ldo-vfe28 {
115+
compatible = "regulator-fixed";
116+
regulator-name = "vfe28";
117+
regulator-min-microvolt = <2800000>;
118+
regulator-max-microvolt = <2800000>;
119+
regulator-enable-ramp-delay = <264>;
120+
};
121+
mt6357_vxo22_reg: ldo-vxo22 {
122+
regulator-name = "vxo22";
123+
regulator-min-microvolt = <2200000>;
124+
regulator-max-microvolt = <2400000>;
125+
regulator-enable-ramp-delay = <110>;
126+
};
127+
mt6357_vrf18_reg: ldo-vrf18 {
128+
compatible = "regulator-fixed";
129+
regulator-name = "vrf18";
130+
regulator-min-microvolt = <1800000>;
131+
regulator-max-microvolt = <1800000>;
132+
regulator-enable-ramp-delay = <110>;
133+
};
134+
mt6357_vrf12_reg: ldo-vrf12 {
135+
compatible = "regulator-fixed";
136+
regulator-name = "vrf12";
137+
regulator-min-microvolt = <1200000>;
138+
regulator-max-microvolt = <1200000>;
139+
regulator-enable-ramp-delay = <110>;
140+
};
141+
mt6357_vefuse_reg: ldo-vefuse {
142+
regulator-name = "vefuse";
143+
regulator-min-microvolt = <1200000>;
144+
regulator-max-microvolt = <3300000>;
145+
regulator-enable-ramp-delay = <264>;
146+
};
147+
mt6357_vcn33_bt_reg: ldo-vcn33-bt {
148+
regulator-name = "vcn33-bt";
149+
regulator-min-microvolt = <3300000>;
150+
regulator-max-microvolt = <3500000>;
151+
regulator-enable-ramp-delay = <264>;
152+
};
153+
mt6357_vcn33_wifi_reg: ldo-vcn33-wifi {
154+
regulator-name = "vcn33-wifi";
155+
regulator-min-microvolt = <3300000>;
156+
regulator-max-microvolt = <3500000>;
157+
regulator-enable-ramp-delay = <264>;
158+
};
159+
mt6357_vcn28_reg: ldo-vcn28 {
160+
compatible = "regulator-fixed";
161+
regulator-name = "vcn28";
162+
regulator-min-microvolt = <2800000>;
163+
regulator-max-microvolt = <2800000>;
164+
regulator-enable-ramp-delay = <264>;
165+
};
166+
mt6357_vcn18_reg: ldo-vcn18 {
167+
compatible = "regulator-fixed";
168+
regulator-name = "vcn18";
169+
regulator-min-microvolt = <1800000>;
170+
regulator-max-microvolt = <1800000>;
171+
regulator-enable-ramp-delay = <264>;
172+
};
173+
mt6357_vcama_reg: ldo-vcama {
174+
regulator-name = "vcama";
175+
regulator-min-microvolt = <2500000>;
176+
regulator-max-microvolt = <2800000>;
177+
regulator-enable-ramp-delay = <264>;
178+
};
179+
mt6357_vcamd_reg: ldo-vcamd {
180+
regulator-name = "vcamd";
181+
regulator-min-microvolt = <1000000>;
182+
regulator-max-microvolt = <1800000>;
183+
regulator-enable-ramp-delay = <264>;
184+
};
185+
mt6357_vcamio_reg: ldo-vcamio18 {
186+
compatible = "regulator-fixed";
187+
regulator-name = "vcamio";
188+
regulator-min-microvolt = <1800000>;
189+
regulator-max-microvolt = <1800000>;
190+
regulator-enable-ramp-delay = <264>;
191+
};
192+
mt6357_vldo28_reg: ldo-vldo28 {
193+
regulator-name = "vldo28";
194+
regulator-min-microvolt = <2800000>;
195+
regulator-max-microvolt = <3000000>;
196+
regulator-enable-ramp-delay = <264>;
197+
};
198+
mt6357_vsram_others_reg: ldo-vsram-others {
199+
regulator-name = "vsram-others";
200+
regulator-min-microvolt = <518750>;
201+
regulator-max-microvolt = <1312500>;
202+
regulator-ramp-delay = <6250>;
203+
regulator-enable-ramp-delay = <110>;
204+
regulator-always-on;
205+
};
206+
mt6357_vsram_proc_reg: ldo-vsram-proc {
207+
regulator-name = "vsram-proc";
208+
regulator-min-microvolt = <518750>;
209+
regulator-max-microvolt = <1312500>;
210+
regulator-ramp-delay = <6250>;
211+
regulator-enable-ramp-delay = <110>;
212+
regulator-always-on;
213+
};
214+
mt6357_vaux18_reg: ldo-vaux18 {
215+
compatible = "regulator-fixed";
216+
regulator-name = "vaux18";
217+
regulator-min-microvolt = <1800000>;
218+
regulator-max-microvolt = <1800000>;
219+
regulator-enable-ramp-delay = <264>;
220+
};
221+
mt6357_vaud28_reg: ldo-vaud28 {
222+
compatible = "regulator-fixed";
223+
regulator-name = "vaud28";
224+
regulator-min-microvolt = <2800000>;
225+
regulator-max-microvolt = <2800000>;
226+
regulator-enable-ramp-delay = <264>;
227+
};
228+
mt6357_vio28_reg: ldo-vio28 {
229+
compatible = "regulator-fixed";
230+
regulator-name = "vio28";
231+
regulator-min-microvolt = <2800000>;
232+
regulator-max-microvolt = <2800000>;
233+
regulator-enable-ramp-delay = <264>;
234+
};
235+
mt6357_vio18_reg: ldo-vio18 {
236+
compatible = "regulator-fixed";
237+
regulator-name = "vio18";
238+
regulator-min-microvolt = <1800000>;
239+
regulator-max-microvolt = <1800000>;
240+
regulator-enable-ramp-delay = <264>;
241+
regulator-always-on;
242+
};
243+
mt6357_vdram_reg: ldo-vdram {
244+
regulator-name = "vdram";
245+
regulator-min-microvolt = <1100000>;
246+
regulator-max-microvolt = <1200000>;
247+
regulator-enable-ramp-delay = <3300>;
248+
};
249+
mt6357_vmc_reg: ldo-vmc {
250+
regulator-name = "vmc";
251+
regulator-min-microvolt = <1800000>;
252+
regulator-max-microvolt = <3300000>;
253+
regulator-enable-ramp-delay = <44>;
254+
};
255+
mt6357_vmch_reg: ldo-vmch {
256+
regulator-name = "vmch";
257+
regulator-min-microvolt = <2900000>;
258+
regulator-max-microvolt = <3300000>;
259+
regulator-enable-ramp-delay = <44>;
260+
};
261+
mt6357_vemc_reg: ldo-vemc {
262+
regulator-name = "vemc";
263+
regulator-min-microvolt = <2900000>;
264+
regulator-max-microvolt = <3300000>;
265+
regulator-enable-ramp-delay = <44>;
266+
regulator-always-on;
267+
};
268+
mt6357_vsim1_reg: ldo-vsim1 {
269+
regulator-name = "vsim1";
270+
regulator-min-microvolt = <1700000>;
271+
regulator-max-microvolt = <3100000>;
272+
regulator-enable-ramp-delay = <264>;
273+
};
274+
mt6357_vsim2_reg: ldo-vsim2 {
275+
regulator-name = "vsim2";
276+
regulator-min-microvolt = <1700000>;
277+
regulator-max-microvolt = <3100000>;
278+
regulator-enable-ramp-delay = <264>;
279+
};
280+
mt6357_vibr_reg: ldo-vibr {
281+
regulator-name = "vibr";
282+
regulator-min-microvolt = <1200000>;
283+
regulator-max-microvolt = <3300000>;
284+
regulator-enable-ramp-delay = <44>;
285+
};
286+
mt6357_vusb33_reg: ldo-vusb33 {
287+
regulator-name = "vusb33";
288+
regulator-min-microvolt = <3000000>;
289+
regulator-max-microvolt = <3100000>;
290+
regulator-enable-ramp-delay = <264>;
291+
};
292+
};
293+
};
294+
...

drivers/regulator/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,15 @@ config REGULATOR_MT6332
805805
This driver supports the control of different power rails of device
806806
through regulator interface
807807

808+
config REGULATOR_MT6357
809+
tristate "MediaTek MT6357 PMIC"
810+
depends on MFD_MT6397
811+
help
812+
Say y here to select this option to enable the power regulator of
813+
MediaTek MT6357 PMIC.
814+
This driver supports the control of different power rails of device
815+
through regulator interface.
816+
808817
config REGULATOR_MT6358
809818
tristate "MediaTek MT6358 PMIC"
810819
depends on MFD_MT6397

drivers/regulator/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ obj-$(CONFIG_REGULATOR_MT6315) += mt6315-regulator.o
9797
obj-$(CONFIG_REGULATOR_MT6323) += mt6323-regulator.o
9898
obj-$(CONFIG_REGULATOR_MT6331) += mt6331-regulator.o
9999
obj-$(CONFIG_REGULATOR_MT6332) += mt6332-regulator.o
100+
obj-$(CONFIG_REGULATOR_MT6357) += mt6357-regulator.o
100101
obj-$(CONFIG_REGULATOR_MT6358) += mt6358-regulator.o
101102
obj-$(CONFIG_REGULATOR_MT6359) += mt6359-regulator.o
102103
obj-$(CONFIG_REGULATOR_MT6360) += mt6360-regulator.o

0 commit comments

Comments
 (0)