{
struct tps65910 *tps65910;
struct tps65910_board *pmic_plat_data;
+ struct tps65910_board *of_pmic_plat_data = NULL;
struct tps65910_platform_data *init_data;
int ret = 0;
int chip_id = id->driver_data;
pmic_plat_data = dev_get_platdata(&i2c->dev);
- if (!pmic_plat_data && i2c->dev.of_node)
+ if (!pmic_plat_data && i2c->dev.of_node) {
pmic_plat_data = tps65910_parse_dt(i2c, &chip_id);
+ of_pmic_plat_data = pmic_plat_data;
+ }
if (!pmic_plat_data)
return -EINVAL;
if (tps65910 == NULL)
return -ENOMEM;
+ tps65910->of_plat_data = of_pmic_plat_data;
i2c_set_clientdata(i2c, tps65910);
tps65910->dev = &i2c->dev;
tps65910->i2c_client = i2c;
struct tps65910_rtc *rtc;
struct tps65910_power *power;
+ /* Device node parsed board data */
+ struct tps65910_board *of_plat_data;
+
/* IRQ Handling */
struct mutex irq_lock;
int chip_irq;