Commit b9a063a1654653348161de8d3d411d8ce2f56856
1 parent
d5b52b5992
Exists in
v3.2_SMARCT335xPSP_04.06.00.11
and in
3 other branches
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 |