Hi Linus, On Fri, Dec 4, 2020 at 9:37 AM Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > The idea to create a debugfs to replace the aging and > dangerous sysfs ABI for hacking and tinkering came up > on the list. > > Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Thanks for your patch! Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > --- a/drivers/gpio/TODO > +++ b/drivers/gpio/TODO > @@ -142,3 +142,39 @@ use of the global GPIO numbers. Once the above is complete, it may > make sense to simply join the subsystems into one and make pin > multiplexing, pin configuration, GPIO, etc selectable options in one > and the same pin control and GPIO subsystem. > + > + > +Debugfs in place of sysfs > + > +The old sysfs code that enables simple uses of GPIOs from the > +command line is still popular despite the existance of the proper > +character device. The reason is that it is simple to use on > +root filesystems where you only have a minimal set of tools such > +as "cat", "echo" etc. > + > +The old sysfs still need to be strongly deprecated and removed > +as it relies on the global GPIO numberspace that assume a strict > +order of global GPIO numbers that do not change between boots > +and is independent of probe order. > + > +To solve this and provide an ABI that people can use for hacks > +and development, implement a debugfs interface to manipulate > +GPIO lines that can do everything that sysfs can do today: one > +directory per gpiochip and one file entry per line: > + > +/sys/kernel/debug/gpiochip/gpiochip0 > +/sys/kernel/debug/gpiochip/gpiochip0/0 .../gpio0? Might be a better name, if you ever want to create a symlink to this virtual file (e.g. from the line-name)? > +/sys/kernel/debug/gpiochip/gpiochip0/1 > +/sys/kernel/debug/gpiochip/gpiochip0/2 > +/sys/kernel/debug/gpiochip/gpiochip0/3 Plus a symlink to the device backing this gpiochip. > +... > +/sys/kernel/debug/gpiochip/gpiochip1 > +/sys/kernel/debug/gpiochip/gpiochip1/0 > +/sys/kernel/debug/gpiochip/gpiochip1/1 > +... > + > +The exact files and design of the debugfs interface can be > +discussed but the idea is to provide a low-level access point > +for debugging and hacking and to expose all lines without the > +need of any exporting. Also provide ample ammunition to shoot > +oneself in the foot, because this is debugfs after all. (let the bikeshedding begin ;-) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds