180503b23SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 22d6ca60fSLars-Peter Clausen /* 32d6ca60fSLars-Peter Clausen * Copyright 2014-2015 Analog Devices Inc. 42d6ca60fSLars-Peter Clausen * Author: Lars-Peter Clausen <[email protected]> 52d6ca60fSLars-Peter Clausen */ 62d6ca60fSLars-Peter Clausen 72d6ca60fSLars-Peter Clausen #ifndef __IIO_DMAENGINE_H__ 82d6ca60fSLars-Peter Clausen #define __IIO_DMAENGINE_H__ 92d6ca60fSLars-Peter Clausen 10c1b91566SPaul Cercueil #include <linux/iio/buffer.h> 11c1b91566SPaul Cercueil 12a02c09e4SAlexandru Ardelean struct iio_dev; 132d6ca60fSLars-Peter Clausen struct device; 14*79f24971SDavid Lechner struct dma_chan; 152d6ca60fSLars-Peter Clausen 164fe7fd17SDavid Lechner void iio_dmaengine_buffer_teardown(struct iio_buffer *buffer); 17c1b91566SPaul Cercueil struct iio_buffer *iio_dmaengine_buffer_setup_ext(struct device *dev, 18a094de22SNuno Sa struct iio_dev *indio_dev, 19c1b91566SPaul Cercueil const char *channel, 20c1b91566SPaul Cercueil enum iio_buffer_direction dir); 21c1b91566SPaul Cercueil 22c1b91566SPaul Cercueil #define iio_dmaengine_buffer_setup(dev, indio_dev, channel) \ 23c1b91566SPaul Cercueil iio_dmaengine_buffer_setup_ext(dev, indio_dev, channel, \ 24c1b91566SPaul Cercueil IIO_BUFFER_DIRECTION_IN) 25c1b91566SPaul Cercueil 26c1b91566SPaul Cercueil int devm_iio_dmaengine_buffer_setup_ext(struct device *dev, 27a02c09e4SAlexandru Ardelean struct iio_dev *indio_dev, 28c1b91566SPaul Cercueil const char *channel, 29c1b91566SPaul Cercueil enum iio_buffer_direction dir); 30*79f24971SDavid Lechner int devm_iio_dmaengine_buffer_setup_with_handle(struct device *dev, 31*79f24971SDavid Lechner struct iio_dev *indio_dev, 32*79f24971SDavid Lechner struct dma_chan *chan, 33*79f24971SDavid Lechner enum iio_buffer_direction dir); 34c1b91566SPaul Cercueil 35c1b91566SPaul Cercueil #define devm_iio_dmaengine_buffer_setup(dev, indio_dev, channel) \ 36c1b91566SPaul Cercueil devm_iio_dmaengine_buffer_setup_ext(dev, indio_dev, channel, \ 37c1b91566SPaul Cercueil IIO_BUFFER_DIRECTION_IN) 38e0fcca9fSAlexandru Ardelean 392d6ca60fSLars-Peter Clausen #endif 40