Commit 2070417d authored by Marek Vasut's avatar Marek Vasut Committed by Eric Miao

ARM: pxa: Use gpio arrays in palmld_pcmcia driver

Use gpio_request_array() / gpio_free_array(), this makes the code
cleaner and less error prone.
Signed-off-by: default avatarMarek Vasut <marek.vasut@gmail.com>
parent e593106c
...@@ -20,49 +20,27 @@ ...@@ -20,49 +20,27 @@
#include <mach/palmld.h> #include <mach/palmld.h>
#include "soc_common.h" #include "soc_common.h"
static struct gpio palmld_pcmcia_gpios[] = {
{ GPIO_NR_PALMLD_PCMCIA_POWER, GPIOF_INIT_LOW, "PCMCIA Power" },
{ GPIO_NR_PALMLD_PCMCIA_RESET, GPIOF_INIT_HIGH,"PCMCIA Reset" },
{ GPIO_NR_PALMLD_PCMCIA_READY, GPIOF_IN, "PCMCIA Ready" },
};
static int palmld_pcmcia_hw_init(struct soc_pcmcia_socket *skt) static int palmld_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
{ {
int ret; int ret;
ret = gpio_request(GPIO_NR_PALMLD_PCMCIA_POWER, "PCMCIA PWR"); ret = gpio_request_array(palmld_pcmcia_gpios,
if (ret) ARRAY_SIZE(palmld_pcmcia_gpios));
goto err1;
ret = gpio_direction_output(GPIO_NR_PALMLD_PCMCIA_POWER, 0);
if (ret)
goto err2;
ret = gpio_request(GPIO_NR_PALMLD_PCMCIA_RESET, "PCMCIA RST");
if (ret)
goto err2;
ret = gpio_direction_output(GPIO_NR_PALMLD_PCMCIA_RESET, 1);
if (ret)
goto err3;
ret = gpio_request(GPIO_NR_PALMLD_PCMCIA_READY, "PCMCIA RDY");
if (ret)
goto err3;
ret = gpio_direction_input(GPIO_NR_PALMLD_PCMCIA_READY);
if (ret)
goto err4;
skt->socket.pci_irq = IRQ_GPIO(GPIO_NR_PALMLD_PCMCIA_READY); skt->socket.pci_irq = IRQ_GPIO(GPIO_NR_PALMLD_PCMCIA_READY);
return 0;
err4:
gpio_free(GPIO_NR_PALMLD_PCMCIA_READY);
err3:
gpio_free(GPIO_NR_PALMLD_PCMCIA_RESET);
err2:
gpio_free(GPIO_NR_PALMLD_PCMCIA_POWER);
err1:
return ret; return ret;
} }
static void palmld_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt) static void palmld_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt)
{ {
gpio_free(GPIO_NR_PALMLD_PCMCIA_READY); gpio_free_array(palmld_pcmcia_gpios, ARRAY_SIZE(palmld_pcmcia_gpios));
gpio_free(GPIO_NR_PALMLD_PCMCIA_RESET);
gpio_free(GPIO_NR_PALMLD_PCMCIA_POWER);
} }
static void palmld_pcmcia_socket_state(struct soc_pcmcia_socket *skt, static void palmld_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment