xref: /linux/drivers/iio/iio_core_trigger.h (revision f9bff0e31881d03badf191d3b0005839391f5f2b)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 /* The industrial I/O core, trigger consumer handling functions
4  *
5  * Copyright (c) 2008 Jonathan Cameron
6  */
7 
8 #ifdef CONFIG_IIO_TRIGGER
9 /**
10  * iio_device_register_trigger_consumer() - set up an iio_dev to use triggers
11  * @indio_dev: iio_dev associated with the device that will consume the trigger
12  *
13  * Return 0 if successful, negative otherwise
14  **/
15 int iio_device_register_trigger_consumer(struct iio_dev *indio_dev);
16 
17 /**
18  * iio_device_unregister_trigger_consumer() - reverse the registration process
19  * @indio_dev: iio_dev associated with the device that consumed the trigger
20  **/
21 void iio_device_unregister_trigger_consumer(struct iio_dev *indio_dev);
22 
23 
24 int iio_trigger_attach_poll_func(struct iio_trigger *trig,
25 				 struct iio_poll_func *pf);
26 int iio_trigger_detach_poll_func(struct iio_trigger *trig,
27 				 struct iio_poll_func *pf);
28 
29 #else
30 
31 /**
32  * iio_device_register_trigger_consumer() - set up an iio_dev to use triggers
33  * @indio_dev: iio_dev associated with the device that will consume the trigger
34  **/
35 static inline int iio_device_register_trigger_consumer(struct iio_dev *indio_dev)
36 {
37 	return 0;
38 }
39 
40 /**
41  * iio_device_unregister_trigger_consumer() - reverse the registration process
42  * @indio_dev: iio_dev associated with the device that consumed the trigger
43  **/
44 static inline void iio_device_unregister_trigger_consumer(struct iio_dev *indio_dev)
45 {
46 }
47 
48 static inline int iio_trigger_attach_poll_func(struct iio_trigger *trig,
49 					       struct iio_poll_func *pf)
50 {
51 	return 0;
52 }
53 static inline int iio_trigger_detach_poll_func(struct iio_trigger *trig,
54 					       struct iio_poll_func *pf)
55 {
56 	return 0;
57 }
58 
59 #endif /* CONFIG_TRIGGER_CONSUMER */
60