triggered_buffer.h 1.3 KB

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