Messages in this thread | | | Subject | Re: [PATCH] gpio: pca953x: Read irq trigger type from DT | From | Grygorii Strashko <> | Date | Thu, 5 Dec 2019 17:01:14 +0200 |
| |
On 05/12/2019 16:45, Vignesh Raghavendra wrote: > Instead of hardcoding irq trigger type to IRQF_TRIGGER_LOW, let's > respect settings specified in DT. Default to IRQF_TRIGGER_LOW, > if DT does not provide a flag. > > Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> > --- > drivers/gpio/gpio-pca953x.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c > index 6652bee01966..e0e2a77ef6ad 100644 > --- a/drivers/gpio/gpio-pca953x.c > +++ b/drivers/gpio/gpio-pca953x.c > @@ -744,6 +744,7 @@ static int pca953x_irq_setup(struct pca953x_chip *chip, int irq_base) > struct irq_chip *irq_chip = &chip->irq_chip; > DECLARE_BITMAP(reg_direction, MAX_LINE); > DECLARE_BITMAP(irq_stat, MAX_LINE); > + unsigned long irqflags; > int ret; > > if (!client->irq) > @@ -768,10 +769,14 @@ static int pca953x_irq_setup(struct pca953x_chip *chip, int irq_base) > bitmap_and(chip->irq_stat, irq_stat, reg_direction, chip->gpio_chip.ngpio); > mutex_init(&chip->irq_lock); > > + irqflags = irq_get_trigger_type(client->irq); > + if (irqflags == IRQF_TRIGGER_NONE) > + irqflags = IRQF_TRIGGER_LOW;
I think you can just drop IRQF_TRIGGER_LOW: - for paltform code it will be set from resources in platform_get_irq_optional() - for DT code it will be set in __setup_irq()
> + irqflags |= IRQF_ONESHOT | IRQF_SHARED; > + > ret = devm_request_threaded_irq(&client->dev, client->irq, > NULL, pca953x_irq_handler, > - IRQF_TRIGGER_LOW | IRQF_ONESHOT | > - IRQF_SHARED, > + irqflags, > dev_name(&client->dev), chip); > if (ret) { > dev_err(&client->dev, "failed to request irq %d\n", >
-- Best regards, grygorii
| |