aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/regulator/ltc3589.txt99
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt1
-rw-r--r--drivers/regulator/Kconfig8
-rw-r--r--drivers/regulator/Makefile1
-rw-r--r--drivers/regulator/anatop-regulator.c2
-rw-r--r--drivers/regulator/core.c3
-rw-r--r--drivers/regulator/fixed.c13
-rw-r--r--drivers/regulator/ltc3589.c554
-rw-r--r--drivers/regulator/max8649.c4
-rw-r--r--drivers/regulator/max8952.c2
-rw-r--r--drivers/regulator/of_regulator.c68
-rw-r--r--drivers/regulator/palmas-regulator.c2
-rw-r--r--drivers/regulator/st-pwm.c2
-rw-r--r--drivers/regulator/vexpress.c2
14 files changed, 718 insertions, 43 deletions
diff --git a/Documentation/devicetree/bindings/regulator/ltc3589.txt b/Documentation/devicetree/bindings/regulator/ltc3589.txt
new file mode 100644
index 000000000000..801053036146
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/ltc3589.txt
@@ -0,0 +1,99 @@
1Linear Technology LTC3589, LTC3589-1, and LTC3589-2 8-output regulators
2
3Required properties:
4- compatible: "lltc,ltc3589", "lltc,ltc3589-1" or "lltc,ltc3589-2"
5- reg: I2C slave address
6
7Required child node:
8- regulators: Contains eight regulator child nodes sw1, sw2, sw3, bb-out,
9 ldo1, ldo2, ldo3, and ldo4, specifying the initialization data as
10 documented in Documentation/devicetree/bindings/regulator/regulator.txt.
11
12Each regulator is defined using the standard binding for regulators. The
13nodes for sw1, sw2, sw3, bb-out, ldo1, and ldo2 additionally need to specify
14the resistor values of their external feedback voltage dividers:
15
16Required properties (not on ldo3, ldo4):
17- lltc,fb-voltage-divider: An array of two integers containing the resistor
18 values R1 and R2 of the feedback voltage divider in ohms.
19
20Regulators sw1, sw2, sw3, and ldo2 can regulate the feedback reference from
210.3625 V to 0.75 V in 12.5 mV steps. The output voltage thus ranges between
220.3625 * (1 + R1/R2) V and 0.75 * (1 + R1/R2) V. Regulators bb-out and ldo1
23have a fixed 0.8 V reference and thus output 0.8 * (1 + R1/R2) V. The ldo3
24regulator is fixed to 1.8 V on LTC3589 and to 2.8 V on LTC3589-1,2. The ldo4
25regulator can output between 1.8 V and 3.3 V on LTC3589 and between 1.2 V
26and 3.2 V on LTC3589-1,2 in four steps. The ldo1 standby regulator can not
27be disabled and thus should have the regulator-always-on property set.
28
29Example:
30
31 ltc3589: pmic@34 {
32 compatible = "lltc,ltc3589-1";
33 reg = <0x34>;
34
35 regulators {
36 sw1_reg: sw1 {
37 regulator-min-microvolt = <591930>;
38 regulator-max-microvolt = <1224671>;
39 lltc,fb-voltage-divider = <100000 158000>;
40 regulator-ramp-delay = <7000>;
41 regulator-boot-on;
42 regulator-always-on;
43 };
44
45 sw2_reg: sw2 {
46 regulator-min-microvolt = <704123>;
47 regulator-max-microvolt = <1456803>;
48 lltc,fb-voltage-divider = <180000 191000>;
49 regulator-ramp-delay = <7000>;
50 regulator-boot-on;
51 regulator-always-on;
52 };
53
54 sw3_reg: sw3 {
55 regulator-min-microvolt = <1341250>;
56 regulator-max-microvolt = <2775000>;
57 lltc,fb-voltage-divider = <270000 100000>;
58 regulator-ramp-delay = <7000>;
59 regulator-boot-on;
60 regulator-always-on;
61 };
62
63 bb_out_reg: bb-out {
64 regulator-min-microvolt = <3387341>;
65 regulator-max-microvolt = <3387341>;
66 lltc,fb-voltage-divider = <511000 158000>;
67 regulator-boot-on;
68 regulator-always-on;
69 };
70
71 ldo1_reg: ldo1 {
72 regulator-min-microvolt = <1306329>;
73 regulator-max-microvolt = <1306329>;
74 lltc,fb-voltage-divider = <100000 158000>;
75 regulator-boot-on;
76 regulator-always-on;
77 };
78
79 ldo2_reg: ldo2 {
80 regulator-min-microvolt = <704123>;
81 regulator-max-microvolt = <1456806>;
82 lltc,fb-voltage-divider = <180000 191000>;
83 regulator-ramp-delay = <7000>;
84 regulator-boot-on;
85 regulator-always-on;
86 };
87
88 ldo3_reg: ldo3 {
89 regulator-min-microvolt = <2800000>;
90 regulator-max-microvolt = <2800000>;
91 regulator-boot-on;
92 };
93
94 ldo4_reg: ldo4 {
95 regulator-min-microvolt = <1200000>;
96 regulator-max-microvolt = <3200000>;
97 };
98 };
99 };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index abc308083acb..02a4cc7672fd 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -73,6 +73,7 @@ lantiq Lantiq Semiconductor
73lg LG Corporation 73lg LG Corporation
74linux Linux-specific binding 74linux Linux-specific binding
75lsi LSI Corp. (LSI Logic) 75lsi LSI Corp. (LSI Logic)
76lltc Linear Technology Corporation
76marvell Marvell Technology Group Ltd. 77marvell Marvell Technology Group Ltd.
77maxim Maxim Integrated Products 78maxim Maxim Integrated Products
78microchip Microchip Technology Inc. 79microchip Microchip Technology Inc.
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 65e5d7d1b35a..c2fa0b4367b1 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -272,6 +272,14 @@ config REGULATOR_LP8788
272 help 272 help
273 This driver supports LP8788 voltage regulator chip. 273 This driver supports LP8788 voltage regulator chip.
274 274
275config REGULATOR_LTC3589
276 tristate "LTC3589 8-output voltage regulator"
277 depends on I2C
278 select REGMAP_I2C
279 help
280 This enables support for the LTC3589, LTC3589-1, and LTC3589-2
281 8-output regulators controlled via I2C.
282
275config REGULATOR_MAX14577 283config REGULATOR_MAX14577
276 tristate "Maxim 14577 regulator" 284 tristate "Maxim 14577 regulator"
277 depends on MFD_MAX14577 285 depends on MFD_MAX14577
diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
index c14696b290c0..d461110f4463 100644
--- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile
@@ -38,6 +38,7 @@ obj-$(CONFIG_REGULATOR_LP872X) += lp872x.o
38obj-$(CONFIG_REGULATOR_LP8788) += lp8788-buck.o 38obj-$(CONFIG_REGULATOR_LP8788) += lp8788-buck.o
39obj-$(CONFIG_REGULATOR_LP8788) += lp8788-ldo.o 39obj-$(CONFIG_REGULATOR_LP8788) += lp8788-ldo.o
40obj-$(CONFIG_REGULATOR_LP8755) += lp8755.o 40obj-$(CONFIG_REGULATOR_LP8755) += lp8755.o
41obj-$(CONFIG_REGULATOR_LTC3589) += ltc3589.o
41obj-$(CONFIG_REGULATOR_MAX14577) += max14577.o 42obj-$(CONFIG_REGULATOR_MAX14577) += max14577.o
42obj-$(CONFIG_REGULATOR_MAX1586) += max1586.o 43obj-$(CONFIG_REGULATOR_MAX1586) += max1586.o
43obj-$(CONFIG_REGULATOR_MAX8649) += max8649.o 44obj-$(CONFIG_REGULATOR_MAX8649) += max8649.o
diff --git a/drivers/regulator/anatop-regulator.c b/drivers/regulator/anatop-regulator.c
index 7c397bb81e01..4f730af70e7c 100644
--- a/drivers/regulator/anatop-regulator.c
+++ b/drivers/regulator/anatop-regulator.c
@@ -300,7 +300,7 @@ static int anatop_regulator_probe(struct platform_device *pdev)
300 return 0; 300 return 0;
301} 301}
302 302
303static struct of_device_id of_anatop_regulator_match_tbl[] = { 303static const struct of_device_id of_anatop_regulator_match_tbl[] = {
304 { .compatible = "fsl,anatop-regulator", }, 304 { .compatible = "fsl,anatop-regulator", },
305 { /* end */ } 305 { /* end */ }
306}; 306};
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 4f0198a2524a..4c1f999041dd 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -3458,7 +3458,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
3458 3458
3459