Commit d490be6d authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Linus Walleij

pinctrl: mcp23s08: Rename and change function that wraps regmap_update_bits()

The semantic of mcp_set_mask() was surprising to me when I first read
that driver. So it was unexpected that in the call

	mcp_set_mask(mcp, MCP_OLAT, mask, value);

value was a bool. Make the function a thinner wrapper around
regmap_update_bits() and rename it to also have a similar name.
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20230324164957.485924-2-u.kleine-koenig@pengutronix.deSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 2a6ac65c
...@@ -144,10 +144,9 @@ static int mcp_write(struct mcp23s08 *mcp, unsigned int reg, unsigned int val) ...@@ -144,10 +144,9 @@ static int mcp_write(struct mcp23s08 *mcp, unsigned int reg, unsigned int val)
return regmap_write(mcp->regmap, reg << mcp->reg_shift, val); return regmap_write(mcp->regmap, reg << mcp->reg_shift, val);
} }
static int mcp_set_mask(struct mcp23s08 *mcp, unsigned int reg, static int mcp_update_bits(struct mcp23s08 *mcp, unsigned int reg,
unsigned int mask, bool enabled) unsigned int mask, unsigned int val)
{ {
u16 val = enabled ? 0xffff : 0x0000;
return regmap_update_bits(mcp->regmap, reg << mcp->reg_shift, return regmap_update_bits(mcp->regmap, reg << mcp->reg_shift,
mask, val); mask, val);
} }
...@@ -156,7 +155,7 @@ static int mcp_set_bit(struct mcp23s08 *mcp, unsigned int reg, ...@@ -156,7 +155,7 @@ static int mcp_set_bit(struct mcp23s08 *mcp, unsigned int reg,
unsigned int pin, bool enabled) unsigned int pin, bool enabled)
{ {
u16 mask = BIT(pin); u16 mask = BIT(pin);
return mcp_set_mask(mcp, reg, mask, enabled); return mcp_update_bits(mcp, reg, mask, enabled ? mask : 0);
} }
static const struct pinctrl_pin_desc mcp23x08_pins[] = { static const struct pinctrl_pin_desc mcp23x08_pins[] = {
...@@ -310,7 +309,7 @@ static int mcp23s08_get(struct gpio_chip *chip, unsigned offset) ...@@ -310,7 +309,7 @@ static int mcp23s08_get(struct gpio_chip *chip, unsigned offset)
static int __mcp23s08_set(struct mcp23s08 *mcp, unsigned mask, bool value) static int __mcp23s08_set(struct mcp23s08 *mcp, unsigned mask, bool value)
{ {
return mcp_set_mask(mcp, MCP_OLAT, mask, value); return mcp_update_bits(mcp, MCP_OLAT, mask, value ? mask : 0);
} }
static void mcp23s08_set(struct gpio_chip *chip, unsigned offset, int value) static void mcp23s08_set(struct gpio_chip *chip, unsigned offset, int value)
...@@ -333,7 +332,7 @@ mcp23s08_direction_output(struct gpio_chip *chip, unsigned offset, int value) ...@@ -333,7 +332,7 @@ mcp23s08_direction_output(struct gpio_chip *chip, unsigned offset, int value)
mutex_lock(&mcp->lock); mutex_lock(&mcp->lock);
status = __mcp23s08_set(mcp, mask, value); status = __mcp23s08_set(mcp, mask, value);
if (status == 0) { if (status == 0) {
status = mcp_set_mask(mcp, MCP_IODIR, mask, false); status = mcp_update_bits(mcp, MCP_IODIR, mask, 0);
} }
mutex_unlock(&mcp->lock); mutex_unlock(&mcp->lock);
return status; return status;
......
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