diff options
author | Rajanikanth H.V <rajanikanth.hv@stericsson.com> | 2012-11-18 21:45:41 -0500 |
---|---|---|
committer | Anton Vorontsov <anton.vorontsov@linaro.org> | 2012-11-18 22:37:04 -0500 |
commit | e0f1abeba5c2d8a2183566717d99294fd1a29c2e (patch) | |
tree | bf4b3582791d3e4baa298f4268cf2bbad8169b74 /drivers/power/ab8500_charger.c | |
parent | e9f14c18b83ccf3ab291b83a1d6c640113ecf545 (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.c | 16 |
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 | ||
2534 | static int __devinit ab8500_charger_probe(struct platform_device *pdev) | 2534 | static 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 */ |