diff options
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/tps65910.c | 6 |
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; |