diff options
author | Ryan Mallon <ryan@bluewatersys.com> | 2009-06-24 18:15:23 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-06-27 06:03:47 -0400 |
commit | 7c6425a0404399ba78852ef4108007ecf51ef3dc (patch) | |
tree | 59579bebb88e746307df21361674f8ce218663a2 /arch/arm/mach-at91/gpio.c | |
parent | 226ddb9833a3c2f1087bfac70659d8e318d3c31f (diff) |
[ARM] 5566/1: Remove at91_gpiolib_request
Remove at91_gpiolib_request. It returns -EPERM if a request pin is not
in GPIO mode, however we want to be able to gpio_request alternative
function pins to reserve them, and in some cases we need to be able to
use the gpiolib functions on alternative function pins.
Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-at91/gpio.c')
-rw-r--r-- | arch/arm/mach-at91/gpio.c | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c index f2236f0e101f..ae4772e744ac 100644 --- a/arch/arm/mach-at91/gpio.c +++ b/arch/arm/mach-at91/gpio.c | |||
@@ -44,13 +44,11 @@ static int at91_gpiolib_direction_output(struct gpio_chip *chip, | |||
44 | unsigned offset, int val); | 44 | unsigned offset, int val); |
45 | static int at91_gpiolib_direction_input(struct gpio_chip *chip, | 45 | static int at91_gpiolib_direction_input(struct gpio_chip *chip, |
46 | unsigned offset); | 46 | unsigned offset); |
47 | static int at91_gpiolib_request(struct gpio_chip *chip, unsigned offset); | ||
48 | 47 | ||
49 | #define AT91_GPIO_CHIP(name, base_gpio, nr_gpio) \ | 48 | #define AT91_GPIO_CHIP(name, base_gpio, nr_gpio) \ |
50 | { \ | 49 | { \ |
51 | .chip = { \ | 50 | .chip = { \ |
52 | .label = name, \ | 51 | .label = name, \ |
53 | .request = at91_gpiolib_request, \ | ||
54 | .direction_input = at91_gpiolib_direction_input, \ | 52 | .direction_input = at91_gpiolib_direction_input, \ |
55 | .direction_output = at91_gpiolib_direction_output, \ | 53 | .direction_output = at91_gpiolib_direction_output, \ |
56 | .get = at91_gpiolib_get, \ | 54 | .get = at91_gpiolib_get, \ |
@@ -588,19 +586,6 @@ static void at91_gpiolib_set(struct gpio_chip *chip, unsigned offset, int val) | |||
588 | __raw_writel(mask, pio + (val ? PIO_SODR : PIO_CODR)); | 586 | __raw_writel(mask, pio + (val ? PIO_SODR : PIO_CODR)); |
589 | } | 587 | } |
590 | 588 | ||
591 | static int at91_gpiolib_request(struct gpio_chip *chip, unsigned offset) | ||
592 | { | ||
593 | unsigned pin = chip->base + offset; | ||
594 | void __iomem *pio = pin_to_controller(pin); | ||
595 | unsigned mask = pin_to_mask(pin); | ||
596 | |||
597 | /* Cannot request GPIOs that are in alternate function mode */ | ||
598 | if (!(__raw_readl(pio + PIO_PSR) & mask)) | ||
599 | return -EPERM; | ||
600 | |||
601 | return 0; | ||
602 | } | ||
603 | |||
604 | static void at91_gpiolib_dbg_show(struct seq_file *s, struct gpio_chip *chip) | 589 | static void at91_gpiolib_dbg_show(struct seq_file *s, struct gpio_chip *chip) |
605 | { | 590 | { |
606 | int i; | 591 | int i; |