1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 223f2d735SLars-Peter Clausen #ifndef _LINUX_IIO_TRIGGERED_BUFFER_H_ 323f2d735SLars-Peter Clausen #define _LINUX_IIO_TRIGGERED_BUFFER_H_ 423f2d735SLars-Peter Clausen 5c02cd5c1SAlexandru Ardelean #include <linux/iio/buffer.h> 623f2d735SLars-Peter Clausen #include <linux/interrupt.h> 723f2d735SLars-Peter Clausen 823f2d735SLars-Peter Clausen struct iio_dev; 9*0a33755cSMatti Vaittinen struct iio_dev_attr; 1023f2d735SLars-Peter Clausen struct iio_buffer_setup_ops; 1123f2d735SLars-Peter Clausen 125164c788SAlexandru Ardelean int iio_triggered_buffer_setup_ext(struct iio_dev *indio_dev, 13fcc577ddSCristina Opriceana irqreturn_t (*h)(int irq, void *p), 14fcc577ddSCristina Opriceana irqreturn_t (*thread)(int irq, void *p), 15c02cd5c1SAlexandru Ardelean enum iio_buffer_direction direction, 165164c788SAlexandru Ardelean const struct iio_buffer_setup_ops *setup_ops, 17*0a33755cSMatti Vaittinen const struct iio_dev_attr **buffer_attrs); 1823f2d735SLars-Peter Clausen void iio_triggered_buffer_cleanup(struct iio_dev *indio_dev); 1923f2d735SLars-Peter Clausen 205164c788SAlexandru Ardelean #define iio_triggered_buffer_setup(indio_dev, h, thread, setup_ops) \ 21c02cd5c1SAlexandru Ardelean iio_triggered_buffer_setup_ext((indio_dev), (h), (thread), \ 22c02cd5c1SAlexandru Ardelean IIO_BUFFER_DIRECTION_IN, (setup_ops), \ 23c02cd5c1SAlexandru Ardelean NULL) 245164c788SAlexandru Ardelean 255164c788SAlexandru Ardelean int devm_iio_triggered_buffer_setup_ext(struct device *dev, 2670e48348SGregor Boirie struct iio_dev *indio_dev, 2770e48348SGregor Boirie irqreturn_t (*h)(int irq, void *p), 2870e48348SGregor Boirie irqreturn_t (*thread)(int irq, void *p), 29c02cd5c1SAlexandru Ardelean enum iio_buffer_direction direction, 305164c788SAlexandru Ardelean const struct iio_buffer_setup_ops *ops, 31*0a33755cSMatti Vaittinen const struct iio_dev_attr **buffer_attrs); 325164c788SAlexandru Ardelean 335164c788SAlexandru Ardelean #define devm_iio_triggered_buffer_setup(dev, indio_dev, h, thread, setup_ops) \ 34c02cd5c1SAlexandru Ardelean devm_iio_triggered_buffer_setup_ext((dev), (indio_dev), (h), (thread), \ 35c02cd5c1SAlexandru Ardelean IIO_BUFFER_DIRECTION_IN, \ 36c02cd5c1SAlexandru Ardelean (setup_ops), NULL) 3770e48348SGregor Boirie 3823f2d735SLars-Peter Clausen #endif 39