diff options
| author | Luka Kovacic <[email protected]> | 2020-01-05 20:10:56 +0100 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2020-02-07 13:59:58 -0500 |
| commit | 4dbc107f4683e45749045b97f0b529d5eb5178a9 (patch) | |
| tree | cb620b0b0e18ca606ebe74bcc920977a4883c3a4 /cmd/gpio.c | |
| parent | 96ff825d31ae9a1410600f002731047c3c2de8b1 (diff) | |
cmd: gpio: Correct do_gpio() return value
Use the correct return value in function do_gpio() and update
commands documentation with the return values from command_ret_t enum.
CMD_RET_SUCCESS is returned on command success and CMD_RET_FAILURE is
returned on command failure.
The command was returning the pin value, which caused confusion when
debugging (#define DEBUG).
Signed-off-by: Luka Kovacic <[email protected]>
Tested-by: Robert Marko <[email protected]>
Diffstat (limited to 'cmd/gpio.c')
| -rw-r--r-- | cmd/gpio.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/cmd/gpio.c b/cmd/gpio.c index eff36ab2af3..67eef83c951 100644 --- a/cmd/gpio.c +++ b/cmd/gpio.c @@ -223,23 +223,35 @@ static int do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) gpio_direction_output(gpio, value); } printf("gpio: pin %s (gpio %u) value is ", str_gpio, gpio); - if (IS_ERR_VALUE(value)) + + if (IS_ERR_VALUE(value)) { printf("unknown (ret=%d)\n", value); - else + goto err; + } else { printf("%d\n", value); + } + if (sub_cmd != GPIOC_INPUT && !IS_ERR_VALUE(value)) { int nval = gpio_get_value(gpio); - if (IS_ERR_VALUE(nval)) + if (IS_ERR_VALUE(nval)) { printf(" Warning: no access to GPIO output value\n"); - else if (nval != value) + goto err; + } else if (nval != value) { printf(" Warning: value of pin is still %d\n", nval); + goto err; + } } if (ret != -EBUSY) gpio_free(gpio); - return value; + return CMD_RET_SUCCESS; + +err: + if (ret != -EBUSY) + gpio_free(gpio); + return CMD_RET_FAILURE; } U_BOOT_CMD(gpio, 4, 0, do_gpio, |
