return !!readb(pl061->base + (BIT(offset + 2)));
 }
 
-static void pl061_set_value(struct gpio_chip *gc, unsigned offset, int value)
+static int pl061_set_value(struct gpio_chip *gc, unsigned int offset, int value)
 {
        struct pl061 *pl061 = gpiochip_get_data(gc);
 
        writeb(!!value << offset, pl061->base + (BIT(offset + 2)));
+
+       return 0;
 }
 
 static int pl061_irq_type(struct irq_data *d, unsigned trigger)
        pl061->gc.direction_input = pl061_direction_input;
        pl061->gc.direction_output = pl061_direction_output;
        pl061->gc.get = pl061_get_value;
-       pl061->gc.set = pl061_set_value;
+       pl061->gc.set_rv = pl061_set_value;
        pl061->gc.ngpio = PL061_GPIO_NR;
        pl061->gc.label = dev_name(dev);
        pl061->gc.parent = dev;