linux/drivers/iio/adc
Stefan Agner f54e9f2be3 iio: adc: vf610: use ADC clock within specification
Depending on conversion mode used, the ADC clock (ADCK) needs
to be below a maximum frequency. According to Vybrid's data
sheet this is 20MHz for the low power conversion mode.

The ADC clock is depending on input clock, which is the bus
clock by default. Vybrid SoC are typically clocked at at 400MHz
or 500MHz, which leads to 66MHz or 83MHz bus clock respectively.
Hence, a divider of 8 is required to stay below the specified
maximum clock of 20MHz.

Due to the different bus clock speeds, the resulting sampling
frequency is not static. Hence use the ADC clock and calculate
the actual available sampling frequency dynamically.

This fixes bogous values observed on some 500MHz clocked Vybrid
SoC. The resulting value usually showed Bit 9 being stuck at 1,
or 0, which lead to a value of +/-512.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Fugang Duan <B38611@freescale.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2015-03-28 12:00:02 +00:00
..
ad799x.c iio: ad799x: Fix ad7991/ad7995/ad7999 config setup 2014-12-12 12:34:00 +00:00
ad7266.c
ad7291.c 3rd round of IIO new drivers, cleanups and functionality for the 3.17 cycle. 2014-07-13 12:31:47 -07:00
ad7298.c iio:adc:ad7298: Use BIT() and GENMASK() macros 2014-06-14 16:04:24 +01:00
ad7476.c iio:adc:ad7476: Use GENMASK() macro 2014-06-14 16:03:48 +01:00
ad7791.c
ad7793.c
ad7887.c iio:adc:ad7887: Use BIT() and GENMASK() macros 2014-06-14 16:03:19 +01:00
ad7923.c
ad_sigma_delta.c iio: adc: ad_sigma_delta: Fix indio_dev->trig assignment 2014-08-25 21:48:29 +01:00
at91_adc.c iio: fix drivers that check buffer->scan_mask 2015-03-07 19:17:07 +00:00
axp288_adc.c iio/axp288_adc: remove THIS_MODULE owner 2014-11-18 15:34:22 +00:00
cc10001_adc.c iio: adc: Cosmic Circuits 10001 ADC driver 2015-01-29 18:09:40 +00:00
exynos_adc.c iio: adc: exynos_adc: Add support for exynos7 2014-11-05 15:38:25 +00:00
Kconfig iio/adc/cc10001_adc.c: Fix !HAS_IOMEM build 2015-03-28 11:59:31 +00:00
lp8788_adc.c iio: remove .owner field for driver using module_platform_driver 2014-08-26 21:08:38 +01:00
Makefile iio: adc: Cosmic Circuits 10001 ADC driver 2015-01-29 18:09:40 +00:00
max1027.c iio: add support of the max1027 2014-06-28 09:54:14 +01:00
max1363.c iio:adc:max1363 incorrect resolutions for max11604, max11605, max11610 and max11611. 2014-05-25 12:06:25 +01:00
mcp320x.c iio: adc: mcp320x. Add support for more ADCs 2014-10-09 20:14:03 +01:00
mcp3422.c iio:adc:mcp3422 Fix incorrect scales table 2015-02-04 16:30:22 +00:00
men_z188_adc.c iio: adc: men_z188_adc: Add terminating entry for men_z188_ids 2014-11-15 16:12:04 +00:00
nau7802.c
qcom-spmi-iadc.c iio: iadc: wait_for_completion_timeout time in jiffies 2015-01-10 11:43:26 +00:00
qcom-spmi-vadc.c iio: vadc: Qualcomm SPMI PMIC voltage ADC driver 2015-01-28 18:42:08 +00:00
rockchip_saradc.c Staging patches for 3.19-rc1 2014-12-15 18:06:13 -08:00
ti_am335x_adc.c iio: fix drivers that check buffer->scan_mask 2015-03-07 19:17:07 +00:00
ti-adc081c.c
ti-adc128s052.c iio: adc: Add TI ADC128S052 2014-08-07 14:43:25 +01:00
twl4030-madc.c iio: remove .owner field for driver using module_platform_driver 2014-08-26 21:08:38 +01:00
twl6030-gpadc.c iio: remove .owner field for driver using module_platform_driver 2014-08-26 21:08:38 +01:00
vf610_adc.c iio: adc: vf610: use ADC clock within specification 2015-03-28 12:00:02 +00:00
viperboard_adc.c iio: remove .owner field for driver using module_platform_driver 2014-08-26 21:08:38 +01:00
xilinx-xadc-core.c Merge 3.17-rc6 into staging-next. 2014-09-22 07:30:03 -07:00
xilinx-xadc-events.c iio: xilinx-xadc: Remove unused variable 2014-07-03 22:00:40 +01:00
xilinx-xadc.h