]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
i2c: core: Switch to fwnode APIs to get IRQ
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 16 Apr 2025 07:01:33 +0000 (10:01 +0300)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 16 Apr 2025 16:06:40 +0000 (18:06 +0200)
Switch to fwnode APIs to get IRQ. In particular this enables
a support of the separate wakeup IRQ on non-OF platforms.
The rest is converted just for the sake of consistency and
fwnode reuse.

Tested-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
drivers/i2c/i2c-core-base.c

index 2b5236b726af390b087175ca67103291e21ce8bc..08ff3f1eb28e3849741cd76289f3cb4b9be712d6 100644 (file)
 #include <linux/idr.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
-#include <linux/irqflags.h>
+#include <linux/irq.h>
 #include <linux/jump_label.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
 #include <linux/of_device.h>
 #include <linux/of.h>
-#include <linux/of_irq.h>
 #include <linux/pinctrl/consumer.h>
 #include <linux/pinctrl/devinfo.h>
 #include <linux/pm_domain.h>
@@ -510,9 +509,9 @@ static int i2c_device_probe(struct device *dev)
                        pm_runtime_get_sync(&client->adapter->dev);
                        irq = i2c_smbus_host_notify_to_irq(client);
                } else if (is_of_node(fwnode)) {
-                       irq = of_irq_get_byname(dev->of_node, "irq");
+                       irq = fwnode_irq_get_byname(fwnode, "irq");
                        if (irq == -EINVAL || irq == -ENODATA)
-                               irq = of_irq_get(dev->of_node, 0);
+                               irq = fwnode_irq_get(fwnode, 0);
                } else if (is_acpi_device_node(fwnode)) {
                        bool wake_capable;
 
@@ -547,7 +546,7 @@ static int i2c_device_probe(struct device *dev)
        if (client->flags & I2C_CLIENT_WAKE) {
                int wakeirq;
 
-               wakeirq = of_irq_get_byname(dev->of_node, "wakeup");
+               wakeirq = fwnode_irq_get_byname(fwnode, "wakeup");
                if (wakeirq == -EPROBE_DEFER) {
                        status = wakeirq;
                        goto put_sync_adapter;