Re: [PATCH] iio: adc: rockchip_saradc: Explicitly disable ADC on probe
From: Jonathan Cameron <jic23@kernel.org>
Date: 2016-08-15 18:04:35
Also in:
linux-rockchip, lkml
On 26/07/16 04:22, Guenter Roeck wrote:
On 07/25/2016 07:51 PM, Caesar Wang wrote:quoted
Hi Guenter, Thanks for fixing it. On 2016年07月26日 03:39, Guenter Roeck wrote:quoted
If the ADC is read for the first time, the caller gets a timeout error, and the kernel log shows read channel() error: -110 The ADC may be enabled on boot, and needs to be explicitly disabled for a read sequence to work (otherwise there is no completion interrupt). Disaple it explicitly in the probe function. Fixes: 44d6f2ef94f9 ("iio: adc: add driver for Rockchip saradc") Signed-off-by: Guenter Roeck <linux@roeck-us.net> --- drivers/iio/adc/rockchip_saradc.c | 3 +++ 1 file changed, 3 insertions(+)diff --git a/drivers/iio/adc/rockchip_saradc.c b/drivers/iio/adc/rockchip_saradc.c index f9ad6c2d6821..6aa3271d86b5 100644 --- a/drivers/iio/adc/rockchip_saradc.c +++ b/drivers/iio/adc/rockchip_saradc.c@@ -280,6 +280,9 @@ static int rockchip_saradc_probe(struct platform_device *pdev) goto err_pclk; } + /* Make sure ADC is disabled */ + writel_relaxed(0, info->regs + SARADC_CTRL);I think we should reset the saradc controller. Since make sure the reset value is 0 and loader-->kernel may even cause harm, as my experience on tsadc. (drivers/thermal/rockchip_thermal.c) e.g.: /** * Reset SARADC Controller, reset all saradc registers. */ static void rockchip_saradc_reset_controller(struct reset_control *reset) { reset_control_assert(reset); usleep_range(10, 20); reset_control_deassert(reset); } ..probe() { ... rockchip_saradc_reset_controller(); ... }Ok, I'll give it a try. Guenter
Could you confirm if this patch is superseded by that change or not?
quoted
- Caesarquoted
+ platform_set_drvdata(pdev, indio_dev); indio_dev->name = dev_name(&pdev->dev);-- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html