diff options
author | Florian Fainelli <florian@openwrt.org> | 2007-08-27 10:36:29 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2007-08-27 10:36:29 +0000 |
commit | 6b3f2ca7de643ece97ee2f7922724db46a604ba7 (patch) | |
tree | c71b6989c6caa355a7e7ccecd68aac32c3b1f8df /target/linux/rdc-2.6/files/arch/i386/mach-rdc | |
parent | aa5fa29235be3f84acb5c2f4f439ea0b07cd90ae (diff) | |
download | master-31e0f0ae-6b3f2ca7de643ece97ee2f7922724db46a604ba7.tar.gz master-31e0f0ae-6b3f2ca7de643ece97ee2f7922724db46a604ba7.tar.bz2 master-31e0f0ae-6b3f2ca7de643ece97ee2f7922724db46a604ba7.zip |
Make the architecture gpio more readable
SVN-Revision: 8504
Diffstat (limited to 'target/linux/rdc-2.6/files/arch/i386/mach-rdc')
-rw-r--r-- | target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c b/target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c index 28a33db076..2c3886771d 100644 --- a/target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c +++ b/target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c @@ -15,8 +15,12 @@ #include <linux/module.h> #include <linux/delay.h> -#define RDC3210_CFGREG_ADDR 0x0CF8 -#define RDC3210_CFGREG_DATA 0x0CFC +#include <asm/mach-rdc/rdc321x_defs.h> + +static inline int rdc_gpio_is_valid(unsigned gpio) +{ + return ((gpio > RDC_MAX_GPIO) ? 0 : 1); +} static unsigned int rdc_gpio_read(unsigned gpio) { @@ -47,7 +51,8 @@ static void rdc_gpio_write(unsigned int val) int rdc_gpio_get_value(unsigned gpio) { - return (gpio>0x3A?-EINVAL:(int)rdc_gpio_read(gpio)); + if (rdc_gpio_is_valid(gpio)) + return (int)rdc_gpio_read(gpio); } EXPORT_SYMBOL(rdc_gpio_get_value); @@ -55,7 +60,9 @@ void rdc_gpio_set_value(unsigned gpio, int value) { unsigned int val; - if (gpio > 0x3A) return; + if (!rdc_gpio_is_valid(gpio)) + return; + val = rdc_gpio_read(gpio); if (value) |