lua: Fixed some cross-platform issues for PPC (and probably other architectures)
[openwrt.git] / 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.02567 seconds and 4 git commands to generate.