gpio: timberdale: 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(). Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
b0d384733c
commit
92a41e2f73
|
@ -53,7 +53,7 @@ struct timbgpio {
|
||||||
static int timbgpio_update_bit(struct gpio_chip *gpio, unsigned index,
|
static int timbgpio_update_bit(struct gpio_chip *gpio, unsigned index,
|
||||||
unsigned offset, bool enabled)
|
unsigned offset, bool enabled)
|
||||||
{
|
{
|
||||||
struct timbgpio *tgpio = container_of(gpio, struct timbgpio, gpio);
|
struct timbgpio *tgpio = gpiochip_get_data(gpio);
|
||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
spin_lock(&tgpio->lock);
|
spin_lock(&tgpio->lock);
|
||||||
|
@ -77,7 +77,7 @@ static int timbgpio_gpio_direction_input(struct gpio_chip *gpio, unsigned nr)
|
||||||
|
|
||||||
static int timbgpio_gpio_get(struct gpio_chip *gpio, unsigned nr)
|
static int timbgpio_gpio_get(struct gpio_chip *gpio, unsigned nr)
|
||||||
{
|
{
|
||||||
struct timbgpio *tgpio = container_of(gpio, struct timbgpio, gpio);
|
struct timbgpio *tgpio = gpiochip_get_data(gpio);
|
||||||
u32 value;
|
u32 value;
|
||||||
|
|
||||||
value = ioread32(tgpio->membase + TGPIOVAL);
|
value = ioread32(tgpio->membase + TGPIOVAL);
|
||||||
|
@ -98,7 +98,7 @@ static void timbgpio_gpio_set(struct gpio_chip *gpio,
|
||||||
|
|
||||||
static int timbgpio_to_irq(struct gpio_chip *gpio, unsigned offset)
|
static int timbgpio_to_irq(struct gpio_chip *gpio, unsigned offset)
|
||||||
{
|
{
|
||||||
struct timbgpio *tgpio = container_of(gpio, struct timbgpio, gpio);
|
struct timbgpio *tgpio = gpiochip_get_data(gpio);
|
||||||
|
|
||||||
if (tgpio->irq_base <= 0)
|
if (tgpio->irq_base <= 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -279,7 +279,7 @@ static int timbgpio_probe(struct platform_device *pdev)
|
||||||
gc->ngpio = pdata->nr_pins;
|
gc->ngpio = pdata->nr_pins;
|
||||||
gc->can_sleep = false;
|
gc->can_sleep = false;
|
||||||
|
|
||||||
err = gpiochip_add(gc);
|
err = gpiochip_add_data(gc, tgpio);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue