gpio: max77620: Use irqchip template
This change addresses one of the GPIO-core TODOs for the MAX77620 driver which requires modern drivers to use the irqchip template. Instead of using the GPIO's irqchip-helpers for creating the IRQ domain, the gpio_irq_chip structure is now filled by the driver itself and then gpiochip_add_data() takes care of instantiating the IRQ domain for us. Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Acked-by: Laxman Dewangan <ldewangan@nvidia.com> Link: https://lore.kernel.org/r/20200709171203.12950-6-digetx@gmail.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
c607e5e2e4
commit
15d9e7e847
|
@ -277,6 +277,7 @@ static int max77620_gpio_probe(struct platform_device *pdev)
|
|||
if (!mgpio)
|
||||
return -ENOMEM;
|
||||
|
||||
mutex_init(&mgpio->buslock);
|
||||
mgpio->rmap = chip->rmap;
|
||||
mgpio->dev = &pdev->dev;
|
||||
|
||||
|
@ -291,6 +292,11 @@ static int max77620_gpio_probe(struct platform_device *pdev)
|
|||
mgpio->gpio_chip.can_sleep = 1;
|
||||
mgpio->gpio_chip.base = -1;
|
||||
|
||||
mgpio->gpio_chip.irq.chip = &max77620_gpio_irqchip;
|
||||
mgpio->gpio_chip.irq.default_type = IRQ_TYPE_NONE;
|
||||
mgpio->gpio_chip.irq.handler = handle_edge_irq;
|
||||
mgpio->gpio_chip.irq.threaded = true;
|
||||
|
||||
platform_set_drvdata(pdev, mgpio);
|
||||
|
||||
ret = devm_gpiochip_add_data(&pdev->dev, &mgpio->gpio_chip, mgpio);
|
||||
|
@ -299,11 +305,6 @@ static int max77620_gpio_probe(struct platform_device *pdev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
mutex_init(&mgpio->buslock);
|
||||
|
||||
gpiochip_irqchip_add_nested(&mgpio->gpio_chip, &max77620_gpio_irqchip,
|
||||
0, handle_edge_irq, IRQ_TYPE_NONE);
|
||||
|
||||
ret = devm_request_threaded_irq(&pdev->dev, gpio_irq, NULL,
|
||||
max77620_gpio_irqhandler, IRQF_ONESHOT,
|
||||
"max77620-gpio", mgpio);
|
||||
|
@ -312,9 +313,6 @@ static int max77620_gpio_probe(struct platform_device *pdev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
gpiochip_set_nested_irqchip(&mgpio->gpio_chip, &max77620_gpio_irqchip,
|
||||
gpio_irq);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue