|
@@ -35,6 +35,7 @@
|
|
|
#include <linux/interrupt.h>
|
|
|
#include <linux/irq.h>
|
|
|
#include <linux/irqdomain.h>
|
|
|
+#include <linux/bitops.h>
|
|
|
|
|
|
#define GRGPIO_MAX_NGPIO 32
|
|
|
|
|
@@ -96,12 +97,11 @@ static void grgpio_set_imask(struct grgpio_priv *priv, unsigned int offset,
|
|
|
int val)
|
|
|
{
|
|
|
struct gpio_chip *gc = &priv->gc;
|
|
|
- unsigned long mask = gc->pin2mask(gc, offset);
|
|
|
|
|
|
if (val)
|
|
|
- priv->imask |= mask;
|
|
|
+ priv->imask |= BIT(offset);
|
|
|
else
|
|
|
- priv->imask &= ~mask;
|
|
|
+ priv->imask &= ~BIT(offset);
|
|
|
gc->write_reg(priv->regs + GRGPIO_IMASK, priv->imask);
|
|
|
}
|
|
|
|