[PATCH] core: Rework REGMAP symbols implementation

Tom Rini trini at konsulko.com
Tue Mar 17 14:42:13 CET 2026


On Tue, Mar 17, 2026 at 11:51:23AM +0530, Anshul Dalal wrote:
> On Tue Mar 17, 2026 at 6:54 AM IST, Tom Rini wrote:
> > As exposed by "make randconfig", we have an issue with the dependencies
> > for REGMAP (and xPL variants). As this is a library function, it should
> > always be selected and not depended on by other functionality. This is
> > largely done correctly today, so just correct the few outliers.
> >
> > Signed-off-by: Tom Rini <trini at konsulko.com>
> > ---
> >  arch/arm/mach-airoha/Kconfig       |  1 +
> >  arch/arm/mach-aspeed/Kconfig       |  1 +
> >  arch/powerpc/cpu/mpc83xx/Kconfig   |  1 +
> >  configs/imx8m_data_modul.config    |  1 -
> >  configs/imx95_evk.config           |  1 -
> >  configs/imx_dhsom.config           |  1 -
> >  configs/kontron-osm-s-mx8mp.config |  1 -
> >  configs/kontron-osm-s-mx93.config  |  1 -
> >  configs/renesas_rcar64.config      |  1 -
> >  drivers/clk/microchip/Kconfig      |  1 -
> >  drivers/core/Kconfig               | 19 +++++++++++--------
> >  drivers/misc/Kconfig               |  3 ++-
> >  drivers/mmc/Kconfig                |  3 ++-
> >  13 files changed, 18 insertions(+), 17 deletions(-)
> >
> > diff --git a/arch/arm/mach-airoha/Kconfig b/arch/arm/mach-airoha/Kconfig
> > index b9cd0a413e10..4b0374001d0c 100644
> > --- a/arch/arm/mach-airoha/Kconfig
> > +++ b/arch/arm/mach-airoha/Kconfig
> > @@ -10,6 +10,7 @@ config TARGET_EN7523
> >  	bool "Airoha EN7523 SoC"
> >  	select CPU_V7A
> >  	select ARMV7_SET_CORTEX_SMPEN
> > +	select REGMAP
> >  	help
> >  	  The Airoha EN7523 family (en7523/en7529/en7562) is an ARM-based
> >  	  SoCs with a dual-core CPU. It comes with Wi-Fi 5/6 support and
> > diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig
> > index 9cf60378c118..c88b1e59366e 100644
> > --- a/arch/arm/mach-aspeed/Kconfig
> > +++ b/arch/arm/mach-aspeed/Kconfig
> > @@ -18,6 +18,7 @@ config ASPEED_AST2500
> >  	bool "Support Aspeed AST2500 SoC"
> >  	select CPU_ARM1176
> >  	select DM_RESET
> > +	select REGMAP
> >  	help
> >  	  The Aspeed AST2500 is a ARM-based SoC with arm1176 CPU.
> >  	  It is used as Board Management Controller on many server boards,
> > diff --git a/arch/powerpc/cpu/mpc83xx/Kconfig b/arch/powerpc/cpu/mpc83xx/Kconfig
> > index 8ac83420ee22..0dc72c874237 100644
> > --- a/arch/powerpc/cpu/mpc83xx/Kconfig
> > +++ b/arch/powerpc/cpu/mpc83xx/Kconfig
> > @@ -73,6 +73,7 @@ config TARGET_KMTEPR2
> >  config TARGET_GAZERBEAM
> >  	bool "Support gazerbeam"
> >  	select ARCH_MPC8308
> > +	select REGMAP
> >  	select SYS_FSL_ERRATUM_ESDHC111
> >  	imply ENV_IS_IN_FLASH
> >  	help
> > diff --git a/configs/imx8m_data_modul.config b/configs/imx8m_data_modul.config
> > index 4634a0972f09..18c7bb536fa0 100644
> > --- a/configs/imx8m_data_modul.config
> > +++ b/configs/imx8m_data_modul.config
> > @@ -149,7 +149,6 @@ CONFIG_PINCTRL=y
> >  CONFIG_PINCTRL_IMX8M=y
> >  CONFIG_POWER_DOMAIN=y
> >  CONFIG_PROT_TCP_SACK=y
> > -CONFIG_REGMAP=y
> >  CONFIG_RGMII=y
> >  CONFIG_RTC_M41T62=y
> >  CONFIG_SF_DEFAULT_SPEED=50000000
> > diff --git a/configs/imx95_evk.config b/configs/imx95_evk.config
> > index 3db583cce597..e7832d86fe91 100644
> > --- a/configs/imx95_evk.config
> > +++ b/configs/imx95_evk.config
> > @@ -92,7 +92,6 @@ CONFIG_ETHPRIME="eth0"
> >  CONFIG_NET_RANDOM_ETHADDR=y
> >  CONFIG_SYS_RX_ETH_BUFFER=8
> >  CONFIG_SPL_DM=y
> > -CONFIG_REGMAP=y
> >  CONFIG_SYSCON=y
> >  CONFIG_SPL_OF_TRANSLATE=y
> >  CONFIG_CLK=y
> > diff --git a/configs/imx_dhsom.config b/configs/imx_dhsom.config
> > index 4a3ddc7e90b7..a0d67c8a0688 100644
> > --- a/configs/imx_dhsom.config
> > +++ b/configs/imx_dhsom.config
> > @@ -28,7 +28,6 @@ CONFIG_ENV_SECT_SIZE_AUTO=y
> >  CONFIG_ENV_REDUNDANT=y
> >  CONFIG_ENV_RELOC_GD_ENV_ADDR=y
> >  
> > -CONFIG_REGMAP=y
> >  CONFIG_SYSCON=y
> >  
> >  CONFIG_DM_GPIO=y
> > diff --git a/configs/kontron-osm-s-mx8mp.config b/configs/kontron-osm-s-mx8mp.config
> > index a8881726e079..786fd3e7a6de 100644
> > --- a/configs/kontron-osm-s-mx8mp.config
> > +++ b/configs/kontron-osm-s-mx8mp.config
> > @@ -117,7 +117,6 @@ CONFIG_TFTP_TSIZE=y
> >  CONFIG_NET_RANDOM_ETHADDR=y
> >  CONFIG_SPL_DM=y
> >  CONFIG_SPL_DM_SEQ_ALIAS=y
> > -CONFIG_REGMAP=y
> >  CONFIG_SYSCON=y
> >  CONFIG_BOOTCOUNT_LIMIT=y
> >  CONFIG_BOOTCOUNT_ENV=y
> > diff --git a/configs/kontron-osm-s-mx93.config b/configs/kontron-osm-s-mx93.config
> > index a6d316de3d87..c2d4de4efa8a 100644
> > --- a/configs/kontron-osm-s-mx93.config
> > +++ b/configs/kontron-osm-s-mx93.config
> > @@ -115,7 +115,6 @@ CONFIG_TFTP_TSIZE=y
> >  CONFIG_NET_RANDOM_ETHADDR=y
> >  CONFIG_SPL_DM=y
> >  CONFIG_SPL_DM_SEQ_ALIAS=y
> > -CONFIG_REGMAP=y
> >  CONFIG_SYSCON=y
> >  CONFIG_ADC=y
> >  CONFIG_ADC_IMX93=y
> > diff --git a/configs/renesas_rcar64.config b/configs/renesas_rcar64.config
> > index c2cb88dc157f..da4b262fc6a5 100644
> > --- a/configs/renesas_rcar64.config
> > +++ b/configs/renesas_rcar64.config
> > @@ -6,7 +6,6 @@ CONFIG_CMD_TEMPERATURE=y
> >  CONFIG_DM_THERMAL=y
> >  CONFIG_PHY_ANEG_TIMEOUT=20000
> >  CONFIG_RCAR_GEN3_THERMAL=y
> > -CONFIG_REGMAP=y
> >  CONFIG_REMAKE_ELF=y
> >  CONFIG_RENESAS_RPC_SPI=y
> >  CONFIG_SUPPORT_RAW_INITRD=y
> > diff --git a/drivers/clk/microchip/Kconfig b/drivers/clk/microchip/Kconfig
> > index 62072e100b18..6ac7c9c56547 100644
> > --- a/drivers/clk/microchip/Kconfig
> > +++ b/drivers/clk/microchip/Kconfig
> > @@ -2,6 +2,5 @@ config CLK_MPFS
> >  	bool "Clock support for Microchip PolarFire SoC"
> >  	depends on CLK && CLK_CCF
> >  	depends on SYSCON
> > -	depends on REGMAP
> >  	help
> >  	  This enables support clock driver for Microchip PolarFire SoC platform.
> > diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig
> > index c9253099e6ea..5419bf65b5d6 100644
> > --- a/drivers/core/Kconfig
> > +++ b/drivers/core/Kconfig
> > @@ -195,7 +195,7 @@ config DM_DMA
> >  	  the physical address space.
> >  
> >  config REGMAP
> > -	bool "Support register maps"
> > +	bool
> >  	depends on DM
> >  	select DEVRES
> >  	help
> > @@ -206,7 +206,7 @@ config REGMAP
> >  	  direct memory access.
> >  
> >  config SPL_REGMAP
> > -	bool "Support register maps in SPL"
> > +	bool
> >  	depends on SPL_DM
> >  	help
> >  	  Hardware peripherals tend to have one or more sets of registers
> > @@ -216,7 +216,7 @@ config SPL_REGMAP
> >  	  direct memory access.
> >  
> >  config TPL_REGMAP
> > -	bool "Support register maps in TPL"
> > +	bool
> >  	depends on TPL_DM
> >  	help
> >  	  Hardware peripherals tend to have one or more sets of registers
> > @@ -226,7 +226,7 @@ config TPL_REGMAP
> >  	  direct memory access.
> >  
> >  config VPL_REGMAP
> > -	bool "Support register maps in VPL"
> > +	bool
> >  	depends on VPL_DM
> >  	help
> >  	  Hardware peripherals tend to have one or more sets of registers
> > @@ -237,7 +237,7 @@ config VPL_REGMAP
> >  
> >  config SYSCON
> >  	bool "Support system controllers"
> > -	depends on REGMAP
> > +	select REGMAP
> >  	help
> >  	  Many SoCs have a number of system controllers which are dealt with
> >  	  as a group by a single driver. Some common functionality is provided
> > @@ -246,7 +246,8 @@ config SYSCON
> >  
> >  config SPL_SYSCON
> >  	bool "Support system controllers in SPL"
> > -	depends on SPL_REGMAP
> > +	depends on SPL_DM
> > +	select SPL_REGMAP
> >  	help
> >  	  Many SoCs have a number of system controllers which are dealt with
> >  	  as a group by a single driver. Some common functionality is provided
> > @@ -255,7 +256,8 @@ config SPL_SYSCON
> >  
> >  config TPL_SYSCON
> >  	bool "Support system controllers in TPL"
> > -	depends on TPL_REGMAP
> > +	depends on TPL_DM
> > +	select TPL_REGMAP
> >  	help
> >  	  Many SoCs have a number of system controllers which are dealt with
> >  	  as a group by a single driver. Some common functionality is provided
> > @@ -264,7 +266,8 @@ config TPL_SYSCON
> >  
> >  config VPL_SYSCON
> >  	bool "Support system controllers in VPL"
> > -	depends on VPL_REGMAP
> > +	depends on VPL_DM
> > +	select VPL_REGMAP
> >  	help
> >  	  Many SoCs have a number of system controllers which are dealt with
> >  	  as a group by a single driver. Some common functionality is provided
> > diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
> > index a0aa290480eb..798f1dbf26cf 100644
> > --- a/drivers/misc/Kconfig
> > +++ b/drivers/misc/Kconfig
> > @@ -350,7 +350,8 @@ config MXS_OCOTP
> >  
> >  config NPCM_HOST
> >  	bool "Enable support espi or LPC for Host"
> > -	depends on REGMAP && SYSCON
> > +	depends on SYSCON
> > +	select REGMAP
> >  	help
> >  	  Enable NPCM BMC espi or LPC support for Host reading and writing.
> >  
> > diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
> > index 39caf2eff1b7..22bd3a972bdf 100644
> > --- a/drivers/mmc/Kconfig
> > +++ b/drivers/mmc/Kconfig
> > @@ -627,8 +627,9 @@ config MMC_SDHCI_AM654
> >  	depends on ARCH_K3
> >  	depends on MMC_SDHCI
> >  	depends on OF_CONTROL
> > -	depends on REGMAP
> >  	select MMC_SDHCI_IO_ACCESSORS
> > +	select REGMAP
> > +	select SPL_REGMAP if SPL_MMC
> 
> With this there should be no need to explicitly set REGMAP configs like
> we do in most of K3 defconfigs for using MMC.

Correct.  A later resync will remove a lot of lines. The config
fragments however are always untouched and so are part of this patch for
completness.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20260317/54035119/attachment.sig>


More information about the U-Boot mailing list