iio: adc: at91_adc: correct default shtim value
When sample_hold_time is zero (this is the case when DT is not used or if atmel,adc-sample-hold-time is omitted), then the calculated shtim is large. Make that 0, which is the default for that register and the ADC will then use a sane value of 2/ADCCLK or 1/ADCCLK depending on the version. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Acked-by: Josh Wu <josh.wu@atmel.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
301841a634
commit
8f32b6ba56
|
@ -1007,8 +1007,11 @@ static int at91_adc_probe(struct platform_device *pdev)
|
|||
* the best converted final value between two channels selection
|
||||
* The formula thus is : Sample and Hold Time = (shtim + 1) / ADCClock
|
||||
*/
|
||||
shtim = round_up((st->sample_hold_time * adc_clk_khz /
|
||||
1000) - 1, 1);
|
||||
if (st->sample_hold_time > 0)
|
||||
shtim = round_up((st->sample_hold_time * adc_clk_khz / 1000)
|
||||
- 1, 1);
|
||||
else
|
||||
shtim = 0;
|
||||
|
||||
reg = AT91_ADC_PRESCAL_(prsc) & st->registers->mr_prescal_mask;
|
||||
reg |= AT91_ADC_STARTUP_(ticks) & st->registers->mr_startup_mask;
|
||||
|
|
Loading…
Reference in New Issue