diff options
author | AnilKumar Ch <anilkumar@ti.com> | 2012-08-13 20:36:05 +0530 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-08-22 10:55:25 +0200 |
commit | 1922b0f2758badc0b971d1ebbd300bc6635a6aef (patch) | |
tree | fa725f8e1a7b3a3f7eac166a1de8cea29adf46ae /include/linux | |
parent | d9875690d9b89a866022ff49e3fcea892345ad92 (diff) | |
download | linux-3.10-1922b0f2758badc0b971d1ebbd300bc6635a6aef.tar.gz linux-3.10-1922b0f2758badc0b971d1ebbd300bc6635a6aef.tar.bz2 linux-3.10-1922b0f2758badc0b971d1ebbd300bc6635a6aef.zip |
mfd: Move tps65217 regulator plat data handling to regulator
Regulator platform data handling was mistakenly added to MFD
driver. So we will see build errors if we compile MFD drivers
without CONFIG_REGULATOR. This patch moves regulator platform
data handling from TPS65217 MFD driver to regulator driver.
This makes MFD driver independent of REGULATOR framework so
build error is fixed if CONFIG_REGULATOR is not set.
drivers/built-in.o: In function `tps65217_probe':
tps65217.c:(.devinit.text+0x13e37): undefined reference
to `of_regulator_match'
This patch also fix allocation size of tps65217 platform data.
Current implementation allocates a struct tps65217_board for each
regulator specified in the device tree. But the structure itself
provides array of regulators so one instance of it is sufficient.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/mfd/tps65217.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/include/linux/mfd/tps65217.h b/include/linux/mfd/tps65217.h index 12c06870829..7cd83d826ed 100644 --- a/include/linux/mfd/tps65217.h +++ b/include/linux/mfd/tps65217.h @@ -22,6 +22,9 @@ #include <linux/regulator/driver.h> #include <linux/regulator/machine.h> +/* TPS chip id list */ +#define TPS65217 0xF0 + /* I2C ID for TPS65217 part */ #define TPS65217_I2C_ID 0x24 @@ -248,13 +251,11 @@ struct tps_info { struct tps65217 { struct device *dev; struct tps65217_board *pdata; + unsigned int id; struct regulator_desc desc[TPS65217_NUM_REGULATOR]; struct regulator_dev *rdev[TPS65217_NUM_REGULATOR]; struct tps_info *info[TPS65217_NUM_REGULATOR]; struct regmap *regmap; - - /* Client devices */ - struct platform_device *regulator_pdev[TPS65217_NUM_REGULATOR]; }; static inline struct tps65217 *dev_to_tps65217(struct device *dev) @@ -262,6 +263,11 @@ static inline struct tps65217 *dev_to_tps65217(struct device *dev) return dev_get_drvdata(dev); } +static inline int tps65217_chip_id(struct tps65217 *tps65217) +{ + return tps65217->id; +} + int tps65217_reg_read(struct tps65217 *tps, unsigned int reg, unsigned int *val); int tps65217_reg_write(struct tps65217 *tps, unsigned int reg, |