Commit 90dae4eb authored by Maxime Ripard's avatar Maxime Ripard Committed by Linus Walleij

gpio: mxs: Use set and clear capabilities of the gpio controller

The current driver doesn't use the set and clear registers found on the
mxs gpio controller.

This leads the generic gpio controller to be using some internal value
to avoid looking up the value stored in the registers, making it behave
pretty much like a cache.

This raises some coherency problem when a gpio is not modified by the
gpio controller, while it can easily be fixed by using the set and clear
registers.
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: default avatarShawn Guo <shawn.guo@linaro.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 2519f9ab
...@@ -326,7 +326,8 @@ static int mxs_gpio_probe(struct platform_device *pdev) ...@@ -326,7 +326,8 @@ static int mxs_gpio_probe(struct platform_device *pdev)
err = bgpio_init(&port->bgc, &pdev->dev, 4, err = bgpio_init(&port->bgc, &pdev->dev, 4,
port->base + PINCTRL_DIN(port), port->base + PINCTRL_DIN(port),
port->base + PINCTRL_DOUT(port), NULL, port->base + PINCTRL_DOUT(port) + MXS_SET,
port->base + PINCTRL_DOUT(port) + MXS_CLR,
port->base + PINCTRL_DOE(port), NULL, 0); port->base + PINCTRL_DOE(port), NULL, 0);
if (err) if (err)
goto out_irqdesc_free; goto out_irqdesc_free;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment