diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-05 19:19:15 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-05 19:19:15 -0400 |
| commit | 91c2ff7708d4edf73ef1f0abb3ea4a44b4b0cf1d (patch) | |
| tree | 43ddc350e2ee5e0f20b5273accdcc597b89da1f6 | |
| parent | 1325b6550a7b9cda52ee4c0da04fa9f93d2618fc (diff) | |
| parent | f955c8ba265540617da67d528ea74e50d48ad2be (diff) | |
Merge tag 'regulator-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator updates from Mark Brown:
"A couple of nice new features this month, the ability to map
regulators in order to allow voltage control by external coprocessors
is something people have been asking for for a long time.
- improved support for switch only "regulators", allowing current
state to be read from the parent regulator but no setting.
- support for obtaining the register access method used to set
voltages, for use in systems which can offload control of this to a
coprocessor (typically for DVFS).
- support for Active-Semi AC8846, Dialog DA9211 and Texas Instruments
TPS65917"
* tag 'regulator-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (58 commits)
regulator: act8865: fix build when OF is not enabled
regulator: act8865: add act8846 to DT binding documentation
regulator: act8865: add support for act8846
regulator: act8865: prepare support for other act88xx devices
regulator: act8865: set correct number of regulators in pdata
regulator: act8865: Remove error variable in act8865_pmic_probe
regulator: act8865: fix parsing of platform data
regulator: tps65090: Set voltage for fixed regulators
regulator: core: Allow to get voltage count and list from parent
regulator: core: Get voltage from parent if not available
regulator: Add missing statics and inlines for stub functions
regulator: lp872x: Don't set constraints within the regulator driver
regmap: Fix return code for stub regmap_get_device()
regulator: s2mps11: Update module description and Kconfig to add S2MPU02 support
regulator: Add helpers for low-level register access
regmap: Allow regmap_get_device() to be used by modules
regmap: Add regmap_get_device
regulator: da9211: Remove unnecessary devm_regulator_unregister() calls
regulator: Add DT bindings for tps65218 PMIC regulators.
regulator: da9211: new regulator driver
...
38 files changed, 3105 insertions, 808 deletions
diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt b/Documentation/devicetree/bindings/mfd/palmas.txt index e5f0f8303461..eda898978d33 100644 --- a/Documentation/devicetree/bindings/mfd/palmas.txt +++ b/Documentation/devicetree/bindings/mfd/palmas.txt | |||
| @@ -6,6 +6,7 @@ twl6037 (palmas) | |||
| 6 | tps65913 (palmas) | 6 | tps65913 (palmas) |
| 7 | tps65914 (palmas) | 7 | tps65914 (palmas) |
| 8 | tps659038 | 8 | tps659038 |
| 9 | tps65917 | ||
| 9 | 10 | ||
| 10 | Required properties: | 11 | Required properties: |
| 11 | - compatible : Should be from the list | 12 | - compatible : Should be from the list |
| @@ -16,6 +17,7 @@ Required properties: | |||
| 16 | ti,tps65914 | 17 | ti,tps65914 |
| 17 | ti,tps80036 | 18 | ti,tps80036 |
| 18 | ti,tps659038 | 19 | ti,tps659038 |
| 20 | ti,tps65917 | ||
| 19 | and also the generic series names | 21 | and also the generic series names |
| 20 | ti,palmas | 22 | ti,palmas |
| 21 | - interrupt-controller : palmas has its own internal IRQs | 23 | - interrupt-controller : palmas has its own internal IRQs |
diff --git a/Documentation/devicetree/bindings/regulator/act8865-regulator.txt b/Documentation/devicetree/bindings/regulator/act8865-regulator.txt index bef1fbb647ca..865614b34d6f 100644 --- a/Documentation/devicetree/bindings/regulator/act8865-regulator.txt +++ b/Documentation/devicetree/bindings/regulator/act8865-regulator.txt | |||
| @@ -1,13 +1,16 @@ | |||
| 1 | ACT8865 regulator | 1 | ACT88xx regulators |
| 2 | ------------------- | 2 | ------------------- |
| 3 | 3 | ||
| 4 | Required properties: | 4 | Required properties: |
| 5 | - compatible: "active-semi,act8865" | 5 | - compatible: "active-semi,act8846" or "active-semi,act8865" |
| 6 | - reg: I2C slave address | 6 | - reg: I2C slave address |
| 7 | 7 | ||
| 8 | Any standard regulator properties can be used to configure the single regulator. | 8 | Any standard regulator properties can be used to configure the single regulator. |
| 9 | 9 | ||
| 10 | The valid names for regulators are: | 10 | The valid names for regulators are: |
| 11 | - for act8846: | ||
| 12 | REG1, REG2, REG3, REG4, REG5, REG6, REG7, REG8, REG9, REG10, REG11, REG12 | ||
| 13 | - for act8865: | ||
| 11 | DCDC_REG1, DCDC_REG2, DCDC_REG3, LDO_REG1, LDO_REG2, LDO_REG3, LDO_REG4. | 14 | DCDC_REG1, DCDC_REG2, DCDC_REG3, LDO_REG1, LDO_REG2, LDO_REG3, LDO_REG4. |
| 12 | 15 | ||
| 13 | Example: | 16 | Example: |
diff --git a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt index 42e6b6bc48ff..725393c8a7f2 100644 --- a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt +++ b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt | |||
| @@ -7,6 +7,7 @@ Required properties: | |||
| 7 | ti,twl6037-pmic | 7 | ti,twl6037-pmic |
| 8 | ti,tps65913-pmic | 8 | ti,tps65913-pmic |
| 9 | ti,tps65914-pmic | 9 | ti,tps65914-pmic |
| 10 | ti,tps65917-pmic | ||
| 10 | and also the generic series names | 11 | and also the generic series names |
| 11 | ti,palmas-pmic | 12 | ti,palmas-pmic |
| 12 | - interrupt-parent : The parent interrupt controller which is palmas. | 13 | - interrupt-parent : The parent interrupt controller which is palmas. |
diff --git a/Documentation/devicetree/bindings/regulator/tps65218.txt b/Documentation/devicetree/bindings/regulator/tps65218.txt new file mode 100644 index 000000000000..fccc1d24af58 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/tps65218.txt | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | TPS65218 family of regulators | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | For tps65218 regulators/LDOs | ||
| 5 | - compatible: | ||
| 6 | - "ti,tps65218-dcdc1" for DCDC1 | ||
| 7 | - "ti,tps65218-dcdc2" for DCDC2 | ||
| 8 | - "ti,tps65218-dcdc3" for DCDC3 | ||
| 9 | - "ti,tps65218-dcdc4" for DCDC4 | ||
| 10 | - "ti,tps65218-dcdc5" for DCDC5 | ||
| 11 | - "ti,tps65218-dcdc6" for DCDC6 | ||
| 12 | - "ti,tps65218-ldo1" for LDO1 | ||
| 13 | |||
| 14 | Optional properties: | ||
| 15 | - Any optional property defined in bindings/regulator/regulator.txt | ||
| 16 | |||
| 17 | Example: | ||
| 18 | |||
| 19 | xyz: regulator@0 { | ||
| 20 | compatible = "ti,tps65218-dcdc1"; | ||
| 21 | regulator-min-microvolt = <1000000>; | ||
| 22 | regulator-max-microvolt = <3000000>; | ||
| 23 | }; | ||
diff --git a/Documentation/power/regulator/consumer.txt b/Documentation/power/regulator/consumer.txt index 55c4175d8099..81c0e2b49cd8 100644 --- a/Documentation/power/regulator/consumer.txt +++ b/Documentation/power/regulator/consumer.txt | |||
| @@ -180,3 +180,38 @@ int regulator_unregister_notifier(struct regulator *regulator, | |||
| 180 | 180 | ||
| 181 | Regulators use the kernel notifier framework to send event to their interested | 181 | Regulators use the kernel notifier framework to send event to their interested |
| 182 | consumers. | 182 | consumers. |
| 183 | |||
| 184 | 7. Regulator Direct Register Access | ||
| 185 | =================================== | ||
| 186 | Some kinds of power management hardware or firmware are designed such that | ||
| 187 | they need to do low-level hardware access to regulators, with no involvement | ||
| 188 | from the kernel. Examples of such devices are: | ||
| 189 | |||
| 190 | - clocksource with a voltage-controlled oscillator and control logic to change | ||
| 191 | the supply voltage over I2C to achieve a desired output clock rate | ||
| 192 | - thermal management firmware that can issue an arbitrary I2C transaction to | ||
| 193 | perform system poweroff during overtemperature conditions | ||
| 194 | |||
| 195 | To set up such a device/firmware, various parameters like I2C address of the | ||
| 196 | regulator, addresses of various regulator registers etc. need to be configured | ||
| 197 | to it. The regulator framework provides the following helpers for querying | ||
| 198 | these details. | ||
| 199 | |||
| 200 | Bus-specific details, like I2C addresses or transfer rates are handled by the | ||
| 201 | regmap framework. To get the regulator's regmap (if supported), use :- | ||
| 202 | |||
| 203 | struct regmap *regulator_get_regmap(struct regulator *regulator); | ||
