Commit b9a063a1654653348161de8d3d411d8ce2f56856

Authored by Patil, Rachna
1 parent d5b52b5992

IIO: ti_adc: Enabling of IRQ for continuous mode

Since IRQ is a part of continuous mode feature, Enabling should also
take place when continuous data is asked for.
In default mode ADC is configured as one shot, IRQ need not be enabled
if one wants to use one shot mode only.

Signed-off-by: Patil, Rachna <rachna@ti.com>

Showing 1 changed file with 6 additions and 8 deletions Side-by-side Diff

drivers/staging/iio/adc/ti_adc.c
... ... @@ -250,7 +250,9 @@
250 250 } else {
251 251 status = adc_readl(adc_dev, TSCADC_REG_IRQENABLE);
252 252 adc_writel(adc_dev, TSCADC_REG_IRQENABLE,
253   - (status | TSCADC_IRQENB_FIFO1THRES));
  253 + (status | TSCADC_IRQENB_FIFO1THRES |
  254 + TSCADC_IRQENB_FIFO1OVRRUN |
  255 + TSCADC_IRQENB_FIFO1UNDRFLW));
254 256  
255 257 fifo1count = adc_readl(adc_dev, TSCADC_REG_FIFO1CNT);
256 258 for (i = 0; i < fifo1count; i++)
... ... @@ -280,7 +282,9 @@
280 282 {
281 283 struct adc_device *adc_dev = iio_priv(idev);
282 284  
283   - adc_writel(adc_dev, TSCADC_REG_IRQCLR, TSCADC_IRQENB_FIFO1THRES);
  285 + adc_writel(adc_dev, TSCADC_REG_IRQCLR, (TSCADC_IRQENB_FIFO1THRES |
  286 + TSCADC_IRQENB_FIFO1OVRRUN |
  287 + TSCADC_IRQENB_FIFO1UNDRFLW));
284 288 adc_writel(adc_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB_TC);
285 289 return 0;
286 290 }
... ... @@ -394,7 +398,6 @@
394 398 struct adc_device *adc_dev = NULL;
395 399 struct ti_tscadc_dev *tscadc_dev = pdev->dev.platform_data;
396 400 struct mfd_tscadc_board *pdata;
397   - unsigned int irqenb;
398 401 int err;
399 402  
400 403 pdata = (struct mfd_tscadc_board *)tscadc_dev->dev->platform_data;
... ... @@ -421,11 +424,6 @@
421 424 idev->name = dev_name(&pdev->dev);
422 425 idev->modes = INDIO_DIRECT_MODE;
423 426 idev->info = &tiadc_info;
424   -
425   - irqenb = adc_readl(adc_dev, TSCADC_REG_IRQENABLE);
426   - adc_writel(adc_dev, TSCADC_REG_IRQENABLE,
427   - (irqenb | TSCADC_IRQENB_FIFO1OVRRUN
428   - | TSCADC_IRQENB_FIFO1UNDRFLW));
429 427  
430 428 adc_step_config(adc_dev);
431 429