• Home
  • Raw
  • Download

Lines Matching +full:convert +full:- +full:channels

1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright 2014-2019 Analog Devices Inc.
16 #include "ad7091r-base.h"
67 return -EINVAL; in ad7091r_set_mode()
70 ret = regmap_update_bits(st->map, AD7091R_REG_CONF, in ad7091r_set_mode()
75 st->mode = mode; in ad7091r_set_mode()
85 /* AD7091R_REG_CHANNEL specified which channels to be converted */ in ad7091r_set_channel()
86 ret = regmap_write(st->map, AD7091R_REG_CHANNEL, in ad7091r_set_channel()
95 return regmap_read(st->map, AD7091R_REG_RESULT, &dummy); in ad7091r_set_channel()
109 ret = regmap_read(st->map, AD7091R_REG_RESULT, &val); in ad7091r_read_one()
114 return -EIO; in ad7091r_read_one()
129 mutex_lock(&st->lock); in ad7091r_read_raw()
133 if (st->mode != AD7091R_MODE_COMMAND) { in ad7091r_read_raw()
134 ret = -EBUSY; in ad7091r_read_raw()
138 ret = ad7091r_read_one(iio_dev, chan->channel, &read_val); in ad7091r_read_raw()
147 if (st->vref) { in ad7091r_read_raw()
148 ret = regulator_get_voltage(st->vref); in ad7091r_read_raw()
154 *val = st->chip_info->vref_mV; in ad7091r_read_raw()
157 *val2 = chan->scan_type.realbits; in ad7091r_read_raw()
162 ret = -EINVAL; in ad7091r_read_raw()
167 mutex_unlock(&st->lock); in ad7091r_read_raw()
178 struct iio_dev *iio_dev = dev_get_drvdata(st->dev); in ad7091r_event_handler()
183 ret = regmap_read(st->map, AD7091R_REG_ALERT, &read_val); in ad7091r_event_handler()
187 for (i = 0; i < st->chip_info->num_channels; i++) { in ad7091r_event_handler()
207 regulator_disable(st->vref); in ad7091r_remove()
220 return -ENOMEM; in ad7091r_probe()
223 st->dev = dev; in ad7091r_probe()
224 st->chip_info = chip_info; in ad7091r_probe()
225 st->map = map; in ad7091r_probe()
227 iio_dev->name = name; in ad7091r_probe()
228 iio_dev->info = &ad7091r_info; in ad7091r_probe()
229 iio_dev->modes = INDIO_DIRECT_MODE; in ad7091r_probe()
231 iio_dev->num_channels = chip_info->num_channels; in ad7091r_probe()
232 iio_dev->channels = chip_info->channels; in ad7091r_probe()
242 st->vref = devm_regulator_get_optional(dev, "vref"); in ad7091r_probe()
243 if (IS_ERR(st->vref)) { in ad7091r_probe()
244 if (PTR_ERR(st->vref) == -EPROBE_DEFER) in ad7091r_probe()
245 return -EPROBE_DEFER; in ad7091r_probe()
246 st->vref = NULL; in ad7091r_probe()
248 ret = regulator_enable(st->vref); in ad7091r_probe()
256 /* Use command mode by default to convert only desired channels*/ in ad7091r_probe()
296 MODULE_DESCRIPTION("Analog Devices AD7091Rx multi-channel converters");