diff options
author | Philipp Zabel <philipp.zabel@gmail.com> | 2007-02-20 13:58:20 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-20 17:10:16 -0800 |
commit | 5b7e42b2d38e4c4d0cb105a2ad83d43f6957f59e (patch) | |
tree | 76758cee84ef63ab138943a2597b645ce58462cb /include | |
parent | adff264fe66d78a166dc887f861e7273d0cb1654 (diff) | |
download | talos-obmc-linux-5b7e42b2d38e4c4d0cb105a2ad83d43f6957f59e.tar.gz talos-obmc-linux-5b7e42b2d38e4c4d0cb105a2ad83d43f6957f59e.zip |
[PATCH] GPIO API: SA1100 wrapper cleanup
Based on the discussion last december (http://lkml.org/lkml/2006/12/20/241),
this patch
- adds gpio_direction_input/output functions to
generic.c instead of making them inline,
- fixes comment and includes and uses inline functions
instead of macros in gpio.h
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-arm/arch-sa1100/gpio.h | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/include/asm-arm/arch-sa1100/gpio.h b/include/asm-arm/arch-sa1100/gpio.h index a331fe3f6e48..da7575b0e5d0 100644 --- a/include/asm-arm/arch-sa1100/gpio.h +++ b/include/asm-arm/arch-sa1100/gpio.h @@ -1,5 +1,5 @@ /* - * linux/include/asm-arm/arch-pxa/gpio.h + * linux/include/asm-arm/arch-sa1100/gpio.h * * SA1100 GPIO wrappers for arch-neutral GPIO calls * @@ -24,11 +24,8 @@ #ifndef __ASM_ARCH_SA1100_GPIO_H #define __ASM_ARCH_SA1100_GPIO_H -#include <asm/arch/SA-1100.h> -#include <asm/arch/irqs.h> -#include <asm/arch/hardware.h> - -#include <asm/errno.h> +#include <asm/hardware.h> +#include <asm/irq.h> static inline int gpio_request(unsigned gpio, const char *label) { @@ -40,26 +37,23 @@ static inline void gpio_free(unsigned gpio) return; } -static inline int gpio_direction_input(unsigned gpio) +extern int gpio_direction_input(unsigned gpio); +extern int gpio_direction_output(unsigned gpio); + + +static inline int gpio_get_value(unsigned gpio) { - if (gpio > GPIO_MAX) - return -EINVAL; - GPDR = (GPDR_In << gpio) 0 + return GPLR & GPIO_GPIO(gpio); } -static inline int gpio_direction_output(unsigned gpio) +static inline void gpio_set_value(unsigned gpio, int value) { - if (gpio > GPIO_MAX) - return -EINVAL; - GPDR = (GPDR_Out << gpio) 0 + if (value) + GPSR = GPIO_GPIO(gpio); + else + GPCR = GPIO_GPIO(gpio); } -#define gpio_get_value(gpio) \ - (GPLR & GPIO_GPIO(gpio)) - -#define gpio_set_value(gpio,value) \ - ((value) ? (GPSR = GPIO_GPIO(gpio)) : (GPCR(gpio) = GPIO_GPIO(gpio))) - #include <asm-generic/gpio.h> /* cansleep wrappers */ static inline unsigned gpio_to_irq(unsigned gpio) |