iio: adc: cc10001: Add delay before setting START bit
authorNaidu Tellapati <naidu.tellapati@imgtec.com>
Thu, 7 May 2015 21:22:20 +0000 (18:22 -0300)
committerJonathan Cameron <jic23@kernel.org>
Tue, 12 May 2015 19:01:13 +0000 (20:01 +0100)
According to hardware team there should be some delay after
setting channel number, start mode and before setting START.
Add a one microsecond delay for this purpose.

Fixes: 1664f6a5b0c8 ("iio: adc: Cosmic Circuits 10001 ADC driver")
Signed-off-by: Naidu Tellapati <naidu.tellapati@imgtec.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/adc/cc10001_adc.c

index fb7c5d2cc61a7a8067de2714cd2c3ac625cdcf5d..115f6e99a7fa7c603ca9655d04759545c48e5932 100644 (file)
@@ -100,6 +100,7 @@ static void cc10001_adc_start(struct cc10001_adc_device *adc_dev,
        val = (channel & CC10001_ADC_CH_MASK) | CC10001_ADC_MODE_SINGLE_CONV;
        cc10001_adc_write_reg(adc_dev, CC10001_ADC_CONFIG, val);
 
+       udelay(1);
        val = cc10001_adc_read_reg(adc_dev, CC10001_ADC_CONFIG);
        val = val | CC10001_ADC_START_CONV;
        cc10001_adc_write_reg(adc_dev, CC10001_ADC_CONFIG, val);