diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2014-11-26 17:42:45 -0500 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2014-12-12 07:28:27 -0500 |
commit | f9380e7123863a4cb0627d940533be954a0a15df (patch) | |
tree | c85e2a56d3c30e6380314acb2179f773dfd1420d /drivers/iio | |
parent | c75b8dc84fd28511224a4cd2bfa791bb56a06172 (diff) |
iio: inkern: add iio_write_channel_raw
Introduce API for easy in-kernel setting of DAC values.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r-- | drivers/iio/inkern.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c index 866fe904cba2..21655fd1465c 100644 --- a/drivers/iio/inkern.c +++ b/drivers/iio/inkern.c | |||
@@ -631,3 +631,28 @@ err_unlock: | |||
631 | return ret; | 631 | return ret; |
632 | } | 632 | } |
633 | EXPORT_SYMBOL_GPL(iio_get_channel_type); | 633 | EXPORT_SYMBOL_GPL(iio_get_channel_type); |
634 | |||
635 | static int iio_channel_write(struct iio_channel *chan, int val, int val2, | ||
636 | enum iio_chan_info_enum info) | ||
637 | { | ||
638 | return chan->indio_dev->info->write_raw(chan->indio_dev, | ||
639 | chan->channel, val, val2, info); | ||
640 | } | ||
641 | |||
642 | int iio_write_channel_raw(struct iio_channel *chan, int val) | ||
643 | { | ||
644 | int ret; | ||
645 | |||
646 | mutex_lock(&chan->indio_dev->info_exist_lock); | ||
647 | if (chan->indio_dev->info == NULL) { | ||
648 | ret = -ENODEV; | ||
649 | goto err_unlock; | ||
650 | } | ||
651 | |||
652 | ret = iio_channel_write(chan, val, 0, IIO_CHAN_INFO_RAW); | ||
653 | err_unlock: | ||
654 | mutex_unlock(&chan->indio_dev->info_exist_lock); | ||
655 | |||
656 | return ret; | ||
657 | } | ||
658 | EXPORT_SYMBOL_GPL(iio_write_channel_raw); | ||