diff options
-rw-r--r-- | arch/arm/mach-tegra/board-enterprise-power.c | 8 | ||||
-rw-r--r-- | drivers/mfd/tps80031.c | 3 | ||||
-rw-r--r-- | drivers/power/tps80031-charger.c | 10 | ||||
-rw-r--r-- | include/linux/mfd/tps80031.h | 1 |
4 files changed, 14 insertions, 8 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise-power.c b/arch/arm/mach-tegra/board-enterprise-power.c index b908edbbca30..86f0bcd05253 100644 --- a/arch/arm/mach-tegra/board-enterprise-power.c +++ b/arch/arm/mach-tegra/board-enterprise-power.c @@ -333,23 +333,16 @@ static struct tps80031_bg_platform_data battery_gauge_data = { .battery_present = 1, }; -#define TPS_BATTERY() \ - { \ - .name = "tps80031-charger", \ - .platform_data = &bcharger_pdata, \ - } #define TPS_GPADC() \ { \ .name = "tps80031-gpadc", \ } #define TPS80031_DEVS_COMMON \ - TPS_BATTERY(), \ TPS_GPADC() static struct tps80031_subdev_info tps80031_devs[] = { - TPS_BATTERY(), TPS_GPADC() }; @@ -437,6 +430,7 @@ static struct tps80031_platform_data tps_platform = { .use_power_off = true, .rtc_pdata = &rtc_data, .bg_pdata = &battery_gauge_data, + .battery_charger_pdata = &bcharger_pdata, }; static struct i2c_board_info __initdata enterprise_regulators[] = { diff --git a/drivers/mfd/tps80031.c b/drivers/mfd/tps80031.c index f9f3f092d837..f496c36d6401 100644 --- a/drivers/mfd/tps80031.c +++ b/drivers/mfd/tps80031.c @@ -308,6 +308,9 @@ static struct mfd_cell tps80031_cell[] = { { .name = "tps80031-battery-gauge", }, + { + .name = "tps80031-charger", + }, }; diff --git a/drivers/power/tps80031-charger.c b/drivers/power/tps80031-charger.c index 70a365797089..edbcfcc586f1 100644 --- a/drivers/power/tps80031-charger.c +++ b/drivers/power/tps80031-charger.c @@ -353,10 +353,18 @@ static int tps80031_charger_probe(struct platform_device *pdev) int ret = 0; struct device *dev = &pdev->dev; struct tps80031_charger *charger; - struct tps80031_charger_platform_data *pdata = pdev->dev.platform_data; + struct tps80031_platform_data *tps80031_pdata; + struct tps80031_charger_platform_data *pdata; dev_info(dev, "%s()\n", __func__); + tps80031_pdata = dev_get_platdata(pdev->dev.parent); + if (!tps80031_pdata) { + dev_err(&pdev->dev, "no tps80031 platform_data specified\n"); + return -EINVAL; + } + + pdata = tps80031_pdata->battery_charger_pdata; if (!pdata) { dev_err(dev, "%s() No platform data, exiting..\n", __func__); return -ENODEV; diff --git a/include/linux/mfd/tps80031.h b/include/linux/mfd/tps80031.h index d3371a750b64..573c8a5ee38c 100644 --- a/include/linux/mfd/tps80031.h +++ b/include/linux/mfd/tps80031.h @@ -206,6 +206,7 @@ struct tps80031_platform_data { int num_regulator_pdata; struct tps80031_rtc_platform_data *rtc_pdata; struct tps80031_bg_platform_data *bg_pdata; + struct tps80031_charger_platform_data *battery_charger_pdata; }; |