aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/tps65910.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/tps65910.c')
-rw-r--r--drivers/mfd/tps65910.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
index 18b30cf45e5..05d449b3369 100644
--- a/drivers/mfd/tps65910.c
+++ b/drivers/mfd/tps65910.c
@@ -209,14 +209,17 @@ static __devinit int tps65910_i2c_probe(struct i2c_client *i2c,
209{ 209{
210 struct tps65910 *tps65910; 210 struct tps65910 *tps65910;
211 struct tps65910_board *pmic_plat_data; 211 struct tps65910_board *pmic_plat_data;
212 struct tps65910_board *of_pmic_plat_data = NULL;
212 struct tps65910_platform_data *init_data; 213 struct tps65910_platform_data *init_data;
213 int ret = 0; 214 int ret = 0;
214 int chip_id = id->driver_data; 215 int chip_id = id->driver_data;
215 216
216 pmic_plat_data = dev_get_platdata(&i2c->dev); 217 pmic_plat_data = dev_get_platdata(&i2c->dev);
217 218
218 if (!pmic_plat_data && i2c->dev.of_node) 219 if (!pmic_plat_data && i2c->dev.of_node) {
219 pmic_plat_data = tps65910_parse_dt(i2c, &chip_id); 220 pmic_plat_data = tps65910_parse_dt(i2c, &chip_id);
221 of_pmic_plat_data = pmic_plat_data;
222 }
220 223
221 if (!pmic_plat_data) 224 if (!pmic_plat_data)
222 return -EINVAL; 225 return -EINVAL;
@@ -229,6 +232,7 @@ static __devinit int tps65910_i2c_probe(struct i2c_client *i2c,
229 if (tps65910 == NULL) 232 if (tps65910 == NULL)
230 return -ENOMEM; 233 return -ENOMEM;
231 234
235 tps65910->of_plat_data = of_pmic_plat_data;
232 i2c_set_clientdata(i2c, tps65910); 236 i2c_set_clientdata(i2c, tps65910);
233 tps65910->dev = &i2c->dev; 237 tps65910->dev = &i2c->dev;
234 tps65910->i2c_client = i2c; 238 tps65910->i2c_client = i2c;