|
@@ -766,9 +766,9 @@ static void adi_gpio_set_value(struct gpio_chip *chip, unsigned offset,
|
|
|
spin_lock_irqsave(&port->lock, flags);
|
|
|
|
|
|
if (value)
|
|
|
- writew(1 << offset, ®s->data_set);
|
|
|
+ writew(BIT(offset), ®s->data_set);
|
|
|
else
|
|
|
- writew(1 << offset, ®s->data_clear);
|
|
|
+ writew(BIT(offset), ®s->data_clear);
|
|
|
|
|
|
spin_unlock_irqrestore(&port->lock, flags);
|
|
|
}
|
|
@@ -780,12 +780,14 @@ static int adi_gpio_direction_output(struct gpio_chip *chip, unsigned offset,
|
|
|
struct gpio_port_t *regs = port->regs;
|
|
|
unsigned long flags;
|
|
|
|
|
|
- adi_gpio_set_value(chip, offset, value);
|
|
|
-
|
|
|
spin_lock_irqsave(&port->lock, flags);
|
|
|
|
|
|
- writew(readw(®s->inen) & ~(1 << offset), ®s->inen);
|
|
|
- writew(1 << offset, ®s->dir_set);
|
|
|
+ writew(readw(®s->inen) & ~BIT(offset), ®s->inen);
|
|
|
+ if (value)
|
|
|
+ writew(BIT(offset), ®s->data_set);
|
|
|
+ else
|
|
|
+ writew(BIT(offset), ®s->data_clear);
|
|
|
+ writew(BIT(offset), ®s->dir_set);
|
|
|
|
|
|
spin_unlock_irqrestore(&port->lock, flags);
|
|
|
|