Messages in this thread | | | From | Bartosz Golaszewski <> | Date | Thu, 25 Nov 2021 14:14:20 +0100 | Subject | Re: [PATCH v10 2/5] gpio: sim: new testing module |
| |
On Wed, Nov 24, 2021 at 12:43 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > Implement a new, modern GPIO testing module controlled by configfs > attributes instead of module parameters. The goal of this driver is > to provide a replacement for gpio-mockup that will be easily extensible > with new features and doesn't require reloading the module to change > the setup. > > Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> > --- > Documentation/admin-guide/gpio/gpio-sim.rst | 80 ++ > drivers/gpio/Kconfig | 8 + > drivers/gpio/Makefile | 1 + > drivers/gpio/gpio-sim.c | 1370 +++++++++++++++++++ > 4 files changed, 1459 insertions(+) > create mode 100644 Documentation/admin-guide/gpio/gpio-sim.rst > create mode 100644 drivers/gpio/gpio-sim.c >
Hi guys!
I'd like to get your opinion on some parts of the interface.
Should we allow creating multiple gpiochips per platform device like some drivers do? And if so - should the sysfs groups be created for each gpiochip device kobject and not the parent?
Currently we do this:
# Create the chip (platform device + single gpiochip): mkdir /sys/kernel/config/gpio-sim/my-chip # Configure it echo 8 > /sys/kernel/config/gpio-sim/my-chip/num_lines # Enable it echo 1 > /sys/kernel/config/gpio-sim/my-chip/live
What I mean above would make it look like this:
# Create the platform device mkdir /sys/kernel/config/gpio-sim/my-gpio-device
# what's inside? ls /sys/kernel/config/gpio-sim/my-gpio-device live
# Create GPIO chips mkdir /sys/kernel/config/gpio-sim/my-gpio-device/chip0 mkdir /sys/kernel/config/gpio-sim/my-gpio-device/chip1
# Configure chips echo 8 > /sys/kernel/config/gpio-sim/my-gpio-device/chip0/num_lines echo 4 > /sys/kernel/config/gpio-sim/my-gpio-device/chip1/num_lines echo foobar > /sys/kernel/config/gpio-sim/my-gpio-device/chip1/label
# Enable both chips echo 1 > /sys/kernel/config/gpio-sim/my-gpio-device/live
And in sysfs instead of current:
echo pull-up > /sys/devices/platform/gpio-sim.0/sim_line0/pull
We'd have to do:
echo pull-up > /sys/devices/platform/gpio-sim.0/gpiochip1/sim_line0/pull
While I don't see any usefulness of that at this time, if we don't do it now, then it'll be hard to extend this module later. What are your thoughts?
Bart
| |