Lines Matching +full:iio +full:- +full:backend
1 // SPDX-License-Identifier: GPL-2.0-only
19 #include <linux/iio/backend.h>
20 #include <linux/iio/iio.h>
46 return -EINVAL; in ad7405_set_dec_rate()
49 return -EBUSY; in ad7405_set_dec_rate()
51 ret = iio_backend_oversampling_ratio_set(st->back, chan->scan_index, dec_rate); in ad7405_set_dec_rate()
57 st->dec_rate = dec_rate; in ad7405_set_dec_rate()
70 *val = st->info->full_scale_mv; in ad7405_read_raw()
71 *val2 = indio_dev->channels[0].scan_type.realbits - 1; in ad7405_read_raw()
74 *val = st->dec_rate; in ad7405_read_raw()
77 *val = DIV_ROUND_CLOSEST_ULL(st->ref_frequency, st->dec_rate); in ad7405_read_raw()
80 *val = -(1 << (indio_dev->channels[0].scan_type.realbits - 1)); in ad7405_read_raw()
83 return -EINVAL; in ad7405_read_raw()
94 return -EINVAL; in ad7405_write_raw()
97 return -EINVAL; in ad7405_write_raw()
112 return -EINVAL; in ad7405_read_avail()
168 struct device *dev = &pdev->dev; in ad7405_probe()
176 return -ENOMEM; in ad7405_probe()
180 st->info = device_get_match_data(dev); in ad7405_probe()
181 if (!st->info) in ad7405_probe()
182 return dev_err_probe(dev, -EINVAL, "no chip info\n"); in ad7405_probe()
193 st->ref_frequency = clk_get_rate(clk); in ad7405_probe()
194 if (!st->ref_frequency) in ad7405_probe()
195 return -EINVAL; in ad7405_probe()
197 indio_dev->name = st->info->name; in ad7405_probe()
198 indio_dev->channels = &ad7405_channel; in ad7405_probe()
199 indio_dev->num_channels = 1; in ad7405_probe()
200 indio_dev->info = &ad7405_iio_info; in ad7405_probe()
202 st->back = devm_iio_backend_get(dev, NULL); in ad7405_probe()
203 if (IS_ERR(st->back)) in ad7405_probe()
204 return dev_err_probe(dev, PTR_ERR(st->back), in ad7405_probe()
205 "failed to get IIO backend"); in ad7405_probe()
207 ret = iio_backend_chan_enable(st->back, 0); in ad7405_probe()
211 ret = devm_iio_backend_request_buffer(dev, st->back, indio_dev); in ad7405_probe()
215 ret = devm_iio_backend_enable(dev, st->back); in ad7405_probe()
224 ret = ad7405_set_dec_rate(indio_dev, &indio_dev->channels[0], 256); in ad7405_probe()
250 MODULE_AUTHOR("Pop Ioan Daniel <pop.ioan-daniel@analog.com>");