mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-26 12:27:12 +00:00
gpio: Use more command-specific enums values
At present this file uses GPIO_OUTPUT and GPIO_INPUT as its sub-command values. These are pretty generic names. Add a 'C' suffix to avoid possible conflicts. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
This commit is contained in:
parent
6831616063
commit
66f657d15b
1 changed files with 23 additions and 14 deletions
37
cmd/gpio.c
37
cmd/gpio.c
|
@ -18,10 +18,10 @@ __weak int name_to_gpio(const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
enum gpio_cmd {
|
enum gpio_cmd {
|
||||||
GPIO_INPUT,
|
GPIOC_INPUT,
|
||||||
GPIO_SET,
|
GPIOC_SET,
|
||||||
GPIO_CLEAR,
|
GPIOC_CLEAR,
|
||||||
GPIO_TOGGLE,
|
GPIOC_TOGGLE,
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(CONFIG_DM_GPIO) && !defined(gpio_status)
|
#if defined(CONFIG_DM_GPIO) && !defined(gpio_status)
|
||||||
|
@ -158,11 +158,20 @@ static int do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
|
|
||||||
/* parse the behavior */
|
/* parse the behavior */
|
||||||
switch (*str_cmd) {
|
switch (*str_cmd) {
|
||||||
case 'i': sub_cmd = GPIO_INPUT; break;
|
case 'i':
|
||||||
case 's': sub_cmd = GPIO_SET; break;
|
sub_cmd = GPIOC_INPUT;
|
||||||
case 'c': sub_cmd = GPIO_CLEAR; break;
|
break;
|
||||||
case 't': sub_cmd = GPIO_TOGGLE; break;
|
case 's':
|
||||||
default: goto show_usage;
|
sub_cmd = GPIOC_SET;
|
||||||
|
break;
|
||||||
|
case 'c':
|
||||||
|
sub_cmd = GPIOC_CLEAR;
|
||||||
|
break;
|
||||||
|
case 't':
|
||||||
|
sub_cmd = GPIOC_TOGGLE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
goto show_usage;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_DM_GPIO)
|
#if defined(CONFIG_DM_GPIO)
|
||||||
|
@ -192,18 +201,18 @@ static int do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/* finally, let's do it: set direction and exec command */
|
/* finally, let's do it: set direction and exec command */
|
||||||
if (sub_cmd == GPIO_INPUT) {
|
if (sub_cmd == GPIOC_INPUT) {
|
||||||
gpio_direction_input(gpio);
|
gpio_direction_input(gpio);
|
||||||
value = gpio_get_value(gpio);
|
value = gpio_get_value(gpio);
|
||||||
} else {
|
} else {
|
||||||
switch (sub_cmd) {
|
switch (sub_cmd) {
|
||||||
case GPIO_SET:
|
case GPIOC_SET:
|
||||||
value = 1;
|
value = 1;
|
||||||
break;
|
break;
|
||||||
case GPIO_CLEAR:
|
case GPIOC_CLEAR:
|
||||||
value = 0;
|
value = 0;
|
||||||
break;
|
break;
|
||||||
case GPIO_TOGGLE:
|
case GPIOC_TOGGLE:
|
||||||
value = gpio_get_value(gpio);
|
value = gpio_get_value(gpio);
|
||||||
if (!IS_ERR_VALUE(value))
|
if (!IS_ERR_VALUE(value))
|
||||||
value = !value;
|
value = !value;
|
||||||
|
@ -218,7 +227,7 @@ static int do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
printf("unknown (ret=%d)\n", value);
|
printf("unknown (ret=%d)\n", value);
|
||||||
else
|
else
|
||||||
printf("%d\n", value);
|
printf("%d\n", value);
|
||||||
if (sub_cmd != GPIO_INPUT && !IS_ERR_VALUE(value)) {
|
if (sub_cmd != GPIOC_INPUT && !IS_ERR_VALUE(value)) {
|
||||||
int nval = gpio_get_value(gpio);
|
int nval = gpio_get_value(gpio);
|
||||||
|
|
||||||
if (IS_ERR_VALUE(nval))
|
if (IS_ERR_VALUE(nval))
|
||||||
|
|
Loading…
Add table
Reference in a new issue