1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * Copyright 2014-2015 Analog Devices Inc. 4 * Author: Lars-Peter Clausen <lars@metafoo.de> 5 */ 6 7 #ifndef __IIO_DMAENGINE_H__ 8 #define __IIO_DMAENGINE_H__ 9 10 #include <linux/iio/buffer.h> 11 12 struct iio_dev; 13 struct device; 14 struct dma_chan; 15 16 void iio_dmaengine_buffer_teardown(struct iio_buffer *buffer); 17 struct iio_buffer *iio_dmaengine_buffer_setup_ext(struct device *dev, 18 struct iio_dev *indio_dev, 19 const char *channel, 20 enum iio_buffer_direction dir); 21 22 #define iio_dmaengine_buffer_setup(dev, indio_dev, channel) \ 23 iio_dmaengine_buffer_setup_ext(dev, indio_dev, channel, \ 24 IIO_BUFFER_DIRECTION_IN) 25 26 int devm_iio_dmaengine_buffer_setup_ext(struct device *dev, 27 struct iio_dev *indio_dev, 28 const char *channel, 29 enum iio_buffer_direction dir); 30 int devm_iio_dmaengine_buffer_setup_with_handle(struct device *dev, 31 struct iio_dev *indio_dev, 32 struct dma_chan *chan, 33 enum iio_buffer_direction dir); 34 35 #define devm_iio_dmaengine_buffer_setup(dev, indio_dev, channel) \ 36 devm_iio_dmaengine_buffer_setup_ext(dev, indio_dev, channel, \ 37 IIO_BUFFER_DIRECTION_IN) 38 39 #endif 40