On Sun, 30 Apr 2023, Linus Walleij wrote: > Aaro reports problems on the OSK1 board after we altered > the dynamic base for GPIO allocations. > > It appears this happens because the OMAP driver now > allocates GPIO numbers dynamically, so all that is > references by number is a bit up in the air. > > Let's bite the bullet and try to just move the gpio_chip > in the tps65010 MFD driver over to using dynamic allocations. > Alter everything in the OSK1 board file to use a GPIO > descriptor table and lookups. > > Utilize the NULL device to define some board-specific > GPIO lookups and use these to immediately look up the > same GPIOs, convert to IRQ numbers and pass as resources > to the devices. This is ugly but should work. > > The .setup() callback for tps65010 was used for some GPIO > hogging, but since the OSK1 is the only user in the entire > kernel we can alter the signatures to something that > is helpful and make a clean transition. > > Fixes: 92bf78b33b0b ("gpio: omap: use dynamic allocation of base") > Cc: Christophe Leroy <christophe.leroy@xxxxxxxxxx> > Cc: andy.shevchenko@xxxxxxxxx > Cc: Andreas Kemnade <andreas@xxxxxxxxxxxx> > Cc: Lee Jones <lee@xxxxxxxxxx> > Reported-by: Aaro Koskinen <aaro.koskinen@xxxxxx> > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > ChangeLog v2->v3: > - Add proper gpiod table terminators. > - Use DEFINE_RES_IRQ() > - Forward-declare struct gpio_chip instead of including a header. > ChangeLog v1->v2: > - Fix the CF card GPIO lookup > - Use the right Fixes: tag > --- > arch/arm/mach-omap1/board-osk.c | 137 ++++++++++++++++++++++---------- > drivers/mfd/tps65010.c | 14 ++-- Reviewed-by: Lee Jones <lee@xxxxxxxxxx> What's the merge plan for this? > include/linux/mfd/tps65010.h | 11 +-- > 3 files changed, 102 insertions(+), 60 deletions(-) -- Lee Jones [李琼斯]