summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2018-09-03 09:59:57 +0200
committerLinus Walleij <linus.walleij@linaro.org>2018-09-10 08:49:14 +0200
commit4bef8bf20b69c3a98dbb9c8e406c22adb8fd3903 (patch)
tree76a89d32b50333e22d72815f018cd188e8bf252e
parentb4f53ed9633cf3801d7f5a9aa3c317a4e3d2d0e3 (diff)
downloadlwn-4bef8bf20b69c3a98dbb9c8e406c22adb8fd3903.tar.gz
lwn-4bef8bf20b69c3a98dbb9c8e406c22adb8fd3903.zip
gpio: twl6040: Use bitops
It's nice to use BIT() macros rather than open coding the same. It's good practice as sometimes people use BIT(31) and forget that the constant must be cast unsigned long. Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/gpio/gpio-twl6040.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpio/gpio-twl6040.c b/drivers/gpio/gpio-twl6040.c
index c0c18c80abbd..77d50542bf61 100644
--- a/drivers/gpio/gpio-twl6040.c
+++ b/drivers/gpio/gpio-twl6040.c
@@ -15,6 +15,7 @@
#include <linux/irq.h>
#include <linux/gpio/driver.h>
#include <linux/platform_device.h>
+#include <linux/bitops.h>
#include <linux/of.h>
#include <linux/mfd/twl6040.h>
@@ -28,7 +29,7 @@ static int twl6040gpo_get(struct gpio_chip *chip, unsigned offset)
if (ret < 0)
return ret;
- return (ret >> offset) & 1;
+ return !!(ret & BIT(offset));
}
static int twl6040gpo_direction_out(struct gpio_chip *chip, unsigned offset,
@@ -49,9 +50,9 @@ static void twl6040gpo_set(struct gpio_chip *chip, unsigned offset, int value)
return;
if (value)
- gpoctl = ret | (1 << offset);
+ gpoctl = ret | BIT(offset);
else
- gpoctl = ret & ~(1 << offset);
+ gpoctl = ret & ~BIT(offset);
twl6040_reg_write(twl6040, TWL6040_REG_GPOCTL, gpoctl);
}