Commit a47b9158 authored by Russell King's avatar Russell King Committed by Linus Walleij

gpio: omap: simplify omap_toggle_gpio_edge_triggering()

This function open-codes an exclusive-or bitwise operation using an
if() statement and explicitly setting or clearing the bit. Instead,
use an exclusive-or operation instead, and simplify the function.

We can combine the preprocessor conditional using IS_ENABLED() and
gain some additional compilation coverage.
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
Tested-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 8ee1de65
...@@ -326,32 +326,18 @@ static inline void omap_set_gpio_trigger(struct gpio_bank *bank, int gpio, ...@@ -326,32 +326,18 @@ static inline void omap_set_gpio_trigger(struct gpio_bank *bank, int gpio,
} }
} }
#ifdef CONFIG_ARCH_OMAP1
/* /*
* This only applies to chips that can't do both rising and falling edge * This only applies to chips that can't do both rising and falling edge
* detection at once. For all other chips, this function is a noop. * detection at once. For all other chips, this function is a noop.
*/ */
static void omap_toggle_gpio_edge_triggering(struct gpio_bank *bank, int gpio) static void omap_toggle_gpio_edge_triggering(struct gpio_bank *bank, int gpio)
{ {
void __iomem *reg = bank->base; if (IS_ENABLED(CONFIG_ARCH_OMAP1) && bank->regs->irqctrl) {
u32 l = 0; void __iomem *reg = bank->base + bank->regs->irqctrl;
if (!bank->regs->irqctrl)
return;
reg += bank->regs->irqctrl;
l = readl_relaxed(reg); writel_relaxed(readl_relaxed(reg) ^ BIT(gpio), reg);
if ((l >> gpio) & 1) }
l &= ~(BIT(gpio));
else
l |= BIT(gpio);
writel_relaxed(l, reg);
} }
#else
static void omap_toggle_gpio_edge_triggering(struct gpio_bank *bank, int gpio) {}
#endif
static int omap_set_gpio_triggering(struct gpio_bank *bank, int gpio, static int omap_set_gpio_triggering(struct gpio_bank *bank, int gpio,
unsigned trigger) unsigned trigger)
......
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