#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/irq_work.h>
#include <linux/kthread.h>
#include <linux/freezer.h>
#include <linux/iio/iio.h>
#include <linux/iio/trigger.h>
#include <linux/iio/sw_trigger.h>
struct iio_sw_trigger swt;
struct task_struct *task;
static const struct config_item_type iio_loop_type = {
static int iio_loop_thread(void *data)
struct iio_trigger *trig = data;
iio_trigger_poll_chained(trig);
} while (likely(!kthread_freezable_should_stop(NULL)));
static int iio_loop_trigger_set_state(struct iio_trigger *trig, bool state)
struct iio_loop_info *loop_trig = iio_trigger_get_drvdata(trig);
loop_trig->task = kthread_run(iio_loop_thread,
if (unlikely(IS_ERR(loop_trig->task))) {