[PATCH] pinctrl: samsung: exynos: replace irq_of_parse_and_map with modern APIs
Rosen Penev <[email protected]> Mon, 27 Jul 2026 12:48:35 -0700
| Newsgroups | org.kernel.vger.linux-samsung-soc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Replace irq_of_parse_and_map() with fwnode_irq_get() for per-pin IRQ lookup and of_irq_get() for the muxed EINT IRQ. The fwnode-based API works with both OF and ACPI fwnodes and follows modern conventions. For the muxed EINT path, change the error handling to propagate the error code rather than silently returning 0. Signed-off-by: Rosen Penev <[email protected]> --- drivers/pinctrl/samsung/pinctrl-exynos.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c index 81fe0b08a9af..5bef230f5bed 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c @@ -824,8 +824,8 @@ __init int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d) return -ENOMEM; for (idx = 0; idx < bank->nr_pins; ++idx) { - irq = irq_of_parse_and_map(to_of_node(bank->fwnode), idx); - if (!irq) { + irq = fwnode_irq_get(bank->fwnode, idx); + if (irq < 0) { dev_err(dev, "irq number for eint-%s-%d not found\n", bank->name, idx); continue; @@ -841,11 +841,9 @@ __init int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d) if (!muxed_banks) return 0; - irq = irq_of_parse_and_map(wkup_np, 0); - if (!irq) { - dev_err(dev, "irq number for muxed EINTs not found\n"); - return 0; - } + irq = of_irq_get(wkup_np, 0); + if (irq < 0) + return irq; muxed_data = devm_kzalloc(dev, sizeof(*muxed_data) + muxed_banks*sizeof(struct samsung_pin_bank *), GFP_KERNEL); -- 2.55.0