Commit 5751d3dc authored by Bartosz Golaszewski's avatar Bartosz Golaszewski Committed by Linus Walleij

gpio: mxs: use devres for irq generic chip

Use resource managed variants of irq_alloc_generic_chip() and
irq_setup_generic_chip().
Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent db5270ac
...@@ -66,6 +66,7 @@ struct mxs_gpio_port { ...@@ -66,6 +66,7 @@ struct mxs_gpio_port {
int irq; int irq;
struct irq_domain *domain; struct irq_domain *domain;
struct gpio_chip gc; struct gpio_chip gc;
struct device *dev;
enum mxs_gpio_id devid; enum mxs_gpio_id devid;
u32 both_edges; u32 both_edges;
}; };
...@@ -209,9 +210,10 @@ static int mxs_gpio_init_gc(struct mxs_gpio_port *port, int irq_base) ...@@ -209,9 +210,10 @@ static int mxs_gpio_init_gc(struct mxs_gpio_port *port, int irq_base)
{ {
struct irq_chip_generic *gc; struct irq_chip_generic *gc;
struct irq_chip_type *ct; struct irq_chip_type *ct;
int rv;
gc = irq_alloc_generic_chip("gpio-mxs", 2, irq_base, gc = devm_irq_alloc_generic_chip(port->dev, "gpio-mxs", 2, irq_base,
port->base, handle_level_irq); port->base, handle_level_irq);
if (!gc) if (!gc)
return -ENOMEM; return -ENOMEM;
...@@ -242,10 +244,11 @@ static int mxs_gpio_init_gc(struct mxs_gpio_port *port, int irq_base) ...@@ -242,10 +244,11 @@ static int mxs_gpio_init_gc(struct mxs_gpio_port *port, int irq_base)
ct->regs.disable = PINCTRL_IRQEN(port) + MXS_CLR; ct->regs.disable = PINCTRL_IRQEN(port) + MXS_CLR;
ct->handler = handle_level_irq; ct->handler = handle_level_irq;
irq_setup_generic_chip(gc, IRQ_MSK(32), IRQ_GC_INIT_NESTED_LOCK, rv = devm_irq_setup_generic_chip(port->dev, gc, IRQ_MSK(32),
IRQ_NOREQUEST, 0); IRQ_GC_INIT_NESTED_LOCK,
IRQ_NOREQUEST, 0);
return 0; return rv;
} }
static int mxs_gpio_to_irq(struct gpio_chip *gc, unsigned offset) static int mxs_gpio_to_irq(struct gpio_chip *gc, unsigned offset)
...@@ -304,6 +307,7 @@ static int mxs_gpio_probe(struct platform_device *pdev) ...@@ -304,6 +307,7 @@ static int mxs_gpio_probe(struct platform_device *pdev)
if (port->id < 0) if (port->id < 0)
return port->id; return port->id;
port->devid = (enum mxs_gpio_id) of_id->data; port->devid = (enum mxs_gpio_id) of_id->data;
port->dev = &pdev->dev;
port->irq = platform_get_irq(pdev, 0); port->irq = platform_get_irq(pdev, 0);
if (port->irq < 0) if (port->irq < 0)
return port->irq; return port->irq;
......
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