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