On Sat, Dec 25, 2021 at 2:00 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > For the CRC PMIC we end up with multiple irq-domains with the same fwnode. > One for the irqchip which demultiplexes the actual PMIC interrupt into > interrupts for the various cells (known as the level 1 interrupts); > > And 2 more for the irqchips which are part of the crystal_cove_gpio > and crystal_cove_charger cells. > > This leads to the following error being printed when > CONFIG_GENERIC_IRQ_DEBUGFS is enabled: > debugfs: File '\_SB.I2C7.PMIC' in directory 'domains' already present! > > Set the bus token of the main IRQ domain to DOMAIN_BUS_WIRED to avoid > this error, this also allows irq_find_matching_fwspec() to find the > right domain if necessary. > > Note all 3 domain registering drivers need to set the IRQ domain bus token. > This is necessary because the IRQ domain code defaults to creating > the debugfs dir with just the fwnode name and then renames it when > the bus token is set. So each one starts with the same default name and > all 3 must be given a different name to avoid problems when one of the > other drivers loads and starts with the same default name. Acked-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/gpio/gpio-crystalcove.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-crystalcove.c b/drivers/gpio/gpio-crystalcove.c > index 5a909f3c79e8..b55c74a5e064 100644 > --- a/drivers/gpio/gpio-crystalcove.c > +++ b/drivers/gpio/gpio-crystalcove.c > @@ -370,7 +370,14 @@ static int crystalcove_gpio_probe(struct platform_device *pdev) > return retval; > } > > - return devm_gpiochip_add_data(&pdev->dev, &cg->chip, cg); > + retval = devm_gpiochip_add_data(&pdev->dev, &cg->chip, cg); > + if (retval) > + return retval; > + > + /* Distuingish IRQ domain from others sharing (MFD) the same fwnode */ > + irq_domain_update_bus_token(cg->chip.irq.domain, DOMAIN_BUS_WIRED); > + > + return 0; > } > > static struct platform_driver crystalcove_gpio_driver = { > -- > 2.33.1 > -- With Best Regards, Andy Shevchenko