[PATCH 1/1] ARM: imx: Enable REGMAP_MMIO per default

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Tue Jun 13 03:22:42 PDT 2017


Hello,

On Wed, Jun 07, 2017 at 08:43:16AM +0200, Alexander Stein wrote:
> If unset, the gpc drivers fails to link with this error:
> drivers/built-in.o: In function `imx_gpc_probe':
> core.c:(.text+0x1e16c): undefined reference to
>  `__devm_regmap_init_mmio_clk'
> 
> As the gpc driver is built when ARCH_MXC is set, enable REGMAP_MMIO in
> this case too.
> 
> Signed-off-by: Alexander Stein <alexander.stein at systec-electronic.com>
> Fixes: 721cabf6c660 ("soc: imx: move PGC handling to a new GPC driver")
> ---
>  arch/arm/mach-imx/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index 936c59d0e18b..1b8eead0d113 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -7,6 +7,7 @@ menuconfig ARCH_MXC
>  	select GPIOLIB
>  	select PINCTRL
>  	select PM_OPP if PM
> +	select REGMAP_MMIO
>  	select SOC_BUS
>  	select SRAM
>  	help

I wonder if this should be selected nearer to the gpc driver. Something
like:

------->8---------
From: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
Subject: [PATCH] soc: imx: Introduce Kconfig symbol for gpc driver selecting regmap-mmio

This fixes a build failure if REGMAP_MMIO and REGMAP are not enabled:

	  CC      drivers/soc/imx/gpc.o
	drivers/soc/imx/gpc.c:306:21: error: variable 'imx_gpc_regmap_config' has initializer but incomplete type
	 static const struct regmap_config imx_gpc_regmap_config = {
			     ^
	drivers/soc/imx/gpc.c:307:2: error: unknown field 'reg_bits' specified in initializer
	  .reg_bits = 32,
	  ^
	drivers/soc/imx/gpc.c:307:14: warning: excess elements in struct initializer
	  .reg_bits = 32,
		      ^
	drivers/soc/imx/gpc.c:307:14: note: (near initialization for 'imx_gpc_regmap_config')
	drivers/soc/imx/gpc.c:308:2: error: unknown field 'val_bits' specified in initializer
	  .val_bits = 32,
	  ^
	drivers/soc/imx/gpc.c:308:14: warning: excess elements in struct initializer
	  .val_bits = 32,
		      ^
	drivers/soc/imx/gpc.c:308:14: note: (near initialization for 'imx_gpc_regmap_config')
	drivers/soc/imx/gpc.c:309:2: error: unknown field 'reg_stride' specified in initializer
	  .reg_stride = 4,
	  ^
	drivers/soc/imx/gpc.c:309:16: warning: excess elements in struct initializer
	  .reg_stride = 4,
			^
	drivers/soc/imx/gpc.c:309:16: note: (near initialization for 'imx_gpc_regmap_config')
	drivers/soc/imx/gpc.c:310:2: error: unknown field 'max_register' specified in initializer
	  .max_register = 0x2ac,
	  ^
	drivers/soc/imx/gpc.c:310:18: warning: excess elements in struct initializer
	  .max_register = 0x2ac,
			  ^
	drivers/soc/imx/gpc.c:310:18: note: (near initialization for 'imx_gpc_regmap_config')
	drivers/soc/imx/gpc.c: In function 'imx_gpc_probe':
	drivers/soc/imx/gpc.c:390:11: error: implicit declaration of function 'devm_regmap_init_mmio_clk' [-Werror=implicit-function-declaration]
	  regmap = devm_regmap_init_mmio_clk(&pdev->dev, NULL, base,
		   ^
	drivers/soc/imx/gpc.c:390:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
	  regmap = devm_regmap_init_mmio_clk(&pdev->dev, NULL, base,
		 ^
	cc1: some warnings being treated as errors

As an added bonus this symbol is only enabled on imx6 builds as other
mxc SoC don't make use of this driver.

Fixes: 721cabf6c660 ("soc: imx: move PGC handling to a new GPC driver")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
 drivers/soc/imx/Kconfig  | 5 +++++
 drivers/soc/imx/Makefile | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig
index a5b86a28f343..49f95d8c371f 100644
--- a/drivers/soc/imx/Kconfig
+++ b/drivers/soc/imx/Kconfig
@@ -1,5 +1,10 @@
 menu "i.MX SoC drivers"
 
+config IMX6_PM_DOMAINS
+	bool
+	default y if SOC_IMX6
+	select REGMAP_MMIO
+
 config IMX7_PM_DOMAINS
 	bool "i.MX7 PM domains"
 	depends on SOC_IMX7D || (COMPILE_TEST && OF)
diff --git a/drivers/soc/imx/Makefile b/drivers/soc/imx/Makefile
index 5b6e396c1121..ee6857673089 100644
--- a/drivers/soc/imx/Makefile
+++ b/drivers/soc/imx/Makefile
@@ -1,2 +1,2 @@
-obj-y += gpc.o
+obj-$(CONFIG_IMX6_PM_DOMAINS) += gpc.o
 obj-$(CONFIG_IMX7_PM_DOMAINS) += gpcv2.o
-- 
2.11.0

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list