diff options
| author | Heinrich Schuchardt <[email protected]> | 2020-09-14 12:50:55 +0200 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2020-10-14 11:16:34 -0400 |
| commit | 7cd96a47281145aca4f9c8960a0a2e185b8bd70c (patch) | |
| tree | ddbbed43a10c1a25a9c813cf6cc347e545b50524 /drivers | |
| parent | 39916bb45f9e233d6df8ee478c539b100116a34a (diff) | |
drivers: gpio: keep output value for input on sandbox
For testing purposes keep the output value when switching to input.
This allows us to manipulate the input value via the gpio command.
Signed-off-by: Heinrich Schuchardt <[email protected]>
Reviewed-by: Philippe Reynes <[email protected]>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpio/sandbox.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpio/sandbox.c b/drivers/gpio/sandbox.c index c2f80472b83..eb2600de311 100644 --- a/drivers/gpio/sandbox.c +++ b/drivers/gpio/sandbox.c @@ -185,7 +185,15 @@ static int sb_gpio_set_dir_flags(struct udevice *dev, unsigned int offset, dir_flags = get_gpio_dir_flags(dev, offset); - *dir_flags = flags; + /* + * For testing purposes keep the output value when switching to input. + * This allows us to manipulate the input value via the gpio command. + */ + if (flags & GPIOD_IS_IN) + *dir_flags = (flags & ~GPIOD_IS_OUT_ACTIVE) | + (*dir_flags & GPIOD_IS_OUT_ACTIVE); + else + *dir_flags = flags; return 0; } |
