mbox series

[PATCH:,V2,0/2] Fix TC35894 gpio interrupt bug

Message ID 1599118222-18990-1-git-send-email-dillon.minfei@gmail.com
Headers show
Series Fix TC35894 gpio interrupt bug | expand

Message

Dillon Min Sept. 3, 2020, 7:30 a.m. UTC
From: dillon min <dillon.minfei@gmail.com>

This patchset intend to fix two bug on tc35894

V2:
1 change V1[1] patch's Fixes tag
2 add DIRECTx register configuration in tc3589x_gpio_irq_sync_unlock()
  to active general purpose gpio mode, else can't read correct
  GPIOMISx to identify which interrupt


V1:

1 offset counting is wrong in tc3589x_gpio_irq_sync_unlock()
2 disable Direct KBD interrupts in gpio-tc3589x's probe(),
  at least have to do this on tc35894, if not, after chip reset,
  IRQST(0x91) will always be 0x20, IRQN always low level,
  can't be cleared. need more test on other tc3589x.


dillon min (2):
  gpio: tc35894: fix up tc35894 interrupt configuration
  gpio: tc35894: Disable Direct KBD interrupts to enable gpio irq

 drivers/gpio/gpio-tc3589x.c | 20 +++++++++++++++++---
 include/linux/mfd/tc3589x.h |  6 ++++++
 2 files changed, 23 insertions(+), 3 deletions(-)

--

Comments

Bartosz Golaszewski Sept. 9, 2020, 9:34 a.m. UTC | #1
On Thu, Sep 3, 2020 at 9:30 AM <dillon.minfei@gmail.com> wrote:
>
> From: dillon min <dillon.minfei@gmail.com>
>
> The offset of regmap is incorrect, j * 8 is move to the
> wrong register.
>
> for example:
>
> asume i = 0, j = 1. we want to set KPY5 as interrupt
> falling edge mode, regmap[0][1] should be TC3589x_GPIOIBE1 0xcd
> but, regmap[i] + j * 8 = TC3589x_GPIOIBE0 + 8 ,point to 0xd4,
> this is TC3589x_GPIOIE2 not TC3589x_GPIOIBE1.
>
> Fixes: d88b25be3584 ("gpio: Add TC35892 GPIO driver")
> Signed-off-by: dillon min <dillon.minfei@gmail.com>
> ---
>

Queued for fixes.

Thanks!
Bartosz