forked from Minki/linux
docs: driver-api: add iio hw consumer section
This adds a section about the Hardware consumer API of the IIO subsystem to the driver API documentation. Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
48b66f8f93
commit
5b178943d6
51
Documentation/driver-api/iio/hw-consumer.rst
Normal file
51
Documentation/driver-api/iio/hw-consumer.rst
Normal file
@ -0,0 +1,51 @@
|
||||
===========
|
||||
HW consumer
|
||||
===========
|
||||
An IIO device can be directly connected to another device in hardware. in this
|
||||
case the buffers between IIO provider and IIO consumer are handled by hardware.
|
||||
The Industrial I/O HW consumer offers a way to bond these IIO devices without
|
||||
software buffer for data. The implementation can be found under
|
||||
:file:`drivers/iio/buffer/hw-consumer.c`
|
||||
|
||||
|
||||
* struct :c:type:`iio_hw_consumer` — Hardware consumer structure
|
||||
* :c:func:`iio_hw_consumer_alloc` — Allocate IIO hardware consumer
|
||||
* :c:func:`iio_hw_consumer_free` — Free IIO hardware consumer
|
||||
* :c:func:`iio_hw_consumer_enable` — Enable IIO hardware consumer
|
||||
* :c:func:`iio_hw_consumer_disable` — Disable IIO hardware consumer
|
||||
|
||||
|
||||
HW consumer setup
|
||||
=================
|
||||
|
||||
As standard IIO device the implementation is based on IIO provider/consumer.
|
||||
A typical IIO HW consumer setup looks like this::
|
||||
|
||||
static struct iio_hw_consumer *hwc;
|
||||
|
||||
static const struct iio_info adc_info = {
|
||||
.read_raw = adc_read_raw,
|
||||
};
|
||||
|
||||
static int adc_read_raw(struct iio_dev *indio_dev,
|
||||
struct iio_chan_spec const *chan, int *val,
|
||||
int *val2, long mask)
|
||||
{
|
||||
ret = iio_hw_consumer_enable(hwc);
|
||||
|
||||
/* Acquire data */
|
||||
|
||||
ret = iio_hw_consumer_disable(hwc);
|
||||
}
|
||||
|
||||
static int adc_probe(struct platform_device *pdev)
|
||||
{
|
||||
hwc = devm_iio_hw_consumer_alloc(&iio->dev);
|
||||
}
|
||||
|
||||
More details
|
||||
============
|
||||
.. kernel-doc:: include/linux/iio/hw-consumer.h
|
||||
.. kernel-doc:: drivers/iio/buffer/industrialio-hw-consumer.c
|
||||
:export:
|
||||
|
@ -15,3 +15,4 @@ Contents:
|
||||
buffers
|
||||
triggers
|
||||
triggered-buffers
|
||||
hw-consumer
|
||||
|
Loading…
Reference in New Issue
Block a user