aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd/tps65217.h
diff options
context:
space:
mode:
authorAnilKumar Ch <anilkumar@ti.com>2012-08-13 20:36:05 +0530
committerSamuel Ortiz <sameo@linux.intel.com>2012-08-22 10:49:35 +0200
commit817bb7fbfb0a1ad5f9d475cef0752d4ec5fdeac2 (patch)
treefa725f8e1a7b3a3f7eac166a1de8cea29adf46ae /include/linux/mfd/tps65217.h
parentLinux 3.6-rc2 (diff)
downloadlinux-dev-817bb7fbfb0a1ad5f9d475cef0752d4ec5fdeac2.tar.xz
linux-dev-817bb7fbfb0a1ad5f9d475cef0752d4ec5fdeac2.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/mfd/tps65217.h')
-rw-r--r--include/linux/mfd/tps65217.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/linux/mfd/tps65217.h b/include/linux/mfd/tps65217.h
index 12c06870829a..7cd83d826ed8 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,