[RESEND v2 04/10] gpio: stmpe: write int status register only when needed

Lee Jones lee.jones at linaro.org
Wed Aug 10 01:29:22 PDT 2016


On Wed, 10 Aug 2016, patrice.chotard at st.com wrote:

> From: Patrice Chotard <patrice.chotard at st.com>
> 
> On STMPE801/1801 datasheets, it's mentionned writing
> in interrupt status register has no effect, bits are
> cleared when reading.
> 
> Signed-off-by: Amelie DELAUNAY <amelie.delaunay at st.com>
> Signed-off-by: Patrice Chotard <patrice.chotard at st.com>
> Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
> ---
>  drivers/gpio/gpio-stmpe.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)

Applied, thanks.

> diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c
> index bfc918c..2789bdc 100644
> --- a/drivers/gpio/gpio-stmpe.c
> +++ b/drivers/gpio/gpio-stmpe.c
> @@ -355,12 +355,16 @@ static irqreturn_t stmpe_gpio_irq(int irq, void *dev)
>  			stat &= ~(1 << bit);
>  		}
>  
> -		stmpe_reg_write(stmpe, statmsbreg + i, status[i]);
> -
> -		/* Edge detect register is not present on 801 and 1801 */
> -		if (stmpe->partnum != STMPE801 || stmpe->partnum != STMPE1801)
> +		/*
> +		 * interrupt status register write has no effect on
> +		 * 801 and 1801, bits are cleared when read.
> +		 * Edge detect register is not present on 801 and 1801
> +		 */
> +		if (stmpe->partnum != STMPE801 || stmpe->partnum != STMPE1801) {
> +			stmpe_reg_write(stmpe, statmsbreg + i, status[i]);
>  			stmpe_reg_write(stmpe, stmpe->regs[STMPE_IDX_GPEDR_MSB]
>  					+ i, status[i]);
> +		}
>  	}
>  
>  	return IRQ_HANDLED;

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog



More information about the linux-arm-kernel mailing list