MIPS: rb532: use gpiochip data pointer
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 8 Dec 2015 13:37:16 +0000 (14:37 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 19 Feb 2016 08:51:44 +0000 (09:51 +0100)
This makes the driver use the data pointer added to the gpio_chip
to store a pointer to the state container instead of relying on
container_of().

Cc: linux-mips@linux-mips.org
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
arch/mips/rb532/gpio.c

index fd1108543a71d0398097741a4afdf038c574545e..fdc704abc8d4f076215757c9c4122fa9c91e7a01 100644 (file)
@@ -32,7 +32,7 @@
 #include <linux/export.h>
 #include <linux/spinlock.h>
 #include <linux/platform_device.h>
-#include <linux/gpio.h>
+#include <linux/gpio/driver.h>
 
 #include <asm/mach-rc32434/rb.h>
 #include <asm/mach-rc32434/gpio.h>
@@ -88,7 +88,7 @@ static int rb532_gpio_get(struct gpio_chip *chip, unsigned offset)
 {
        struct rb532_gpio_chip  *gpch;
 
-       gpch = container_of(chip, struct rb532_gpio_chip, chip);
+       gpch = gpiochip_get_data(chip);
        return !!rb532_get_bit(offset, gpch->regbase + GPIOD);
 }
 
@@ -100,7 +100,7 @@ static void rb532_gpio_set(struct gpio_chip *chip,
 {
        struct rb532_gpio_chip  *gpch;
 
-       gpch = container_of(chip, struct rb532_gpio_chip, chip);
+       gpch = gpiochip_get_data(chip);
        rb532_set_bit(value, offset, gpch->regbase + GPIOD);
 }
 
@@ -111,7 +111,7 @@ static int rb532_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
 {
        struct rb532_gpio_chip  *gpch;
 
-       gpch = container_of(chip, struct rb532_gpio_chip, chip);
+       gpch = gpiochip_get_data(chip);
 
        /* disable alternate function in case it's set */
        rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC);
@@ -128,7 +128,7 @@ static int rb532_gpio_direction_output(struct gpio_chip *chip,
 {
        struct rb532_gpio_chip  *gpch;
 
-       gpch = container_of(chip, struct rb532_gpio_chip, chip);
+       gpch = gpiochip_get_data(chip);
 
        /* disable alternate function in case it's set */
        rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC);
@@ -200,7 +200,7 @@ int __init rb532_gpio_init(void)
        }
 
        /* Register our GPIO chip */
-       gpiochip_add(&rb532_gpio_chip->chip);
+       gpiochip_add_data(&rb532_gpio_chip->chip, rb532_gpio_chip);
 
        return 0;
 }