diff options
author | Philipp Zabel <philipp.zabel@gmail.com> | 2008-04-12 07:47:45 -0400 |
---|---|---|
committer | Anton Vorontsov <cbouatmailru@gmail.com> | 2008-05-02 19:39:55 -0400 |
commit | f6b6b180b4614e57af217045f71caedd94821fc7 (patch) | |
tree | 57dae17cfd4548dda56c9740e6666866cfd236cb /drivers | |
parent | a985aabe4d7a720b109c2b63549f8641676a9c88 (diff) |
pda_power: add init and exit function callbacks
This adds init/exit function callbacks to pda_power, to
provide a place where the platform code can request/free
GPIOs that it wants to use in the is_ac_online, is_usb_online
and set_charge functions.
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/power/pda_power.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c index c8aa55b81fd8..82810b7bff9c 100644 --- a/drivers/power/pda_power.c +++ b/drivers/power/pda_power.c | |||
@@ -209,6 +209,12 @@ static int pda_power_probe(struct platform_device *pdev) | |||
209 | 209 | ||
210 | pdata = pdev->dev.platform_data; | 210 | pdata = pdev->dev.platform_data; |
211 | 211 | ||
212 | if (pdata->init) { | ||
213 | ret = pdata->init(dev); | ||
214 | if (ret < 0) | ||
215 | goto init_failed; | ||
216 | } | ||
217 | |||
212 | update_status(); | 218 | update_status(); |
213 | update_charger(); | 219 | update_charger(); |
214 | 220 | ||
@@ -298,6 +304,9 @@ ac_irq_failed: | |||
298 | if (pdata->is_ac_online) | 304 | if (pdata->is_ac_online) |
299 | power_supply_unregister(&pda_psy_ac); | 305 | power_supply_unregister(&pda_psy_ac); |
300 | ac_supply_failed: | 306 | ac_supply_failed: |
307 | if (pdata->exit) | ||
308 | pdata->exit(dev); | ||
309 | init_failed: | ||
301 | wrongid: | 310 | wrongid: |
302 | return ret; | 311 | return ret; |
303 | } | 312 | } |
@@ -318,6 +327,8 @@ static int pda_power_remove(struct platform_device *pdev) | |||
318 | power_supply_unregister(&pda_psy_usb); | 327 | power_supply_unregister(&pda_psy_usb); |
319 | if (pdata->is_ac_online) | 328 | if (pdata->is_ac_online) |
320 | power_supply_unregister(&pda_psy_ac); | 329 | power_supply_unregister(&pda_psy_ac); |
330 | if (pdata->exit) | ||
331 | pdata->exit(dev); | ||
321 | 332 | ||
322 | return 0; | 333 | return 0; |
323 | } | 334 | } |