aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2007-08-27 10:36:29 +0000
committerFlorian Fainelli <florian@openwrt.org>2007-08-27 10:36:29 +0000
commit6b3f2ca7de643ece97ee2f7922724db46a604ba7 (patch)
treec71b6989c6caa355a7e7ccecd68aac32c3b1f8df
parentaa5fa29235be3f84acb5c2f4f439ea0b07cd90ae (diff)
downloadupstream-6b3f2ca7de643ece97ee2f7922724db46a604ba7.tar.gz
upstream-6b3f2ca7de643ece97ee2f7922724db46a604ba7.tar.bz2
upstream-6b3f2ca7de643ece97ee2f7922724db46a604ba7.zip
Make the architecture gpio more readable
SVN-Revision: 8504
-rw-r--r--target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c15
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)