linux/drivers/iio
Nuno Sa 2c664df0b2 iio: adc: ad9467: fix scale setting
[ Upstream commit b73f08bb7f ]

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: ad67971202 ("iio: adc: ad9467: add support AD9467 ADC")
Signed-off-by: Nuno Sa <nuno.sa@analog.com>
Reviewed-by: David Lechner <dlechner@baylibre.com>
Link: https://lore.kernel.org/r/20231207-iio-backend-prep-v2-4-a4a33bc4d70e@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-01-25 15:35:52 -08:00
..
accel iio: kx022a: Fix acceleration value scaling 2024-01-01 12:42:37 +00:00
adc iio: adc: ad9467: fix scale setting 2024-01-25 15:35:52 -08:00
addac iio: addac: Kconfig: update ad74413r selections 2023-10-05 18:06:45 +01:00
afe iio: afe: rescale: Accept only offset channels 2023-10-17 20:25:32 +01:00
amplifiers iio: amplifiers: ad8366: add support for HMC792A Attenuator 2023-07-23 12:22:56 +01:00
buffer iio: triggered-buffer: prevent possible freeing of wrong buffer 2024-01-01 12:42:38 +00:00
cdc iio: cdc: ad7150: relax return value check for IRQ get 2023-08-01 18:55:55 +01:00
chemical iio: chemical: scd4x: Add pressure compensation 2023-07-20 19:21:30 +01:00
common iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table 2024-01-01 12:42:37 +00:00
dac iio: dac: ad3552r: Correct device IDs 2023-09-11 20:12:59 +01:00
dummy Bitmap patches for 5.19-rc1 2022-06-04 14:04:27 -07:00
filter drivers: iio: filter: admv8818: add bypass mode 2023-08-08 09:51:06 +01:00
frequency iio: frequency: adf4350: Use device managed functions and fix power down issue. 2023-11-20 11:59:24 +01:00
gyro iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
health iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
humidity iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
imu iio: imu: adis16475: use bit numbers in assign_bit() 2024-01-10 17:16:57 +01:00
light iio: light: vcnl4000: Don't power on/off chip in config 2023-10-05 18:06:46 +01:00
magnetometer iio: tmag5273: fix temperature offset 2024-01-01 12:42:38 +00:00
multiplexer iio: multiplexer: Switch to use dev_err_probe() helper 2022-11-23 19:43:57 +00:00
orientation iio: hid-sensors: bind IIO channels alloc to device object 2021-07-13 18:21:53 +01:00
position iio: hid-sensors: Update header includes 2021-06-16 14:53:13 +01:00
potentiometer iio: potentiometer: mcp4531: Use i2c_get_match_data() 2023-07-29 15:55:48 +01:00
potentiostat iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
pressure iio: pressure: ms5611: ms5611_prom_is_valid false negative bug 2023-10-05 18:06:46 +01:00
proximity iio: irsd200: fix -Warray-bounds bug in irsd200_trigger_handler 2023-10-05 18:06:45 +01:00
resolver iio: resolver: ad2s90: Fix alignment for DMA safety 2022-06-14 11:53:19 +01:00
temperature iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
test iio: test: Mark file local structure arrays static. 2022-08-15 22:30:01 +01:00
trigger iio: trigger: stm32-lptimer-trigger: remove unneeded platform_set_drvdata() 2023-08-05 19:29:39 +01:00
iio_core.h iio: Mark iio_device_type as const 2021-11-17 17:51:35 +00:00
iio_core_trigger.h iio: core-trigger: make iio_device_register_trigger_consumer() an int return 2021-03-11 20:47:02 +00:00
industrialio-buffer.c iio: buffer: fix coding style warnings 2023-05-13 17:56:06 +01:00
industrialio-configfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-core.c Merge 6.5-rc6 into char-misc-next 2023-08-13 22:14:51 +02:00
industrialio-event.c iio: Add event enums for running period and count 2023-07-23 13:16:18 +01:00
industrialio-gts-helper.c iio: gts-helpers: fix integration time units 2023-05-13 17:54:57 +01:00
industrialio-sw-device.c iio: Don't use bare "unsigned" 2022-07-01 11:19:08 +01:00
industrialio-sw-trigger.c iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails 2022-11-12 17:53:35 +00:00
industrialio-trigger.c iio: Make return value check for set_trigger_state() consistent 2023-07-20 19:21:30 +01:00
industrialio-triggered-event.c iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
inkern.c iio: inkern: Add a helper to query an available minimum raw value 2023-07-09 22:48:17 +01:00
Kconfig iio: light: Add gain-time-scale helpers 2023-04-10 12:26:34 +01:00
Makefile iio: light: Add gain-time-scale helpers 2023-04-10 12:26:34 +01:00
TODO iio: core: move 'mlock' to 'struct iio_dev_opaque' 2022-11-23 19:44:00 +00:00