aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/tps65910.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2012-05-18 16:31:41 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2012-05-22 17:49:13 -0400
commitcb8d8654570c257d2ec5f7fa089e18b338314317 (patch)
tree39971c07b8b0111d924606079e07b3701ab2ff30 /drivers/mfd/tps65910.c
parent730a3d01b1e1e3ba102a5a4d3d5dcfecd55326b6 (diff)
mfd: Save device node parsed platform data for tps65910 sub devices
Save the allocated memory to store the parsed device node information to the global device structure so that sub devices can directly use this pointer. In this way, the sub devices does not require to re-allocate the memory for storing the sub-devices specific device node information. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
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 18b30cf45e5b..05d449b33693 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;