Skip to content

Commit

Permalink
ARM: 7901/1: sa1100: h3600: refactor IrDA GPIO handling
Browse files Browse the repository at this point in the history
Use gpio_request_array/gpio_free_array to request all GPIOs at once.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Dmitry Eremin-Solenikov authored and Russell King committed Dec 12, 2013
1 parent d8eec82 commit 15cc324
Showing 1 changed file with 7 additions and 19 deletions.
26 changes: 7 additions & 19 deletions arch/arm/mach-sa1100/h3600.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,11 @@ static void __init h3600_map_io(void)
/*
* This turns the IRDA power on or off on the Compaq H3600
*/
static struct gpio h3600_irda_gpio[] = {
{ H3600_EGPIO_IR_ON, GPIOF_OUT_INIT_LOW, "IrDA power" },
{ H3600_EGPIO_IR_FSEL, GPIOF_OUT_INIT_LOW, "IrDA fsel" },
};

static int h3600_irda_set_power(struct device *dev, unsigned int state)
{
gpio_set_value(H3600_EGPIO_IR_ON, state);
Expand All @@ -110,29 +115,12 @@ static void h3600_irda_set_speed(struct device *dev, unsigned int speed)

static int h3600_irda_startup(struct device *dev)
{
int err = gpio_request(H3600_EGPIO_IR_ON, "IrDA power");
if (err)
goto err1;
err = gpio_direction_output(H3600_EGPIO_IR_ON, 0);
if (err)
goto err2;
err = gpio_request(H3600_EGPIO_IR_FSEL, "IrDA fsel");
if (err)
goto err2;
err = gpio_direction_output(H3600_EGPIO_IR_FSEL, 0);
if (err)
goto err3;
return 0;

err3: gpio_free(H3600_EGPIO_IR_FSEL);
err2: gpio_free(H3600_EGPIO_IR_ON);
err1: return err;
return gpio_request_array(h3600_irda_gpio, sizeof(h3600_irda_gpio));
}

static void h3600_irda_shutdown(struct device *dev)
{
gpio_free(H3600_EGPIO_IR_ON);
gpio_free(H3600_EGPIO_IR_FSEL);
return gpio_free_array(h3600_irda_gpio, sizeof(h3600_irda_gpio));
}

static struct irda_platform_data h3600_irda_data = {
Expand Down

0 comments on commit 15cc324

Please sign in to comment.