mirror of
https://github.com/torvalds/linux.git
synced 2026-06-06 13:37:36 +02:00
gpio: sifive: use the correct register to read output values
[ Upstream commitcc38ef9368] Setting the output of a GPIO to 1 using gpiod_set_value(), followed by reading the same GPIO using gpiod_get_value(), will currently yield an incorrect result. This is because the SiFive GPIO device stores the output values in reg_set, not reg_dat. Supply the flag BGPIOF_READ_OUTPUT_REG_SET to bgpio_init() so that the generic driver reads the correct register. Fixes:96868dce64("gpio/sifive: Add GPIO driver for SiFive SoCs") Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> [Bartosz: added the Fixes tag] Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
48e413087d
commit
1ba45dd326
|
|
@ -206,7 +206,7 @@ static int sifive_gpio_probe(struct platform_device *pdev)
|
||||||
NULL,
|
NULL,
|
||||||
chip->base + SIFIVE_GPIO_OUTPUT_EN,
|
chip->base + SIFIVE_GPIO_OUTPUT_EN,
|
||||||
chip->base + SIFIVE_GPIO_INPUT_EN,
|
chip->base + SIFIVE_GPIO_INPUT_EN,
|
||||||
0);
|
BGPIOF_READ_OUTPUT_REG_SET);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "unable to init generic GPIO\n");
|
dev_err(dev, "unable to init generic GPIO\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user