aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/power/ab8500_charger.c
diff options
context:
space:
mode:
authorRajanikanth H.V <rajanikanth.hv@stericsson.com>2012-11-18 21:45:41 -0500
committerAnton Vorontsov <anton.vorontsov@linaro.org>2012-11-18 22:37:04 -0500
commite0f1abeba5c2d8a2183566717d99294fd1a29c2e (patch)
treebf4b3582791d3e4baa298f4268cf2bbad8169b74 /drivers/power/ab8500_charger.c
parente9f14c18b83ccf3ab291b83a1d6c640113ecf545 (diff)
ab8500: Add devicetree support for fuelgauge
- This patch adds device tree support for fuelgauge driver - optimize bm devices platform_data usage and of_probe(...) Note: of_probe() routine for battery managed devices is made common across all bm drivers. - test status: - interrupt numbers assigned differs between legacy and FDT mode. Signed-off-by: Rajanikanth H.V <rajanikanth.hv@stericsson.com> Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Diffstat (limited to 'drivers/power/ab8500_charger.c')
-rw-r--r--drivers/power/ab8500_charger.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c
index 26ff759e2220..723edb47b1d8 100644
--- a/drivers/power/ab8500_charger.c
+++ b/drivers/power/ab8500_charger.c
@@ -220,7 +220,7 @@ struct ab8500_charger {
220 bool autopower; 220 bool autopower;
221 struct ab8500 *parent; 221 struct ab8500 *parent;
222 struct ab8500_gpadc *gpadc; 222 struct ab8500_gpadc *gpadc;
223 struct abx500_charger_platform_data *pdata; 223 struct abx500_bmdevs_plat_data *pdata;
224 struct abx500_bm_data *bat; 224 struct abx500_bm_data *bat;
225 struct ab8500_charger_event_flags flags; 225 struct ab8500_charger_event_flags flags;
226 struct ab8500_charger_usb_state usb_state; 226 struct ab8500_charger_usb_state usb_state;
@@ -2533,9 +2533,9 @@ static int __devexit ab8500_charger_remove(struct platform_device *pdev)
2533 2533
2534static int __devinit ab8500_charger_probe(struct platform_device *pdev) 2534static int __devinit ab8500_charger_probe(struct platform_device *pdev)
2535{ 2535{
2536 int irq, i, charger_status, ret = 0; 2536 struct abx500_bmdevs_plat_data *plat_data = pdev->dev.platform_data;
2537 struct abx500_bm_plat_data *plat_data = pdev->dev.platform_data;
2538 struct ab8500_charger *di; 2537 struct ab8500_charger *di;
2538 int irq, i, charger_status, ret = 0;
2539 2539
2540 if (!plat_data) { 2540 if (!plat_data) {
2541 dev_err(&pdev->dev, "No platform data\n"); 2541 dev_err(&pdev->dev, "No platform data\n");
@@ -2555,21 +2555,13 @@ static int __devinit ab8500_charger_probe(struct platform_device *pdev)
2555 spin_lock_init(&di->usb_state.usb_lock); 2555 spin_lock_init(&di->usb_state.usb_lock);
2556 2556
2557 /* get charger specific platform data */ 2557 /* get charger specific platform data */
2558 di->pdata = plat_data->charger; 2558 di->pdata = plat_data;
2559 if (!di->pdata) { 2559 if (!di->pdata) {
2560 dev_err(di->dev, "no charger platform data supplied\n"); 2560 dev_err(di->dev, "no charger platform data supplied\n");
2561 ret = -EINVAL; 2561 ret = -EINVAL;
2562 goto free_device_info; 2562 goto free_device_info;
2563 } 2563 }
2564 2564
2565 /* get battery specific platform data */
2566 di->bat = plat_data->battery;
2567 if (!di->bat) {
2568 dev_err(di->dev, "no battery platform data supplied\n");
2569 ret = -EINVAL;
2570 goto free_device_info;
2571 }
2572
2573 di->autopower = false; 2565 di->autopower = false;
2574 2566
2575 /* AC supply */ 2567 /* AC supply */