mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-20 08:22:39 +00:00
staging:iio:meter:ade7758: Fix list and set of available sample frequencies.
Fix list of available sample frequencies. Fix ade7758_write_frequency(). Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
fb7f6ccac2
commit
9308bc9af0
@ -533,7 +533,6 @@ static ssize_t ade7758_write_frequency(struct device *dev,
|
||||
size_t len)
|
||||
{
|
||||
struct iio_dev *indio_dev = dev_get_drvdata(dev);
|
||||
struct ade7758_state *st = iio_dev_get_devdata(indio_dev);
|
||||
unsigned long val;
|
||||
int ret;
|
||||
u8 reg, t;
|
||||
@ -544,14 +543,23 @@ static ssize_t ade7758_write_frequency(struct device *dev,
|
||||
|
||||
mutex_lock(&indio_dev->mlock);
|
||||
|
||||
t = (26040 / val);
|
||||
if (t > 0)
|
||||
t >>= 1;
|
||||
|
||||
if (t > 1)
|
||||
st->us->max_speed_hz = ADE7758_SPI_SLOW;
|
||||
else
|
||||
st->us->max_speed_hz = ADE7758_SPI_FAST;
|
||||
switch (val) {
|
||||
case 26040:
|
||||
t = 0;
|
||||
break;
|
||||
case 13020:
|
||||
t = 1;
|
||||
break;
|
||||
case 6510:
|
||||
t = 2;
|
||||
break;
|
||||
case 3255:
|
||||
t = 3;
|
||||
break;
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = ade7758_spi_read_reg_8(dev,
|
||||
ADE7758_WAVMODE,
|
||||
@ -671,7 +679,7 @@ static IIO_DEV_ATTR_WAVEFORM_TYPE(S_IWUSR | S_IRUGO,
|
||||
|
||||
static IIO_DEV_ATTR_RESET(ade7758_write_reset);
|
||||
|
||||
static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("26000 13000 65000 33000");
|
||||
static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("26040 13020 6510 3255");
|
||||
|
||||
static struct attribute *ade7758_attributes[] = {
|
||||
&iio_dev_attr_temp_raw.dev_attr.attr,
|
||||
|
Loading…
Reference in New Issue
Block a user