diff options
Diffstat (limited to 'arch/blackfin/cpu/cmd_gpio.c')
| -rw-r--r-- | arch/blackfin/cpu/cmd_gpio.c | 34 | 
1 files changed, 17 insertions, 17 deletions
| diff --git a/arch/blackfin/cpu/cmd_gpio.c b/arch/blackfin/cpu/cmd_gpio.c index 4430c90d4..e96413b63 100644 --- a/arch/blackfin/cpu/cmd_gpio.c +++ b/arch/blackfin/cpu/cmd_gpio.c @@ -8,6 +8,7 @@  #include <common.h>  #include <command.h> +#include <linux/ctype.h>  #include <asm/blackfin.h>  #include <asm/gpio.h> @@ -45,8 +46,8 @@ int do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	/* grab the [p]<port> portion */  	ulong port_base; -	if (*str_pin == 'p') ++str_pin; -	switch (*str_pin) { +	if (tolower(*str_pin) == 'p') ++str_pin; +	switch (tolower(*str_pin)) {  #ifdef GPIO_PA0  		case 'a': port_base = GPIO_PA0; break;  #endif @@ -90,29 +91,28 @@ int do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	gpio_request(gpio, "cmd_gpio");  	/* finally, let's do it: set direction and exec command */ +	ulong value;  	if (sub_cmd == GPIO_INPUT) {  		gpio_direction_input(gpio); -		printf("gpio: pin %lu on port %c set to input\n", pin, *str_pin); -		return 0; -	} - -	ulong value; -	switch (sub_cmd) { -		case GPIO_SET:    value = 1; break; -		case GPIO_CLEAR:  value = 0; break; -		case GPIO_TOGGLE: value = !gpio_get_value(gpio); break; -		default:          goto show_usage; +		value = gpio_get_value(gpio); +	} else { +		switch (sub_cmd) { +			case GPIO_SET:    value = 1; break; +			case GPIO_CLEAR:  value = 0; break; +			case GPIO_TOGGLE: value = !gpio_get_value(gpio); break; +			default:          goto show_usage; +		} +		gpio_direction_output(gpio, value);  	} -	gpio_direction_output(gpio, value);  	printf("gpio: pin %lu on port %c (gpio %lu) value is %lu\n",  		pin, *str_pin, gpio, value);  	gpio_free(gpio); -	return 0; +	return value;  }  U_BOOT_CMD(gpio, 3, 0, do_gpio, -	"set/clear/toggle gpio output pins", -	"<set|clear|toggle> <port><pin>\n" -	"    - set/clear/toggle the specified pin (e.g. PF10)"); +	"input/set/clear/toggle gpio output pins", +	"<input|set|clear|toggle> <port><pin>\n" +	"    - input/set/clear/toggle the specified pin (e.g. PF10)"); |