]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: trigger: drop generic interrupt trigger.
authorJonathan Cameron <jic23@kernel.org>
Sat, 16 May 2026 11:32:19 +0000 (12:32 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sun, 31 May 2026 09:59:42 +0000 (10:59 +0100)
There is no way to bind to this driver from firmware and no explicit
platform device creation calls exist in mainline.

As such it is dead code. So drop it rather than potentially wasting time
modernizing it (see #1)

Link: https://lore.kernel.org/all/20260511063229.1433-1-sozdayvek@gmail.com/
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/trigger/Kconfig
drivers/iio/trigger/Makefile
drivers/iio/trigger/iio-trig-interrupt.c [deleted file]

index 7ecb69725b1dab67920c6c99515f6639ace9bd46..52899c22d57cf5296561ad708db75aedecf5e2d8 100644 (file)
@@ -16,15 +16,6 @@ config IIO_HRTIMER_TRIGGER
          To compile this driver as a module, choose M here: the
          module will be called iio-trig-hrtimer.
 
-config IIO_INTERRUPT_TRIGGER
-       tristate "Generic interrupt trigger"
-       help
-         Provides support for using an interrupt of any type as an IIO
-         trigger.  This may be provided by a gpio driver for example.
-
-         To compile this driver as a module, choose M here: the
-         module will be called iio-trig-interrupt.
-
 config IIO_STM32_LPTIMER_TRIGGER
        tristate "STM32 Low-Power Timer Trigger"
        depends on MFD_STM32_LPTIMER || COMPILE_TEST
index f3d11acb8a0baab52cd708b796ae93b2423a855c..fc1fd5661c94ff43581c26bafbbe94a6308b8298 100644 (file)
@@ -6,7 +6,6 @@
 # When adding new entries keep the list in alphabetical order
 
 obj-$(CONFIG_IIO_HRTIMER_TRIGGER) += iio-trig-hrtimer.o
-obj-$(CONFIG_IIO_INTERRUPT_TRIGGER) += iio-trig-interrupt.o
 obj-$(CONFIG_IIO_STM32_LPTIMER_TRIGGER) += stm32-lptimer-trigger.o
 obj-$(CONFIG_IIO_STM32_TIMER_TRIGGER) += stm32-timer-trigger.o
 obj-$(CONFIG_IIO_SYSFS_TRIGGER) += iio-trig-sysfs.o
diff --git a/drivers/iio/trigger/iio-trig-interrupt.c b/drivers/iio/trigger/iio-trig-interrupt.c
deleted file mode 100644 (file)
index a100c2e..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Industrial I/O - generic interrupt based trigger support
- *
- * Copyright (c) 2008-2013 Jonathan Cameron
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/interrupt.h>
-#include <linux/slab.h>
-
-#include <linux/iio/iio.h>
-#include <linux/iio/trigger.h>
-
-
-struct iio_interrupt_trigger_info {
-       unsigned int irq;
-};
-
-static irqreturn_t iio_interrupt_trigger_poll(int irq, void *private)
-{
-       iio_trigger_poll(private);
-       return IRQ_HANDLED;
-}
-
-static int iio_interrupt_trigger_probe(struct platform_device *pdev)
-{
-       struct iio_interrupt_trigger_info *trig_info;
-       struct iio_trigger *trig;
-       unsigned long irqflags;
-       struct resource *irq_res;
-       int irq, ret = 0;
-
-       irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-
-       if (irq_res == NULL)
-               return -ENODEV;
-
-       irqflags = (irq_res->flags & IRQF_TRIGGER_MASK) | IRQF_SHARED;
-
-       irq = irq_res->start;
-
-       trig = iio_trigger_alloc(NULL, "irqtrig%d", irq);
-       if (!trig) {
-               ret = -ENOMEM;
-               goto error_ret;
-       }
-
-       trig_info = kzalloc_obj(*trig_info);
-       if (!trig_info) {
-               ret = -ENOMEM;
-               goto error_free_trigger;
-       }
-       iio_trigger_set_drvdata(trig, trig_info);
-       trig_info->irq = irq;
-       ret = request_irq(irq, iio_interrupt_trigger_poll,
-                         irqflags, trig->name, trig);
-       if (ret) {
-               dev_err(&pdev->dev,
-                       "request IRQ-%d failed", irq);
-               goto error_free_trig_info;
-       }
-
-       ret = iio_trigger_register(trig);
-       if (ret)
-               goto error_release_irq;
-       platform_set_drvdata(pdev, trig);
-
-       return 0;
-
-/* First clean up the partly allocated trigger */
-error_release_irq:
-       free_irq(irq, trig);
-error_free_trig_info:
-       kfree(trig_info);
-error_free_trigger:
-       iio_trigger_free(trig);
-error_ret:
-       return ret;
-}
-
-static void iio_interrupt_trigger_remove(struct platform_device *pdev)
-{
-       struct iio_trigger *trig;
-       struct iio_interrupt_trigger_info *trig_info;
-
-       trig = platform_get_drvdata(pdev);
-       trig_info = iio_trigger_get_drvdata(trig);
-       iio_trigger_unregister(trig);
-       free_irq(trig_info->irq, trig);
-       kfree(trig_info);
-       iio_trigger_free(trig);
-}
-
-static struct platform_driver iio_interrupt_trigger_driver = {
-       .probe = iio_interrupt_trigger_probe,
-       .remove = iio_interrupt_trigger_remove,
-       .driver = {
-               .name = "iio_interrupt_trigger",
-       },
-};
-
-module_platform_driver(iio_interrupt_trigger_driver);
-
-MODULE_AUTHOR("Jonathan Cameron <jic23@kernel.org>");
-MODULE_DESCRIPTION("Interrupt trigger for the iio subsystem");
-MODULE_LICENSE("GPL v2");