mirror of
https://github.com/torvalds/linux.git
synced 2026-08-01 12:11:59 +02:00
iio: filter: admv8818: Support frequencies >= 2^32
This patch allows writing u64 values to the ADMV8818's high and low-pass
filter frequencies. It includes the following changes:
- Rejects negative frequencies in admv8818_write_raw.
- Adds a write_raw_get_fmt function to admv8818's iio_info, returning
IIO_VAL_INT_64 for the high and low-pass filter 3dB frequency channels.
Fixes: f34fe888ad ("iio:filter:admv8818: add support for ADMV8818")
Signed-off-by: Brian Pellegrino <bpellegrino@arka.org>
Signed-off-by: Sam Winchenbach <swinchenbach@arka.org>
Link: https://patch.msgid.link/20250328174831.227202-7-sam.winchenbach@framepointer.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
c31752b16d
commit
9016776f13
|
|
@ -402,6 +402,19 @@ static int admv8818_read_lpf_freq(struct admv8818_state *st, u64 *lpf_freq)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int admv8818_write_raw_get_fmt(struct iio_dev *indio_dev,
|
||||
struct iio_chan_spec const *chan,
|
||||
long mask)
|
||||
{
|
||||
switch (mask) {
|
||||
case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
|
||||
case IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY:
|
||||
return IIO_VAL_INT_64;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
static int admv8818_write_raw(struct iio_dev *indio_dev,
|
||||
struct iio_chan_spec const *chan,
|
||||
int val, int val2, long info)
|
||||
|
|
@ -410,6 +423,9 @@ static int admv8818_write_raw(struct iio_dev *indio_dev,
|
|||
|
||||
u64 freq = ((u64)val2 << 32 | (u32)val);
|
||||
|
||||
if ((s64)freq < 0)
|
||||
return -EINVAL;
|
||||
|
||||
switch (info) {
|
||||
case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
|
||||
return admv8818_lpf_select(st, freq);
|
||||
|
|
@ -571,6 +587,7 @@ static int admv8818_set_mode(struct iio_dev *indio_dev,
|
|||
|
||||
static const struct iio_info admv8818_info = {
|
||||
.write_raw = admv8818_write_raw,
|
||||
.write_raw_get_fmt = admv8818_write_raw_get_fmt,
|
||||
.read_raw = admv8818_read_raw,
|
||||
.debugfs_reg_access = &admv8818_reg_access,
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user