[PATCH] pinctrl: microchip-sgpio: add missing select REGMAP_MMIO

Benjamin Boortz posted 1 patch 6 days, 5 hours ago
There is a newer version of this series
drivers/pinctrl/Kconfig | 1 +
1 file changed, 1 insertion(+)
[PATCH] pinctrl: microchip-sgpio: add missing select REGMAP_MMIO
Posted by Benjamin Boortz 6 days, 5 hours ago
The driver calls ocelot_regmap_from_resource() via <linux/mfd/ocelot.h>,
which internally uses devm_regmap_init_mmio() and requires REGMAP_MMIO.
The Kconfig entry does not select REGMAP_MMIO, causing a build failure
when no other driver in the config happens to pull in REGMAP_MMIO:

  include/linux/mfd/ocelot.h:19:51: warning: 'struct regmap_config'
    declared inside parameter list will not be visible outside of this
    definition or declaration
  include/linux/mfd/ocelot.h:34:24: error: implicit declaration of
    function 'devm_regmap_init_mmio'
  drivers/pinctrl/pinctrl-microchip-sgpio.c:910:16: error: variable
    'regmap_config' has initializer but incomplete type
  drivers/pinctrl/pinctrl-microchip-sgpio.c:911:18: error: 'struct
    regmap_config' has no member named 'reg_bits'

Found by randconfig testing on arm64; tinyconfig reproducer below.

Fixes: 68c873363a78 ("pinctrl: microchip-sgpio: add ability to be used in a non-mmio configuration")
Cc: stable@vger.kernel.org
Signed-off-by: Benjamin Boortz <bennib@mailbox.org>
---
Reproducer (tinyconfig, arm64, without patch):

  make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- tinyconfig
  scripts/config --enable CONFIG_PINCTRL
  scripts/config --enable CONFIG_GPIOLIB
  scripts/config --enable CONFIG_PINCTRL_MICROCHIP_SGPIO
  make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- olddefconfig
  make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \
      drivers/pinctrl/pinctrl-microchip-sgpio.o
  -> CONFIG_REGMAP_MMIO absent, build fails as shown above.

 drivers/pinctrl/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index c2cdd7b2c49b..23ea76dc6261 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -426,6 +426,7 @@ config PINCTRL_MICROCHIP_SGPIO
 	select GENERIC_PINCONF
 	select GENERIC_PINCTRL_GROUPS
 	select GENERIC_PINMUX_FUNCTIONS
+	select REGMAP_MMIO
 	help
 	  Support for the serial GPIO interface used on Microsemi and
 	  Microchip SoCs. By using a serial interface, the SIO
-- 
2.55.0
Re: [PATCH] pinctrl: microchip-sgpio: add missing select REGMAP_MMIO
Posted by Andy Shevchenko 5 days, 19 hours ago
On Sun, Jul 19, 2026 at 12:38 AM Benjamin Boortz <bennib@mailbox.org> wrote:
>
> The driver calls ocelot_regmap_from_resource() via <linux/mfd/ocelot.h>,
> which internally uses devm_regmap_init_mmio() and requires REGMAP_MMIO.
> The Kconfig entry does not select REGMAP_MMIO, causing a build failure
> when no other driver in the config happens to pull in REGMAP_MMIO:

>   include/linux/mfd/ocelot.h:19:51: warning: 'struct regmap_config'
>     declared inside parameter list will not be visible outside of this
>     definition or declaration
>   include/linux/mfd/ocelot.h:34:24: error: implicit declaration of
>     function 'devm_regmap_init_mmio'
>   drivers/pinctrl/pinctrl-microchip-sgpio.c:910:16: error: variable
>     'regmap_config' has initializer but incomplete type
>   drivers/pinctrl/pinctrl-microchip-sgpio.c:911:18: error: 'struct
>     regmap_config' has no member named 'reg_bits'

Reduce this to one most significant line.

  include/linux/mfd/ocelot.h:34:24: error: implicit declaration of
function 'devm_regmap_init_mmio'

And make it a single line as it is in the real output.

> Found by randconfig testing on arm64; tinyconfig reproducer below.
>
> Fixes: 68c873363a78 ("pinctrl: microchip-sgpio: add ability to be used in a non-mmio configuration")

Wrong. Needs to be
2afbbab45c26 ("pinctrl: microchip-sgpio: update to support regmap")

...

With these being addressed, feel free to add
Reviewed-by: Andy Shevchenko <andy@kernel.org>

-- 
With Best Regards,
Andy Shevchenko