On Fri, Nov 24, 2023 at 7:22 PM Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> wrote: > [snip] > - gpio: See how both gpio_chip and gpio_device have base, ngpio, a > parent pointer (gpio_device has it in .dev), an owner and a label. > Do they all have the same semantic? Yes? -> that's bad. No? -> > that's IMHO even worse. For the record: I am very well aware there are a lot of things wrong with GPIO at the moment. It's years of technical debt biting back. I've racked up ~100 patches last release cycle alone fixing various cases of abuse of GPIOLIB in the wildest places (OMAP1?!). I'm slowly doing cleanups all around the place but since GPIO is so ubiquitous across the kernel tree, it's going quite slow. I'm going to get to the duplication between gpio_chip and gpio_device but we still have users in the kernel who shamelessly access gpio_chip directly without being GPIO providers. This is not an argument against the general approach I presented - it's an argument against stacking up years' worth of cruft. Bart