Make the architecture gpio more readable
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 27 Aug 2007 10:36:29 +0000 (10:36 +0000)
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 27 Aug 2007 10:36:29 +0000 (10:36 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8504 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c

index 28a33db..2c38867 100644 (file)
 #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)
This page took 0.025689 seconds and 4 git commands to generate.