[atheros] fix GPIO direction setup on ar5312, and fix compiler warnings
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 13 Apr 2008 10:47:13 +0000 (10:47 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 13 Apr 2008 10:47:13 +0000 (10:47 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10811 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/atheros/files/include/asm-mips/mach-atheros/gpio.h

index 560b8cc..db7347c 100644 (file)
@@ -26,9 +26,8 @@ static inline int gpio_direction_input(unsigned gpio) {
                                return -ENXIO;                          \
                        } else {                                        \
                                sysRegWrite(AR531X_GPIO_CR,             \
-                                       ( sysRegRead(AR531X_GPIO_CR) &  \
-                                         ~(AR531X_GPIO_CR_M(gpio)) ) | \
-                                         AR531X_GPIO_CR_I(gpio) );     \
+                                       sysRegRead(AR531X_GPIO_CR) |    \
+                                       AR531X_GPIO_CR_I(gpio) );       \
                                return 0;                               \
                        }                                               \
        )
@@ -42,6 +41,7 @@ static inline int gpio_direction_input(unsigned gpio) {
                                return 0;                               \
                        }                                               \
        )
+       return -ENXIO;
 }
 
 /* Sets a gpio to output with value, or returns ENXIO for non-existent gpio */
@@ -54,8 +54,8 @@ static inline int gpio_direction_output(unsigned gpio, int value) {
                                          ~(1 << gpio) ) |              \
                                          ((value!=0) << gpio)) );      \
                                sysRegWrite(AR531X_GPIO_CR,             \
-                                       sysRegRead(AR531X_GPIO_CR) |    \
-                                       AR531X_GPIO_CR_O(gpio) );       \
+                                       ( sysRegRead(AR531X_GPIO_CR) &  \
+                                         ~(AR531X_GPIO_CR_M(gpio)) )); \
                                return 0;                               \
                        }                                               \
        )
@@ -72,12 +72,14 @@ static inline int gpio_direction_output(unsigned gpio, int value) {
                                return 0;                               \
                        }                                               \
        )
+       return -ENXIO;
 }
 
 /* Reads the gpio pin.  Unchecked function */
 static inline int gpio_get_value(unsigned gpio) {
        DO_AR5312(return (sysRegRead(AR531X_GPIO_DI) & (1 << gpio));)
        DO_AR5315(return (sysRegRead(AR5315_GPIO_DI) & (1 << gpio));)
+       return 0;
 }
 
 /* Writes to the gpio pin.  Unchecked function */
This page took 0.026007 seconds and 4 git commands to generate.