diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2009-03-28 18:18:54 +0300 |
---|---|---|
committer | Eric Miao <eric.y.miao@gmail.com> | 2009-06-11 22:20:44 +0800 |
commit | d5af27783f8c898b64f7079908ad3e27632a71ea (patch) | |
tree | fadee7695d8f7eaf79f6e002e5eb519e51d3a149 /arch | |
parent | 5452537210d59268cbc283526dc050f0822385f1 (diff) | |
download | linux-stable-d5af27783f8c898b64f7079908ad3e27632a71ea.tar.gz linux-stable-d5af27783f8c898b64f7079908ad3e27632a71ea.tar.bz2 linux-stable-d5af27783f8c898b64f7079908ad3e27632a71ea.zip |
[ARM] pxa/sharpsl_pm: cleanup of gpio-related code.
Replace calls to pxa_gpio_mode with respective gpio_request() /
gpio_direction_input(). In principle these calls can be dropped as
the only use of those GPIO are IRQs and IRQ code does setup GPIO
correctly.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-pxa/sharpsl_pm.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index a8facf476fa4..dfac7b9a7352 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c @@ -23,6 +23,7 @@ #include <linux/delay.h> #include <linux/leds.h> #include <linux/suspend.h> +#include <linux/gpio.h> #include <asm/mach-types.h> #include <mach/pm.h> @@ -918,9 +919,12 @@ static int __init sharpsl_pm_probe(struct platform_device *pdev) sharpsl_pm.machinfo->init(); - pxa_gpio_mode(sharpsl_pm.machinfo->gpio_acin | GPIO_IN); - pxa_gpio_mode(sharpsl_pm.machinfo->gpio_batfull | GPIO_IN); - pxa_gpio_mode(sharpsl_pm.machinfo->gpio_batlock | GPIO_IN); + gpio_request(sharpsl_pm.machinfo->gpio_acin, "AC IN"); + gpio_direction_input(sharpsl_pm.machinfo->gpio_acin); + gpio_request(sharpsl_pm.machinfo->gpio_batfull, "Battery Full"); + gpio_direction_input(sharpsl_pm.machinfo->gpio_batfull); + gpio_request(sharpsl_pm.machinfo->gpio_batlock, "Battery Lock"); + gpio_direction_input(sharpsl_pm.machinfo->gpio_batlock); /* Register interrupt handlers */ if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, "AC Input Detect", sharpsl_ac_isr)) { @@ -979,6 +983,10 @@ static int sharpsl_pm_remove(struct platform_device *pdev) if (sharpsl_pm.machinfo->batfull_irq) free_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr); + gpio_free(sharpsl_pm.machinfo->gpio_batlock); + gpio_free(sharpsl_pm.machinfo->gpio_batfull); + gpio_free(sharpsl_pm.machinfo->gpio_acin); + if (sharpsl_pm.machinfo->exit) sharpsl_pm.machinfo->exit(); |