[PATCH 1/5] iio:adc:at91_adc8xx: introduce new atmel adc driver
From: Ludovic Desroches <hidden>
Date: 2015-12-23 10:49:18
Also in:
linux-devicetree, linux-iio, lkml
From: Ludovic Desroches <hidden>
Date: 2015-12-23 10:49:18
Also in:
linux-devicetree, linux-iio, lkml
On Wed, Dec 23, 2015 at 11:27:00AM +0100, Ludovic Desroches wrote:
On Tue, Dec 22, 2015 at 06:34:00PM +0000, Jonathan Cameron wrote:quoted
On 21/12/15 09:24, Ludovic Desroches wrote:quoted
This driver supports the new version of the Atmel ADC device introduced with the SAMA5D2 SoC family.
[...]
quoted
quoted
+static irqreturn_t at91_adc_interrupt(int irq, void *private) +{ + struct iio_dev *indio = private; + struct at91_adc_state *st = iio_priv(indio); + u32 status = at91_adc_readl(st, ADC_ISR); + + status &= at91_adc_readl(st, ADC_IMR); + if (status & 0xFFF) { + st->last_value = at91_adc_readl(st, st->chan->address);If this is a polled read - is there any reason to read this value here rather than outside the interrupt?No it can be done outside the interrupt. I have taken some parts from the previous driver but it was reading a register used by all the channels when it has been designed. So yes there is probably no more reason to read it into the interrupt.
Thinking about it. Is it really useful to move reading outside the interrupt? By the way this is not a polled read.
quoted
quoted
+ st->done = true; + wake_up_interruptible(&st->wq_data_available); + } + + return IRQ_HANDLED; +}
Ludovic