0001
0002
0003
0004
0005
0006
0007 #ifndef __LINUX_IIO_TRIGGER_CONSUMER_H__
0008 #define __LINUX_IIO_TRIGGER_CONSUMER_H__
0009
0010 #include <linux/interrupt.h>
0011 #include <linux/types.h>
0012
0013 struct iio_dev;
0014 struct iio_trigger;
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 struct iio_poll_func {
0031 struct iio_dev *indio_dev;
0032 irqreturn_t (*h)(int irq, void *p);
0033 irqreturn_t (*thread)(int irq, void *p);
0034 int type;
0035 char *name;
0036 int irq;
0037 s64 timestamp;
0038 };
0039
0040
0041 __printf(5, 6) struct iio_poll_func
0042 *iio_alloc_pollfunc(irqreturn_t (*h)(int irq, void *p),
0043 irqreturn_t (*thread)(int irq, void *p),
0044 int type,
0045 struct iio_dev *indio_dev,
0046 const char *fmt,
0047 ...);
0048 void iio_dealloc_pollfunc(struct iio_poll_func *pf);
0049 irqreturn_t iio_pollfunc_store_time(int irq, void *p);
0050
0051 void iio_trigger_notify_done(struct iio_trigger *trig);
0052
0053 #endif