1
0
Fork 0
alistair23-linux/drivers/iio/adc
Maarten ter Huurne 5a304e1a4e IIO: Ingenic JZ47xx: Set clock divider on probe
The SADC component can run at up to 8 MHz on JZ4725B, but is fed
a 12 MHz input clock (EXT). Divide it by two to get 6 MHz, then
set up another divider to match, to produce a 10us clock.

If the clock dividers are left on their power-on defaults (a divider
of 1), the SADC mostly works, but will occasionally produce erroneous
readings. This led to button presses being detected out of nowhere on
the RS90 every few minutes. With this change, no ghost button presses
were logged in almost a day worth of testing.

The ADCLK register for configuring clock dividers doesn't exist on
JZ4740, so avoid writing it there.

A function has been introduced rather than a flag because there is a lot
of variation between the ADCLK registers on JZ47xx SoCs, both in
the internal layout of the register and in the frequency range
supported by the SADC. So this solution should make it easier
to add support for other JZ47xx SoCs later.

Fixes: 1a78daea10 ("iio: adc: probe should set clock divider")
Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
Signed-off-by: Artur Rojek <contact@artur-rojek.eu>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2019-07-14 16:02:08 +01:00
..
Kconfig Second set of IIO device support, features, cleanups and minor fixes for 5.3. 2019-07-01 10:58:13 +02:00
Makefile iio: adc: Add driver for the TI ADS8344 A/DC chips 2019-04-22 11:34:13 +01:00
ad799x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ad7124.c iio: adc: ad7124: Shift to dynamic allocation for channel configuration 2019-06-26 21:24:21 +01:00
ad7266.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7291.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad7298.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7476.c iio: adc: ad7476: Add support for TI ADS786X ADCs 2019-02-09 18:46:02 +00:00
ad7606.c iio: adc: ad7606: Add software configuration 2019-06-16 16:45:22 +01:00
ad7606.h iio: adc: ad7606: Add software configuration 2019-06-16 16:45:22 +01:00
ad7606_par.c staging: iio: adc: ad7606: Move out of staging 2019-01-05 16:10:59 +00:00
ad7606_spi.c iio: adc: ad7616: Add support for AD7616 ADC 2019-04-14 13:22:29 +01:00
ad7766.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad7768-1.c iio: adc: ad7768-1: Add support for setting the sampling frequency 2019-02-09 18:46:01 +00:00
ad7780.c iio: adc: ad7780: Add parentheses to macros 2019-04-04 20:20:30 +01:00
ad7791.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7793.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7887.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7923.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7949.c iio:adc:ad7949: Add AD7949 ADC driver family 2018-11-03 09:44:34 +00:00
ad_sigma_delta.c Second set of IIO device support, features, cleanups and minor fixes for 5.3. 2019-07-01 10:58:13 +02:00
aspeed_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
at91-sama5d2_adc.c Merge 5.2-rc6 into staging-next 2019-06-23 13:29:03 +02:00
at91_adc.c Merge 5.2-rc3 into staging-next 2019-06-03 07:27:16 +02:00
axp20x_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
axp288_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 285 2019-06-05 17:36:37 +02:00
bcm_iproc_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 459 2019-06-19 17:09:09 +02:00
berlin2-adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
cc10001_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpcap-adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
da9150-gpadc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dln2-adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 2019-06-05 17:37:10 +02:00
envelope-detector.c iio: envelope-detector: switch to SPDX license identifier 2018-08-20 19:27:05 +01:00
ep93xx_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
exynos_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
fsl-imx25-gcq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
hi8435.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
hx711.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
imx7d_adc.c Second set of IIO device support, features, cleanups and minor fixes for 5.3. 2019-07-01 10:58:13 +02:00
ina2xx-adc.c iio: adc: ina2xx: add in early -EINVAL returns in case statements 2018-10-21 15:43:11 +01:00
ingenic-adc.c IIO: Ingenic JZ47xx: Set clock divider on probe 2019-07-14 16:02:08 +01:00
lp8788_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lpc18xx_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lpc32xx_adc.c iio: adc: lpc32xx: Add scale feature 2019-04-04 20:20:02 +01:00
ltc2471.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 253 2019-06-05 17:30:27 +02:00
ltc2485.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ltc2497.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
max1027.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max1118.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
max1363.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max9611.c iio: adc: max9611: Fix misuse of GENMASK macro 2019-07-14 12:53:28 +01:00
max11100.c iio: adc: max11100: convert to SPDX identifiers 2018-11-16 18:32:27 +00:00
mcp320x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mcp3422.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mcp3911.c iio: adc: add support for mcp3911 2018-08-19 20:02:48 +01:00
men_z188_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
meson_saradc.c iio: adc: meson_saradc: update with SPDX Licence identifier 2019-06-16 16:45:21 +01:00
mt6577_auxadc.c Merge 5.2-rc3 into staging-next 2019-06-03 07:27:16 +02:00
mxs-lradc-adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
nau7802.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 71 2019-05-24 17:36:47 +02:00
npcm_adc.c iio: adc: modify NPCM ADC read reference voltage 2019-04-07 11:26:47 +01:00
palmas_gpadc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 2019-06-05 17:37:10 +02:00
qcom-pm8xxx-xoadc.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: Fix of-based module autoloading 2019-04-22 11:51:29 +01:00
qcom-spmi-iadc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom-spmi-vadc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom-vadc-common.c iio: adc: Add QCOM SPMI PMIC5 ADC driver 2018-08-18 18:11:43 +01:00
qcom-vadc-common.h iio: adc: Add QCOM SPMI PMIC5 ADC driver 2018-08-18 18:11:43 +01:00
rcar-gyroadc.c iio: adc: rcar-gyroadc: Remove devm_iio_device_alloc() error printing 2019-05-05 12:51:07 +01:00
rockchip_saradc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
sc27xx_adc.c iio: adc: sc27xx: Add ADC data conversion timeout 2018-11-16 18:32:32 +00:00
sd_adc_modulator.c IIO: ADC: add sigma delta modulator support 2018-01-10 10:30:09 +00:00
spear_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
stm32-adc-core.c iio: adc: stm32-adc: add missing vdda-supply 2019-06-22 10:37:26 +01:00
stm32-adc-core.h iio: stm32: Adopt SPDX identifier 2018-01-08 16:03:41 +01:00
stm32-adc.c iio: adc: stm32-adc: switch off running adc when going to low power 2018-11-25 13:16:38 +00:00
stm32-dfsdm-adc.c iio: adc: stm32-dfsdm: add comment for 16 bits record 2019-06-22 10:32:43 +01:00
stm32-dfsdm-core.c iio: adc: stm32-dfsdm: missing error case during probe 2019-04-27 14:09:28 +01:00
stm32-dfsdm.h iio: adc: stm32-dfsdm: add fast mode support 2019-06-22 10:29:19 +01:00
stmpe-adc.c iio: stmpe-adc: Reset possible interrupts 2019-05-11 11:18:34 +01:00
stx104.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
sun4i-gpadc-iio.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti-adc081c.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti-adc084s021.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti-adc108s102.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
ti-adc128s052.c iio: adc128s052: use SPDX-License-Identifier 2018-11-03 09:44:33 +00:00
ti-adc161s626.c iio: add SPDX identifier for various drivers 2018-02-18 11:55:19 +00:00
ti-adc0832.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
ti-adc12138.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
ti-ads124s08.c iio: adc: ads124: avoid buffer overflow 2019-04-07 13:01:36 +01:00
ti-ads1015.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
ti-ads7950.c iio: adc: ti-ads7950: add GPIO support 2019-04-04 20:19:53 +01:00
ti-ads8344.c iio: adc: Add driver for the TI ADS8344 A/DC chips 2019-04-22 11:34:13 +01:00
ti-ads8688.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti-tlc4541.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti_am335x_adc.c iio: adc: ti_am335x_tscadc: Improve accuracy of measurement 2018-12-03 11:33:20 +00:00
twl4030-madc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
twl6030-gpadc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
vf610_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
viperboard_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
xilinx-xadc-core.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
xilinx-xadc-events.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
xilinx-xadc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00