Commit d660c68e authored by Linus Walleij's avatar Linus Walleij

gpio: rc5t583: use gpiochip data pointer

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().
Acked-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 81d0c31d
...@@ -34,14 +34,9 @@ struct rc5t583_gpio { ...@@ -34,14 +34,9 @@ struct rc5t583_gpio {
struct rc5t583 *rc5t583; struct rc5t583 *rc5t583;
}; };
static inline struct rc5t583_gpio *to_rc5t583_gpio(struct gpio_chip *chip)
{
return container_of(chip, struct rc5t583_gpio, gpio_chip);
}
static int rc5t583_gpio_get(struct gpio_chip *gc, unsigned int offset) static int rc5t583_gpio_get(struct gpio_chip *gc, unsigned int offset)
{ {
struct rc5t583_gpio *rc5t583_gpio = to_rc5t583_gpio(gc); struct rc5t583_gpio *rc5t583_gpio = gpiochip_get_data(gc);
struct device *parent = rc5t583_gpio->rc5t583->dev; struct device *parent = rc5t583_gpio->rc5t583->dev;
uint8_t val = 0; uint8_t val = 0;
int ret; int ret;
...@@ -55,7 +50,7 @@ static int rc5t583_gpio_get(struct gpio_chip *gc, unsigned int offset) ...@@ -55,7 +50,7 @@ static int rc5t583_gpio_get(struct gpio_chip *gc, unsigned int offset)
static void rc5t583_gpio_set(struct gpio_chip *gc, unsigned int offset, int val) static void rc5t583_gpio_set(struct gpio_chip *gc, unsigned int offset, int val)
{ {
struct rc5t583_gpio *rc5t583_gpio = to_rc5t583_gpio(gc); struct rc5t583_gpio *rc5t583_gpio = gpiochip_get_data(gc);
struct device *parent = rc5t583_gpio->rc5t583->dev; struct device *parent = rc5t583_gpio->rc5t583->dev;
if (val) if (val)
rc5t583_set_bits(parent, RC5T583_GPIO_IOOUT, BIT(offset)); rc5t583_set_bits(parent, RC5T583_GPIO_IOOUT, BIT(offset));
...@@ -65,7 +60,7 @@ static void rc5t583_gpio_set(struct gpio_chip *gc, unsigned int offset, int val) ...@@ -65,7 +60,7 @@ static void rc5t583_gpio_set(struct gpio_chip *gc, unsigned int offset, int val)
static int rc5t583_gpio_dir_input(struct gpio_chip *gc, unsigned int offset) static int rc5t583_gpio_dir_input(struct gpio_chip *gc, unsigned int offset)
{ {
struct rc5t583_gpio *rc5t583_gpio = to_rc5t583_gpio(gc); struct rc5t583_gpio *rc5t583_gpio = gpiochip_get_data(gc);
struct device *parent = rc5t583_gpio->rc5t583->dev; struct device *parent = rc5t583_gpio->rc5t583->dev;
int ret; int ret;
...@@ -80,7 +75,7 @@ static int rc5t583_gpio_dir_input(struct gpio_chip *gc, unsigned int offset) ...@@ -80,7 +75,7 @@ static int rc5t583_gpio_dir_input(struct gpio_chip *gc, unsigned int offset)
static int rc5t583_gpio_dir_output(struct gpio_chip *gc, unsigned offset, static int rc5t583_gpio_dir_output(struct gpio_chip *gc, unsigned offset,
int value) int value)
{ {
struct rc5t583_gpio *rc5t583_gpio = to_rc5t583_gpio(gc); struct rc5t583_gpio *rc5t583_gpio = gpiochip_get_data(gc);
struct device *parent = rc5t583_gpio->rc5t583->dev; struct device *parent = rc5t583_gpio->rc5t583->dev;
int ret; int ret;
...@@ -95,7 +90,7 @@ static int rc5t583_gpio_dir_output(struct gpio_chip *gc, unsigned offset, ...@@ -95,7 +90,7 @@ static int rc5t583_gpio_dir_output(struct gpio_chip *gc, unsigned offset,
static int rc5t583_gpio_to_irq(struct gpio_chip *gc, unsigned offset) static int rc5t583_gpio_to_irq(struct gpio_chip *gc, unsigned offset)
{ {
struct rc5t583_gpio *rc5t583_gpio = to_rc5t583_gpio(gc); struct rc5t583_gpio *rc5t583_gpio = gpiochip_get_data(gc);
if (offset < RC5T583_MAX_GPIO) if (offset < RC5T583_MAX_GPIO)
return rc5t583_gpio->rc5t583->irq_base + return rc5t583_gpio->rc5t583->irq_base +
...@@ -105,7 +100,7 @@ static int rc5t583_gpio_to_irq(struct gpio_chip *gc, unsigned offset) ...@@ -105,7 +100,7 @@ static int rc5t583_gpio_to_irq(struct gpio_chip *gc, unsigned offset)
static void rc5t583_gpio_free(struct gpio_chip *gc, unsigned offset) static void rc5t583_gpio_free(struct gpio_chip *gc, unsigned offset)
{ {
struct rc5t583_gpio *rc5t583_gpio = to_rc5t583_gpio(gc); struct rc5t583_gpio *rc5t583_gpio = gpiochip_get_data(gc);
struct device *parent = rc5t583_gpio->rc5t583->dev; struct device *parent = rc5t583_gpio->rc5t583->dev;
rc5t583_set_bits(parent, RC5T583_GPIO_PGSEL, BIT(offset)); rc5t583_set_bits(parent, RC5T583_GPIO_PGSEL, BIT(offset));
...@@ -141,7 +136,7 @@ static int rc5t583_gpio_probe(struct platform_device *pdev) ...@@ -141,7 +136,7 @@ static int rc5t583_gpio_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, rc5t583_gpio); platform_set_drvdata(pdev, rc5t583_gpio);
return gpiochip_add(&rc5t583_gpio->gpio_chip); return gpiochip_add_data(&rc5t583_gpio->gpio_chip, rc5t583_gpio);
} }
static int rc5t583_gpio_remove(struct platform_device *pdev) static int rc5t583_gpio_remove(struct platform_device *pdev)
......
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