diff options
| -rw-r--r-- | Documentation/devicetree/bindings/regulator/ltc3589.txt | 99 | ||||
| -rw-r--r-- | Documentation/devicetree/bindings/vendor-prefixes.txt | 1 | ||||
| -rw-r--r-- | drivers/regulator/Kconfig | 8 | ||||
| -rw-r--r-- | drivers/regulator/Makefile | 1 | ||||
| -rw-r--r-- | drivers/regulator/anatop-regulator.c | 2 | ||||
| -rw-r--r-- | drivers/regulator/core.c | 3 | ||||
| -rw-r--r-- | drivers/regulator/fixed.c | 13 | ||||
| -rw-r--r-- | drivers/regulator/ltc3589.c | 554 | ||||
| -rw-r--r-- | drivers/regulator/max8649.c | 4 | ||||
| -rw-r--r-- | drivers/regulator/max8952.c | 2 | ||||
| -rw-r--r-- | drivers/regulator/of_regulator.c | 68 | ||||
| -rw-r--r-- | drivers/regulator/palmas-regulator.c | 2 | ||||
| -rw-r--r-- | drivers/regulator/st-pwm.c | 2 | ||||
| -rw-r--r-- | drivers/regulator/vexpress.c | 2 |
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 @@ | |||
| 1 | Linear Technology LTC3589, LTC3589-1, and LTC3589-2 8-output regulators | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: "lltc,ltc3589", "lltc,ltc3589-1" or "lltc,ltc3589-2" | ||
| 5 | - reg: I2C slave address | ||
| 6 | |||
| 7 | Required 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 | |||
| 12 | Each regulator is defined using the standard binding for regulators. The | ||
| 13 | nodes for sw1, sw2, sw3, bb-out, ldo1, and ldo2 additionally need to specify | ||
| 14 | the resistor values of their external feedback voltage dividers: | ||
| 15 | |||
| 16 | Required 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 | |||
| 20 | Regulators sw1, sw2, sw3, and ldo2 can regulate the feedback reference from | ||
| 21 | 0.3625 V to 0.75 V in 12.5 mV steps. The output voltage thus ranges between | ||
| 22 | 0.3625 * (1 + R1/R2) V and 0.75 * (1 + R1/R2) V. Regulators bb-out and ldo1 | ||
| 23 | have a fixed 0.8 V reference and thus output 0.8 * (1 + R1/R2) V. The ldo3 | ||
| 24 | regulator is fixed to 1.8 V on LTC3589 and to 2.8 V on LTC3589-1,2. The ldo4 | ||
| 25 | regulator can output between 1.8 V and 3.3 V on LTC3589 and between 1.2 V | ||
| 26 | and 3.2 V on LTC3589-1,2 in four steps. The ldo1 standby regulator can not | ||
| 27 | be disabled and thus should have the regulator-always-on property set. | ||
| 28 | |||
| 29 | Example: | ||
| 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 | |||
| 73 | lg LG Corporation | 73 | lg LG Corporation |
| 74 | linux Linux-specific binding | 74 | linux Linux-specific binding |
| 75 | lsi LSI Corp. (LSI Logic) | 75 | lsi LSI Corp. (LSI Logic) |
| 76 | lltc Linear Technology Corporation | ||
| 76 | marvell Marvell Technology Group Ltd. | 77 | marvell Marvell Technology Group Ltd. |
| 77 | maxim Maxim Integrated Products | 78 | maxim Maxim Integrated Products |
| 78 | microchip Microchip Technology Inc. | 79 | microchip 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 | ||
| 275 | config 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 | |||
| 275 | config REGULATOR_MAX14577 | 283 | config 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 | |||
| 38 | obj-$(CONFIG_REGULATOR_LP8788) += lp8788-buck.o | 38 | obj-$(CONFIG_REGULATOR_LP8788) += lp8788-buck.o |
| 39 | obj-$(CONFIG_REGULATOR_LP8788) += lp8788-ldo.o | 39 | obj-$(CONFIG_REGULATOR_LP8788) += lp8788-ldo.o |
| 40 | obj-$(CONFIG_REGULATOR_LP8755) += lp8755.o | 40 | obj-$(CONFIG_REGULATOR_LP8755) += lp8755.o |
| 41 | obj-$(CONFIG_REGULATOR_LTC3589) += ltc3589.o | ||
| 41 | obj-$(CONFIG_REGULATOR_MAX14577) += max14577.o | 42 | obj-$(CONFIG_REGULATOR_MAX14577) += max14577.o |
| 42 | obj-$(CONFIG_REGULATOR_MAX1586) += max1586.o | 43 | obj-$(CONFIG_REGULATOR_MAX1586) += max1586.o |
| 43 | obj-$(CONFIG_REGULATOR_MAX8649) += max8649.o | 44 | obj-$(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 | ||
| 303 | static struct of_device_id of_anatop_regulator_match_tbl[] = { | 303 | static 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 | |||
