On Fri, Jun 5, 2020 at 9:44 PM Michael Walle <michael@xxxxxxxx> wrote: > Am 2020-06-05 15:15, schrieb Andy Shevchenko: > > On Fri, Jun 05, 2020 at 02:42:53PM +0200, Michael Walle wrote: > >> Am 2020-06-05 14:00, schrieb Andy Shevchenko: > >> > On Fri, Jun 5, 2020 at 12:14 AM Michael Walle <michael@xxxxxxxx> wrote: ... > >> > > + if (irq_support && > >> > > >> > Why do you need this flag? Can't simple IRQ number be sufficient? > >> > >> I want to make sure, the is no misconfiguration. Eg. only GPIO > >> flavors which has irq_support set, have the additional interrupt > >> registers. > > > > In gpio-dwapb, for example, we simple check two things: a) hardware > > limitation > > (if IRQ is assigned to a proper port) and b) if there is any IRQ comes > > from DT, > > ACPI, etc. > > I can't follow you here. irq_support is like your (a); or the > "pp->idx == 0" in your example. And you have type already. Why do you need to duplicate it? Moreover, is it protection from wrong type to have interrupts? You can move this all stuff under corresponding switch-case. > >> > > + device_property_read_bool(&pdev->dev, > >> > > "interrupt-controller")) { > >> > > + irq = platform_get_irq(pdev, 0); > >> > > + if (irq < 0) > >> > > + return irq; > >> > > + > >> > > + ret = sl28cpld_gpio_irq_init(&pdev->dev, gpio, regmap, > >> > > + base, irq); > >> > > + if (ret) > >> > > + return ret; > >> > > + > >> > > + config.irq_domain = > >> > > regmap_irq_get_domain(gpio->irq_data); -- With Best Regards, Andy Shevchenko