1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _LINUX_IIO_TRIGGERED_BUFFER_H_ 3 #define _LINUX_IIO_TRIGGERED_BUFFER_H_ 4 5 #include <linux/interrupt.h> 6 7 struct attribute; 8 struct iio_dev; 9 struct iio_buffer_setup_ops; 10 11 int iio_triggered_buffer_setup_ext(struct iio_dev *indio_dev, 12 irqreturn_t (*h)(int irq, void *p), 13 irqreturn_t (*thread)(int irq, void *p), 14 const struct iio_buffer_setup_ops *setup_ops, 15 const struct attribute **buffer_attrs); 16 void iio_triggered_buffer_cleanup(struct iio_dev *indio_dev); 17 18 #define iio_triggered_buffer_setup(indio_dev, h, thread, setup_ops) \ 19 iio_triggered_buffer_setup_ext((indio_dev), (h), (thread), (setup_ops), NULL) 20 21 int devm_iio_triggered_buffer_setup_ext(struct device *dev, 22 struct iio_dev *indio_dev, 23 irqreturn_t (*h)(int irq, void *p), 24 irqreturn_t (*thread)(int irq, void *p), 25 const struct iio_buffer_setup_ops *ops, 26 const struct attribute **buffer_attrs); 27 28 #define devm_iio_triggered_buffer_setup(dev, indio_dev, h, thread, setup_ops) \ 29 devm_iio_triggered_buffer_setup_ext((dev), (indio_dev), (h), (thread), (setup_ops), NULL) 30 31 #endif 32