|
@@ -244,58 +244,9 @@ static int ad7791_read_raw(struct iio_dev *indio_dev,
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
-static const char * const ad7791_sample_freq_avail[] = {
|
|
|
- [AD7791_FILTER_RATE_120] = "120",
|
|
|
- [AD7791_FILTER_RATE_100] = "100",
|
|
|
- [AD7791_FILTER_RATE_33_3] = "33.3",
|
|
|
- [AD7791_FILTER_RATE_20] = "20",
|
|
|
- [AD7791_FILTER_RATE_16_6] = "16.6",
|
|
|
- [AD7791_FILTER_RATE_16_7] = "16.7",
|
|
|
- [AD7791_FILTER_RATE_13_3] = "13.3",
|
|
|
- [AD7791_FILTER_RATE_9_5] = "9.5",
|
|
|
-};
|
|
|
-
|
|
|
-static ssize_t ad7791_read_frequency(struct device *dev,
|
|
|
- struct device_attribute *attr, char *buf)
|
|
|
-{
|
|
|
- struct iio_dev *indio_dev = dev_to_iio_dev(dev);
|
|
|
- struct ad7791_state *st = iio_priv(indio_dev);
|
|
|
- unsigned int rate = st->filter & AD7791_FILTER_RATE_MASK;
|
|
|
-
|
|
|
- return sprintf(buf, "%s\n", ad7791_sample_freq_avail[rate]);
|
|
|
-}
|
|
|
-
|
|
|
-static ssize_t ad7791_write_frequency(struct device *dev,
|
|
|
- struct device_attribute *attr, const char *buf, size_t len)
|
|
|
-{
|
|
|
- struct iio_dev *indio_dev = dev_to_iio_dev(dev);
|
|
|
- struct ad7791_state *st = iio_priv(indio_dev);
|
|
|
- int i, ret;
|
|
|
-
|
|
|
- i = sysfs_match_string(ad7791_sample_freq_avail, buf);
|
|
|
- if (i < 0)
|
|
|
- return i;
|
|
|
-
|
|
|
- ret = iio_device_claim_direct_mode(indio_dev);
|
|
|
- if (ret)
|
|
|
- return ret;
|
|
|
- st->filter &= ~AD7791_FILTER_RATE_MASK;
|
|
|
- st->filter |= i;
|
|
|
- ad_sd_write_reg(&st->sd, AD7791_REG_FILTER, sizeof(st->filter),
|
|
|
- st->filter);
|
|
|
- iio_device_release_direct_mode(indio_dev);
|
|
|
-
|
|
|
- return len;
|
|
|
-}
|
|
|
-
|
|
|
-static IIO_DEV_ATTR_SAMP_FREQ(S_IWUSR | S_IRUGO,
|
|
|
- ad7791_read_frequency,
|
|
|
- ad7791_write_frequency);
|
|
|
-
|
|
|
static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("120 100 33.3 20 16.7 16.6 13.3 9.5");
|
|
|
|
|
|
static struct attribute *ad7791_attributes[] = {
|
|
|
- &iio_dev_attr_sampling_frequency.dev_attr.attr,
|
|
|
&iio_const_attr_sampling_frequency_available.dev_attr.attr,
|
|
|
NULL
|
|
|
};
|