This is the fifth version of this series, addressing the few remaining issues identified by Andy.
Signed-off-by: Thomas Richard <[email protected]> --- Changes in v5: - all: improve commit messages, fix some typos and nitpicks. - pinctrl: machine.h: add "Suggested-by: Andy Shevchenko <[email protected]>" and "Reviewed-by: Andy Shevchenko <[email protected]>" tags. - pinctrl: core: fix kernel doc for devm_pinctrl_register_mappings(). - pinctrl: core: do not cast pointer in devm_pinctrl_unregister_mappings(). - gpio: aggregator: remove a useless check in patch 5/12. - gpio: aggregator: fix condition to identify if the gpiochip forwarder can sleep or not. - gpio: aggregator: add "Reviewed-by: Andy Shevchenko <[email protected]>" tag in patch 10/12 - string_choices: add "Suggested-by: Andy Shevchenko <[email protected]>" and "Reviewed-by: Andy Shevchenko <[email protected]>" tags. - string_choices: add missing parameter for str_output_input() macro. - Link to v4: https://lore.kernel.org/r/20250429-aaeon-up-board-pinctrl-support-v4-0-b3fffc114...@bootlin.com Changes in v4: - gpiolib: use positive conditonal in gpiochip_add_pin_range_with_pins(). - pinctrl: fix warning reported by kernel robot in include/linux/pinctrl/machine.h. - pinctrl: add a patch to remove the extern specifier in machine.h. - pinctrl: use devm_add_action_or_reset() in devm_pinctrl_register_mappings(). - string_choices: add a patch to define str_input_output() and str_output_input() helpers. - gpio: aggregator: set gpiochip_fwd as opaque and define getters gpio_fwd_get_gpiochip() and gpio_fwd_get_data(). - gpio: aggregator: add valid_mask in gpiochip_fwd struct to track already registered gpio descs. - gpio: aggregator: add gpio_fwd_gpio_free() helper. - gpio: aggregator: add kdoc sections for exported functions. - gpio: aggregator: fix some nitpicks. - pinctrl-upboard: use str_input_output() helper. - pinctrl-upboard: fix some nitpicks. - pinctrl-upboard: add missing headers stddef.h and types.h. - pinctrl-upboard: add intermediate cast (unsigned long) for dmi_id->driver_data. - pinctrl-upboard: use getter gpio_fwd_get_gpiochip() and gpio_fwd_get_data(). - pinctrl-upboard: fix kernel robot warning 'unmet direct dependencies detected for GPIO_AGGREGATOR when selected by PINCTRL_UPBOARD'. - pinctrl-upboard: use gpio_fwd_gpio_free() helper. - Link to v3: https://lore.kernel.org/r/20250416-aaeon-up-board-pinctrl-support-v3-0-f40776bd0...@bootlin.com Changes in v3: - pinctrl: add devm_pinctrl_register_mappings() - gpiolib: rename gpiochip_add_pin_range() to gpiochip_add_pin_range_with_pins() and add pins parameter - gpiolib: add stubs gpiochip_add_pin_range() and gpiochip_add_sparse_pin_range() - aggregator: split to more simpler patches - aggregator: add a namespace for the forwarder library - aggregator: rename header file to forwarder.h - aggregator: add some missing headers and declaration in forwarder.h - aggregator: forwarder.h provides consumer.h and driver.h - aggregator: fix error code returned by gpio_fwd_request() - pinctrl-upboard: fix order of header files - pinctrl-upboard: fix some nitpicks - pinctrl-upboard: rework macros to define pin groups - pinctrl-upboard: add missing container_of.h and err.h header files - pinctrl-upboard: handle correctly pointer returned by dmi_first_match() - pinctrl-upboard: use devm_pinctrl_register_mappings() - pinctrl-upboard: import GPIO_FORWARDER namespace - Link to v2: https://lore.kernel.org/r/20250317-aaeon-up-board-pinctrl-support-v2-0-36126e30a...@bootlin.com Changes in v2: - mfd: removed driver (already merged) - led: removed driver (already merged) - gpio-aggregator: refactor code to create a gpio-fwd library - pinctrl: refactor gpio part to use the gpio-fwd library - pinctrl: add pinctrl mappings for each board --- Thomas Richard (12): gpiolib: add support to register sparse pin range pinctrl: remove extern specifier for functions in machine.h pinctrl: core: add devm_pinctrl_register_mappings() gpio: aggregator: move GPIO forwarder allocation in a dedicated function gpio: aggregator: refactor the code to add GPIO desc in the forwarder gpio: aggregator: refactor the forwarder registration part gpio: aggregator: update gpiochip_fwd_setup_delay_line() parameters gpio: aggregator: export symbols of the GPIO forwarder library gpio: aggregator: handle runtime registration of gpio_desc in gpiochip_fwd gpio: aggregator: add possibility to attach data to the forwarder lib/string_choices: Add str_input_output() helper pinctrl: Add pin controller driver for AAEON UP boards drivers/gpio/gpio-aggregator.c | 343 +++++++++--- drivers/gpio/gpiolib.c | 29 +- drivers/pinctrl/Kconfig | 19 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/core.c | 29 + drivers/pinctrl/pinctrl-upboard.c | 1068 +++++++++++++++++++++++++++++++++++++ include/linux/gpio/driver.h | 51 +- include/linux/gpio/forwarder.h | 48 ++ include/linux/pinctrl/machine.h | 18 +- include/linux/string_choices.h | 6 + 10 files changed, 1534 insertions(+), 78 deletions(-) --- base-commit: 8a834b0ac9ceb354a6e0b8cf5b363edca8221bdd change-id: 20240930-aaeon-up-board-pinctrl-support-98fa4a030490 Best regards, -- Thomas Richard <[email protected]>
