• Nuno Sa's avatar
    iio: adc: ad9467: fix scale setting · b73f08bb
    Nuno Sa authored
    When reading in_voltage_scale we can get something like:
    
    root@analog:/sys/bus/iio/devices/iio:device2# cat in_voltage_scale
    0.038146
    
    However, when reading the available options:
    
    root@analog:/sys/bus/iio/devices/iio:device2# cat
    in_voltage_scale_available
    2000.000000 2100.000006 2200.000007 2300.000008 2400.000009 2500.000010
    
    which does not make sense. Moreover, when trying to set a new scale we
    get an error because there's no call to __ad9467_get_scale() to give us
    values as given when reading in_voltage_scale. Fix it by computing the
    available scales during probe and properly pass the list when
    .read_available() is called.
    
    While at it, change to use .read_available() from iio_info. Also note
    that to properly fix this, adi-axi-adc.c has to be changed accordingly.
    
    Fixes: ad679712 ("iio: adc: ad9467: add support AD9467 ADC")
    Signed-off-by: default avatarNuno Sa <nuno.sa@analog.com>
    Reviewed-by: default avatarDavid Lechner <dlechner@baylibre.com>
    Link: https://lore.kernel.org/r/20231207-iio-backend-prep-v2-4-a4a33bc4d70e@analog.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    b73f08bb
ad9467.c 13.4 KB