[PATCH v2 00/10] Introduce configfs-based interface for gpio-aggregator
From: Koichiro Den
Date: Sun Feb 02 2025 - 22:12:44 EST
This patch series introduces a configfs-based interface to gpio-aggregator
to address limitations in the existing 'new_device' interface.
The existing 'new_device' interface has several limitations:
#1. No way to determine when GPIO aggregator creation is complete.
#2. No way to retrieve errors when creating a GPIO aggregator.
#3. No way to trace a GPIO line of an aggregator back to its
corresponding physical device.
#4. The 'new_device' echo does not indicate which virtual gpiochip<N>
was created.
#5. No way to assign names to GPIO lines exported through an aggregator.
Although Issue#1 to #3 could technically be resolved easily without
configfs, using configfs offers a streamlined, modern, and extensible
approach, especially since gpio-sim and gpio-virtuser already utilize
configfs.
This v2 patch series includes 10 patches:
Patch#1: Preparation for Patch#2.
Patch#2: Introduce minimal configfs interface.
Addresses Issue#1 to Issue#3.
Patch#3: Addresses Issue#4.
Patch#4: Preparation for Patch#5.
Patch#5: Addresses Issue#5.
Patch#6-7: Prepare for Patch#8.
Patch#8: Expose devices create with sysfs to configfs.
Patch#9: Suppress deferred probe for purely configfs-based aggregators.
Patch#10: Documentation.
Changes for v2:
- Addressed feedback from Bartosz:
* Expose devices created with sysfs to configfs.
* Drop 'num_lines' attribute.
* Fix bugs and crashes.
* Organize internal symbol prefixes more cleanly.
- Split diffs for improved reviewability.
- Update kernel doc to reflect the changes.
RFC (v1): https://lore.kernel.org/linux-gpio/20250129155525.663780-1-koichiro.den@xxxxxxxxxxxxx/T/#u
Koichiro Den (10):
gpio: aggregator: reorder functions to prepare for configfs
introduction
gpio: aggregator: introduce basic configfs interface
gpio: aggregator: add read-only 'dev_name' configfs attribute
gpio: aggregator: add read-write 'name' attribute
gpio: aggregator: expose custom line names to forwarder gpio_chip
gpio: aggregator: rename 'name' to 'key' in aggr_parse()
gpio: aggregator: clean up gpio_aggregator_free()
gpio: aggregator: expoose aggregator created via legacy sysfs to
configfs
gpio: aggregator: cancel deferred probe for devices created via
configfs
Documentation: gpio: document configfs interface for gpio-aggregator
.../admin-guide/gpio/gpio-aggregator.rst | 93 ++
drivers/gpio/gpio-aggregator.c | 1194 ++++++++++++++---
2 files changed, 1103 insertions(+), 184 deletions(-)
--
2.45.2