Lines Matching refs:chan

109 	const struct iio_chan_spec *chan = NULL;
114 chan = &indio_dev->channels[i];
117 return chan;
210 struct iio_channel *chan;
223 chan = fwnode_iio_channel_get(fwnode, index);
224 if (!IS_ERR(chan) || PTR_ERR(chan) == -EPROBE_DEFER)
225 return chan;
244 if (PTR_ERR(chan) != -EINVAL && PTR_ERR(chan) != -ENOENT)
245 return chan;
246 } else if (PTR_ERR(chan) != -ENOENT) {
251 return chan;
262 struct iio_channel *chan;
265 chan = __fwnode_iio_channel_get_by_name(fwnode, name);
266 if (!IS_ERR(chan) || PTR_ERR(chan) != -ENODEV)
267 return chan;
280 chan = __fwnode_iio_channel_get_by_name(fwnode, name);
281 if (!IS_ERR(chan) || PTR_ERR(chan) != -ENODEV) {
283 return chan;
529 struct iio_channel *chan = &channels[0];
531 while (chan->indio_dev) {
532 iio_device_put(chan->indio_dev);
533 chan++;
562 static int iio_channel_read(struct iio_channel *chan, int *val, int *val2,
573 if (!iio_channel_has_info(chan->channel, info))
576 if (chan->indio_dev->info->read_raw_multi) {
577 ret = chan->indio_dev->info->read_raw_multi(chan->indio_dev,
578 chan->channel, INDIO_MAX_RAW_ELEMENTS,
583 ret = chan->indio_dev->info->read_raw(chan->indio_dev,
584 chan->channel, val, val2, info);
590 int iio_read_channel_raw(struct iio_channel *chan, int *val)
592 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
596 if (!chan->indio_dev->info) {
601 ret = iio_channel_read(chan, val, NULL, IIO_CHAN_INFO_RAW);
609 int iio_read_channel_average_raw(struct iio_channel *chan, int *val)
611 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
615 if (!chan->indio_dev->info) {
620 ret = iio_channel_read(chan, val, NULL, IIO_CHAN_INFO_AVERAGE_RAW);
628 static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
636 offset_type = iio_channel_read(chan, &offset_val, &offset_val2,
662 scale_type = iio_channel_read(chan, &scale_val, &scale_val2,
707 int iio_convert_raw_to_processed(struct iio_channel *chan, int raw,
710 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
714 if (!chan->indio_dev->info) {
719 ret = iio_convert_raw_to_processed_unlocked(chan, raw, processed,
728 int iio_read_channel_attribute(struct iio_channel *chan, int *val, int *val2,
731 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
735 if (!chan->indio_dev->info) {
740 ret = iio_channel_read(chan, val, val2, attribute);
748 int iio_read_channel_offset(struct iio_channel *chan, int *val, int *val2)
750 return iio_read_channel_attribute(chan, val, val2, IIO_CHAN_INFO_OFFSET);
754 int iio_read_channel_processed_scale(struct iio_channel *chan, int *val,
757 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
761 if (!chan->indio_dev->info) {
766 if (iio_channel_has_info(chan->channel, IIO_CHAN_INFO_PROCESSED)) {
767 ret = iio_channel_read(chan, val, NULL,
773 ret = iio_channel_read(chan, val, NULL, IIO_CHAN_INFO_RAW);
776 ret = iio_convert_raw_to_processed_unlocked(chan, *val, val,
787 int iio_read_channel_processed(struct iio_channel *chan, int *val)
790 return iio_read_channel_processed_scale(chan, val, 1);
794 int iio_read_channel_scale(struct iio_channel *chan, int *val, int *val2)
796 return iio_read_channel_attribute(chan, val, val2, IIO_CHAN_INFO_SCALE);
800 static int iio_channel_read_avail(struct iio_channel *chan,
804 if (!iio_channel_has_available(chan->channel, info))
807 return chan->indio_dev->info->read_avail(chan->indio_dev, chan->channel,
811 int iio_read_avail_channel_attribute(struct iio_channel *chan,
815 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
819 if (!chan->indio_dev->info) {
824 ret = iio_channel_read_avail(chan, vals, type, length, attribute);
832 int iio_read_avail_channel_raw(struct iio_channel *chan,
838 ret = iio_read_avail_channel_attribute(chan, vals, &type, length,
849 static int iio_channel_read_max(struct iio_channel *chan,
857 ret = iio_channel_read_avail(chan, &vals, type, &length, info);
892 int iio_read_max_channel_raw(struct iio_channel *chan, int *val)
894 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
899 if (!chan->indio_dev->info) {
904 ret = iio_channel_read_max(chan, val, NULL, &type, IIO_CHAN_INFO_RAW);
912 static int iio_channel_read_min(struct iio_channel *chan,
920 ret = iio_channel_read_avail(chan, &vals, type, &length, info);
955 int iio_read_min_channel_raw(struct iio_channel *chan, int *val)
957 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
962 if (!chan->indio_dev->info) {
967 ret = iio_channel_read_min(chan, val, NULL, &type, IIO_CHAN_INFO_RAW);
975 int iio_get_channel_type(struct iio_channel *chan, enum iio_chan_type *type)
977 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
982 if (!chan->indio_dev->info) {
987 *type = chan->channel->type;
995 static int iio_channel_write(struct iio_channel *chan, int val, int val2,
998 return chan->indio_dev->info->write_raw(chan->indio_dev,
999 chan->channel, val, val2, info);
1002 int iio_write_channel_attribute(struct iio_channel *chan, int val, int val2,
1005 struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
1009 if (!chan->indio_dev->info) {
1014 ret = iio_channel_write(chan, val, val2, attribute);
1022 int iio_write_channel_raw(struct iio_channel *chan, int val)
1024 return iio_write_channel_attribute(chan, val, 0, IIO_CHAN_INFO_RAW);
1028 unsigned int iio_get_channel_ext_info_count(struct iio_channel *chan)
1033 if (!chan->channel->ext_info)
1036 for (ext_info = chan->channel->ext_info; ext_info->name; ext_info++)
1044 iio_lookup_ext_info(const struct iio_channel *chan, const char *attr)
1048 if (!chan->channel->ext_info)
1051 for (ext_info = chan->channel->ext_info; ext_info->name; ++ext_info) {
1059 ssize_t iio_read_channel_ext_info(struct iio_channel *chan,
1064 ext_info = iio_lookup_ext_info(chan, attr);
1068 return ext_info->read(chan->indio_dev, ext_info->private,
1069 chan->channel, buf);
1073 ssize_t iio_write_channel_ext_info(struct iio_channel *chan, const char *attr,
1078 ext_info = iio_lookup_ext_info(chan, attr);
1082 return ext_info->write(chan->indio_dev, ext_info->private,
1083 chan->channel, buf, len);