summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2012-08-01 16:34:12 +0530
committerLokesh Pathak <lpathak@nvidia.com>2012-08-07 08:45:08 -0700
commit65f9c0c5286dcccd3ed38d479215414c9cf00f1f (patch)
treedba2b4dd3144bf63b374924a24ff070c37ae23ff /drivers/power
parent0bf836b37cef4345629ecd8efb1a3e7f30628525 (diff)
power: tps80031: battery-gauge: register as mfd sub device
Register battery gauge driver of TPS80031 as mfd sub driver in place of adding it as a sub devices. This is inline with the mfd driver policy. Change-Id: I15765be19fc138695de2d813e5fa025400747c86 Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-on: http://git-master/r/121134 Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/tps80031_battery_gauge.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/power/tps80031_battery_gauge.c b/drivers/power/tps80031_battery_gauge.c
index 9ccfaad41441..69bad9caa99d 100644
--- a/drivers/power/tps80031_battery_gauge.c
+++ b/drivers/power/tps80031_battery_gauge.c
@@ -453,7 +453,20 @@ static int tps80031_battery_probe(struct platform_device *pdev)
uint8_t retval;
struct device *dev = &pdev->dev;
struct tps80031_device_info *di;
- struct tps80031_bg_platform_data *pdata = pdev->dev.platform_data;
+ struct tps80031_platform_data *tps80031_pdata;
+ struct tps80031_bg_platform_data *pdata;
+
+ 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->bg_pdata;
+ if (!pdata) {
+ dev_err(&pdev->dev, "no battery_gauge platform data\n");
+ return -EINVAL;
+ }
di = devm_kzalloc(&pdev->dev, sizeof *di, GFP_KERNEL);
if (!di) {