fix GPIO direction setup on ar5312, and fix compiler warnings

SVN-Revision: 10811
lede-17.01
Gabor Juhos 2008-04-13 10:47:13 +00:00
parent 1563615bed
commit bb0c092672
1 changed files with 7 additions and 5 deletions

View File

@ -26,8 +26,7 @@ static inline int gpio_direction_input(unsigned gpio) {
return -ENXIO; \ return -ENXIO; \
} else { \ } else { \
sysRegWrite(AR531X_GPIO_CR, \ sysRegWrite(AR531X_GPIO_CR, \
( sysRegRead(AR531X_GPIO_CR) & \ sysRegRead(AR531X_GPIO_CR) | \
~(AR531X_GPIO_CR_M(gpio)) ) | \
AR531X_GPIO_CR_I(gpio) ); \ AR531X_GPIO_CR_I(gpio) ); \
return 0; \ return 0; \
} \ } \
@ -42,6 +41,7 @@ static inline int gpio_direction_input(unsigned gpio) {
return 0; \ return 0; \
} \ } \
) )
return -ENXIO;
} }
/* Sets a gpio to output with value, or returns ENXIO for non-existent gpio */ /* 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) ) | \ ~(1 << gpio) ) | \
((value!=0) << gpio)) ); \ ((value!=0) << gpio)) ); \
sysRegWrite(AR531X_GPIO_CR, \ sysRegWrite(AR531X_GPIO_CR, \
sysRegRead(AR531X_GPIO_CR) | \ ( sysRegRead(AR531X_GPIO_CR) & \
AR531X_GPIO_CR_O(gpio) ); \ ~(AR531X_GPIO_CR_M(gpio)) )); \
return 0; \ return 0; \
} \ } \
) )
@ -72,12 +72,14 @@ static inline int gpio_direction_output(unsigned gpio, int value) {
return 0; \ return 0; \
} \ } \
) )
return -ENXIO;
} }
/* Reads the gpio pin. Unchecked function */ /* Reads the gpio pin. Unchecked function */
static inline int gpio_get_value(unsigned gpio) { static inline int gpio_get_value(unsigned gpio) {
DO_AR5312(return (sysRegRead(AR531X_GPIO_DI) & (1 << gpio));) DO_AR5312(return (sysRegRead(AR531X_GPIO_DI) & (1 << gpio));)
DO_AR5315(return (sysRegRead(AR5315_GPIO_DI) & (1 << gpio));) DO_AR5315(return (sysRegRead(AR5315_GPIO_DI) & (1 << gpio));)
return 0;
} }
/* Writes to the gpio pin. Unchecked function */ /* Writes to the gpio pin. Unchecked function */