drivers/gpio/gpio-aggregator.c | 388 ++++++++++++-- drivers/gpio/gpiolib.c | 29 +- drivers/pinctrl/Kconfig | 19 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-upboard.c | 1070 +++++++++++++++++++++++++++++++++++++ include/linux/gpio/driver.h | 51 +- include/linux/gpio/forwarder.h | 41 ++ include/linux/string_choices.h | 6 + 8 files changed, 1547 insertions(+), 58 deletions(-)
This is the eighth version of this series. I just added a missing header file in gpio-aggregator driver to fix a build warning reported by a kernel test robot [1]. [1] https://lore.kernel.org/oe-kbuild-all/202506092324.XqSwWl1z-lkp@intel.com/ Best Regards, Thomas Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> --- Changes in v8: - gpio: aggregator: add missing export.h header file. - Link to v7: https://lore.kernel.org/r/20250609-aaeon-up-board-pinctrl-support-v7-0-1ab73ec0cb98@bootlin.com Changes in v7: - all: rebase on v6.16-rc1. - pinctrl: take Reviewed-by tag - pinctrl: handle negative error code returned by upboard_pinctrl_pin_get_mode() in upboard_pinctrl_dbg_show(). - Link to v6: https://lore.kernel.org/r/20250520-aaeon-up-board-pinctrl-support-v6-0-dcb3756be3c6@bootlin.com Changes in v6: - all: take Reviewed-by tags. - all: fix some nitpicks. - gpiolib: fix error reported by kernel test robot. - gpio: aggregator: handle correctly err_ptr returned by devm_gpiochip_fwd_alloc(). - gpio: aggregator: rework naming of GPIO fowarder API. - gpio: aggregator: all functions of GPIO fowarder API now take a gpiochip_fwd ptr as parameter. - gpio: aggregator: fix some typos in kernel-doc and comments. - gpio: aggregator: in forwarder.h, remove unused linux/gpio/consumer.h and linux/gpio/driver.h header files. - gpio: aggregator: add missing forward declaration in forwarder.h (struct gpio_desc and struct gpio_chip). - gpio: aggregator: get_direction() operation now returns -ENODEV if there is no GPIO descriptor for the line. - gpio: aggregator: handle correctly ptr returned by devm_gpiochip_fwd_alloc(). - gpio: aggregator: free GPIO desc array after gpiochip_fwd_create(). - pinctrl-upboard: remove useless cast in UPBOARD_UP_PIN_MUX() UPBOARD_UP_PIN_FUNC() macros. - pinctrl-upboard: rework the pinctrl mapping part (new struct upboard_pinctrl_map). - Link to v5: https://lore.kernel.org/r/20250506-aaeon-up-board-pinctrl-support-v5-0-3906529757d2@bootlin.com Changes in v5: - all: improve commit messages, fix some typos and nitpicks. - pinctrl: machine.h: add "Suggested-by: Andy Shevchenko <andy@kernel.org>" and "Reviewed-by: Andy Shevchenko <andy@kernel.org>" 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 <andy@kernel.org>" tag in patch 10/12 - string_choices: add "Suggested-by: Andy Shevchenko <andy@kernel.org>" and "Reviewed-by: Andy Shevchenko <andy@kernel.org>" 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-b3fffc11417d@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-f40776bd06ee@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-36126e30aa62@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 (10): gpiolib: add support to register sparse pin range 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 | 388 ++++++++++++-- drivers/gpio/gpiolib.c | 29 +- drivers/pinctrl/Kconfig | 19 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-upboard.c | 1070 +++++++++++++++++++++++++++++++++++++ include/linux/gpio/driver.h | 51 +- include/linux/gpio/forwarder.h | 41 ++ include/linux/string_choices.h | 6 + 8 files changed, 1547 insertions(+), 58 deletions(-) --- base-commit: d9946fe286439c2aeaa7953b8c316efe5b83d515 change-id: 20240930-aaeon-up-board-pinctrl-support-98fa4a030490 Best regards, -- Thomas Richard <thomas.richard@bootlin.com>
On Wed, Jun 11, 2025 at 11:00 AM Thomas Richard <thomas.richard@bootlin.com> wrote: > > This is the eighth version of this series. I just added a missing header > file in gpio-aggregator driver to fix a build warning reported by a kernel > test robot [1]. > > [1] https://lore.kernel.org/oe-kbuild-all/202506092324.XqSwWl1z-lkp@intel.com/ > > Best Regards, > > Thomas > > Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> > --- Thomas, Can you please rebase on top of v6.17-rc1 and resend? I will pick up patches 1-9 and provide an immutable branch for Linus to take the pinctrl patch. Bart
On Wed, Jun 11, 2025 at 11:00 AM Thomas Richard <thomas.richard@bootlin.com> wrote: > > This is the eighth version of this series. I just added a missing header > file in gpio-aggregator driver to fix a build warning reported by a kernel > test robot [1]. > > [1] https://lore.kernel.org/oe-kbuild-all/202506092324.XqSwWl1z-lkp@intel.com/ > > Best Regards, > > Thomas > > Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> > --- This series looks pretty good now, any objections to picking it up? As usual - I can take the GPIO patches and provide an immutable branch for Linus to pull. Bartosz
On 6/25/25 10:26 AM, Bartosz Golaszewski wrote: > On Wed, Jun 11, 2025 at 11:00 AM Thomas Richard > <thomas.richard@bootlin.com> wrote: >> >> This is the eighth version of this series. I just added a missing header >> file in gpio-aggregator driver to fix a build warning reported by a kernel >> test robot [1]. >> >> [1] https://lore.kernel.org/oe-kbuild-all/202506092324.XqSwWl1z-lkp@intel.com/ >> >> Best Regards, >> >> Thomas >> >> Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> >> --- > > This series looks pretty good now, any objections to picking it up? As > usual - I can take the GPIO patches and provide an immutable branch > for Linus to pull. Hi Bartosz, When do you plan to pick the patches? Will it be ok for next merge window? Best Regards, Thomas
On Tue, Jul 15, 2025 at 3:13 PM Thomas Richard <thomas.richard@bootlin.com> wrote: > > On 6/25/25 10:26 AM, Bartosz Golaszewski wrote: > > On Wed, Jun 11, 2025 at 11:00 AM Thomas Richard > > <thomas.richard@bootlin.com> wrote: > >> > >> This is the eighth version of this series. I just added a missing header > >> file in gpio-aggregator driver to fix a build warning reported by a kernel > >> test robot [1]. > >> > >> [1] https://lore.kernel.org/oe-kbuild-all/202506092324.XqSwWl1z-lkp@intel.com/ > >> > >> Best Regards, > >> > >> Thomas > >> > >> Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> > >> --- > > > > This series looks pretty good now, any objections to picking it up? As > > usual - I can take the GPIO patches and provide an immutable branch > > for Linus to pull. > > Hi Bartosz, > > When do you plan to pick the patches? Will it be ok for next merge window? > Well, nobody responded to my last email. This is a cross-tree series so at least Linus must confirm he's ok. Bart
On Tue, Jul 15, 2025 at 3:17 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > On Tue, Jul 15, 2025 at 3:13 PM Thomas Richard > <thomas.richard@bootlin.com> wrote: > > > > On 6/25/25 10:26 AM, Bartosz Golaszewski wrote: > > > On Wed, Jun 11, 2025 at 11:00 AM Thomas Richard > > > <thomas.richard@bootlin.com> wrote: > > >> > > >> This is the eighth version of this series. I just added a missing header > > >> file in gpio-aggregator driver to fix a build warning reported by a kernel > > >> test robot [1]. > > >> > > >> [1] https://lore.kernel.org/oe-kbuild-all/202506092324.XqSwWl1z-lkp@intel.com/ > > >> > > >> Best Regards, > > >> > > >> Thomas > > >> > > >> Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> > > >> --- > > > > > > This series looks pretty good now, any objections to picking it up? As > > > usual - I can take the GPIO patches and provide an immutable branch > > > for Linus to pull. > > > > Hi Bartosz, > > > > When do you plan to pick the patches? Will it be ok for next merge window? > > > > Well, nobody responded to my last email. This is a cross-tree series > so at least Linus must confirm he's ok. > > Bart Linus, I'm willing to queue at least the GPIO part for v6.17, does the pinctrl part look good to you? Bart
On Wed, Jul 23, 2025 at 10:43 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > On Tue, Jul 15, 2025 at 3:17 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > Well, nobody responded to my last email. This is a cross-tree series > > so at least Linus must confirm he's ok. > > > > Bart > > Linus, I'm willing to queue at least the GPIO part for v6.17, does the > pinctrl part look good to you? Yes go ahead, sorry for late reply! Acked-by: Linus Walleij <linus.walleij@linaro.org> I was mainly waiting for Andy's review on this, so if Andy is OK, I'm OK with it. Yours, Linus Walleij
On Sat, Jul 26, 2025 at 4:17 PM Linus Walleij <linus.walleij@linaro.org> wrote: > > On Wed, Jul 23, 2025 at 10:43 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > On Tue, Jul 15, 2025 at 3:17 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > > > Well, nobody responded to my last email. This is a cross-tree series > > > so at least Linus must confirm he's ok. > > > > > > Bart > > > > Linus, I'm willing to queue at least the GPIO part for v6.17, does the > > pinctrl part look good to you? > > Yes go ahead, sorry for late reply! > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > I was mainly waiting for Andy's review on this, so if Andy > is OK, I'm OK with it. > Ah, I already sent my big PR for this cycle. :( Let's pick it up early after rc1 and I'll prepare for you an immutable branch. Bartosz
© 2016 - 2025 Red Hat, Inc.