Hi Linus, Thanks for feedback. > Subject: Re: [PATCH v5 0/9] Add RZ/G2L POEG support > > On Mon, Jan 9, 2023 at 4:10 PM Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote: > > > > What's wrong with using the debugfs approach Drew implemented in > > > commit 6199f6becc869d30ca9394ca0f7a484bf9d598eb > > > "pinctrl: pinmux: Add pinmux-select debugfs file" > > > ? > > > > I am not sure, we supposed to use debugfs for production environment?? > > It depends what is meant by "production environment". > > If you mean a controlled environment "one-off" such as a factory line, a > specific installation for a specific purpose such as a water purifier, that > is very custom and hacked together for that one usecase. It will have other > hacks too, so then Beagle is using debugfs in "production" > if that is what you mean by "production", i.e. used to produce something. > > This is the same "production" use cases as used by i.e. the GPIO character > device. > > If you mean that you are producing 6 million laptops where userspace is > going to hammer this constantly, then no. In that case a real sysfs knob and > ABI contract is needed. > > Usually vendors know which usecase their hardware is intended for, there is > in my experience no unknown target audience, so which one is it in your > case? > > > > such as a list of stuff to be exported as sysfs switches. > > > > Can you please elaborate? Or Point me to an example for this? > > Not sure what to say about that, you will have to invent something I'm > afraid, good examples are in Documentation/ABI. For generic approach, here is my plan >From userspace echo "fname gname config configvalue" > output_disable At core level, we identify the device associated with the above "fname gname" --> this will be a new api. Core calls respective pincontrol driver with output_disable_cb(dev, fname, gname, config configvalue)--> there will be a new cb in pinctrl. The pincontrol driver has a list of devices with device_output_disable callbacks which will be registered by different drivers (eg:poeg_driver, poe3-driver) The poeg_driver gets callback and it will match against "fname gname" and configures the value. If anything fails, it will report error and propagates to user space. I will prototype based on the above. Please let me know if you have different opinion. Cheers, Biju