Commit 43a2dcec authored by Gregory CLEMENT's avatar Gregory CLEMENT Committed by Linus Walleij

gpio: mvebu: fix regmap_update_bits usage

In some place in the driver regmap_update_bits was misused. Indeed the
last argument is not the value of the bit (or group of bits) itself but
the mask value inside the register.

So when setting the bit N, then the value must be BIT(N) and not 1.

CC: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Reviewed-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: default avatarRalph Sennhauser <ralph.sennhauser@gmail.com>
Tested-by: default avatarChris Packham <Chris.Packham@alliedtelesis.co.nz>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 3638bd4a
......@@ -341,7 +341,7 @@ static int mvebu_gpio_direction_input(struct gpio_chip *chip, unsigned int pin)
return ret;
regmap_update_bits(mvchip->regs, GPIO_IO_CONF_OFF,
BIT(pin), 1);
BIT(pin), BIT(pin));
return 0;
}
......@@ -503,7 +503,7 @@ static int mvebu_gpio_irq_set_type(struct irq_data *d, unsigned int type)
case IRQ_TYPE_EDGE_FALLING:
case IRQ_TYPE_LEVEL_LOW:
regmap_update_bits(mvchip->regs, GPIO_IN_POL_OFF,
BIT(pin), 1);
BIT(pin), BIT(pin));
break;
case IRQ_TYPE_EDGE_BOTH: {
u32 data_in, in_pol, val;
......
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