iio: stmpe-adc: Enable all stmpe-adc interrupts just once
authorPhilippe Schenker <philippe.schenker@toradex.com>
Tue, 7 May 2019 14:36:13 +0000 (16:36 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 11 May 2019 10:09:02 +0000 (11:09 +0100)
This commit will enable the interrupts of all channels handled by this
driver only once in the probe function.

This will improve performance because one byte less has to be written over
i2c on each read out of the adc. On the fastest ADC mode this will improve
read out speed by 15%.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/stmpe-adc.c

index 5940bb8085b247d96d48bad05be1e4c68e41f70d..229b0b9ac13024e0c35cbf1cd427a041b14b73cc 100644 (file)
@@ -74,9 +74,6 @@ static int stmpe_read_voltage(struct stmpe_adc *info,
                return -EINVAL;
        }
 
-       stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
-                       STMPE_ADC_CH(info->channel));
-
        stmpe_reg_write(info->stmpe, STMPE_REG_ADC_CAPT,
                        STMPE_ADC_CH(info->channel));
 
@@ -333,6 +330,9 @@ static int stmpe_adc_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
+       stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
+                       ~(norequest_mask & 0xFF));
+
        return devm_iio_device_register(&pdev->dev, indio_dev);
 }