aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd/tps65090.h
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2012-10-09 05:48:59 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-10-17 09:21:14 -0400
commit24282a1ca33b4a2cdfb907fb7a3ba4d0f6e93311 (patch)
tree2e100956e7d8ea132908fd2c9c92aea965e3c675 /include/linux/mfd/tps65090.h
parentddffeb8c4d0331609ef2581d84de4d763607bd37 (diff)
regulator: tps65090: Register all regulators in single probe call
MFD driver registers the regulator driver once per device and hence it is require to register all regulators in single probe call. Following are details of changes done to achieve this: - Move the regulator enums to mfd header and remove the tps65090-regulator.h as it does not contain more info. - Add max regulator and register all regulators even if there is no regulator init data from platform. - Convert regulator init data to pointer type in platform data. - Add input supply name in regulator desc to provide input supply. - Separate desc information from driver information. - Disable external control bit to have control through register write. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/linux/mfd/tps65090.h')
-rw-r--r--include/linux/mfd/tps65090.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/linux/mfd/tps65090.h b/include/linux/mfd/tps65090.h
index 6bc31d85462..d06c63335a2 100644
--- a/include/linux/mfd/tps65090.h
+++ b/include/linux/mfd/tps65090.h
@@ -24,6 +24,23 @@
24 24
25#include <linux/irq.h> 25#include <linux/irq.h>
26 26
27/* TPS65090 Regulator ID */
28enum {
29 TPS65090_ID_DCDC1,
30 TPS65090_ID_DCDC2,
31 TPS65090_ID_DCDC3,
32 TPS65090_ID_FET1,
33 TPS65090_ID_FET2,
34 TPS65090_ID_FET3,
35 TPS65090_ID_FET4,
36 TPS65090_ID_FET5,
37 TPS65090_ID_FET6,
38 TPS65090_ID_FET7,
39
40 /* Last entry for maximum ID */
41 TPS65090_ID_MAX,
42};
43
27struct tps65090 { 44struct tps65090 {
28 struct mutex lock; 45 struct mutex lock;
29 struct device *dev; 46 struct device *dev;
@@ -41,10 +58,21 @@ struct tps65090_subdev_info {
41 void *platform_data; 58 void *platform_data;
42}; 59};
43 60
61/*
62 * struct tps65090_regulator_plat_data
63 *
64 * @reg_init_data: The regulator init data.
65 */
66
67struct tps65090_regulator_plat_data {
68 struct regulator_init_data *reg_init_data;
69};
70
44struct tps65090_platform_data { 71struct tps65090_platform_data {
45 int irq_base; 72 int irq_base;
46 int num_subdevs; 73 int num_subdevs;
47 struct tps65090_subdev_info *subdevs; 74 struct tps65090_subdev_info *subdevs;
75 struct tps65090_regulator_plat_data *reg_pdata[TPS65090_ID_MAX];
48}; 76};
49 77
50/* 78/*