Thread (23 messages) 23 messages, 3 authors, 2020-06-20

RE: [PATCH V2 2/9] ARM: imx: Select MXC_CLK for ARCH_MXC

From: Anson Huang <hidden>
Date: 2020-06-18 03:18:38
Also in: linux-clk, lkml
Subsystem: arm port, common clk framework, nxp i.mx clock drivers, the rest · Maintainers: Russell King, Michael Turquette, Stephen Boyd, Abel Vesa, Linus Torvalds

quoted hunk ↗ jump to hunk
-----Original Message-----
From: Aisheng Dong <aisheng.dong@nxp.com>
Sent: 2020年6月18日 11:09
To: Anson Huang <redacted>; linux@armlinux.org.uk;
shawnguo@kernel.org; s.hauer@pengutronix.de; kernel@pengutronix.de;
festevam@gmail.com; mturquette@baylibre.com; sboyd@kernel.org;
oleksandr.suvorov@toradex.com; Stefan Agner [off-list ref];
arnd@arndb.de; Abel Vesa [off-list ref]; Peng Fan
[off-list ref]; tglx@linutronix.de; allison@lohutok.net;
gregkh@linuxfoundation.org; info@metux.net; Leonard Crestez
[off-list ref]; Andy Duan [off-list ref]; Daniel
Baluta [off-list ref]; yuehaibing@huawei.com;
sfr@canb.auug.org.au; linux-arm-kernel@lists.infradead.org;
linux-kernel@vger.kernel.org; linux-clk@vger.kernel.org
Cc: dl-linux-imx <redacted>
Subject: RE: [PATCH V2 2/9] ARM: imx: Select MXC_CLK for ARCH_MXC
quoted
From: Anson Huang <redacted>
Sent: Wednesday, June 17, 2020 8:36 PM
quoted
Subject: RE: [PATCH V2 2/9] ARM: imx: Select MXC_CLK for ARCH_MXC
quoted
From: Anson Huang <redacted>
Sent: Tuesday, June 9, 2020 3:32 PM

i.MX common clock drivers may support module build, so it is NOT
selected by default, for ARCH_MXC ARMv7 platforms, need to select
it manually to make build pass.

Signed-off-by: Anson Huang <redacted>
Can't the original def_xxx work?

config MXC_CLK
        tristate
        def_tristate ARCH_MXC
Such change will make MXC_CLK=y even all i.MX8 SoCs clock drivers are
selected as module, so it does NOT meet the requirement of module
support. Below is from .config when all
i.MX8 SoCs clock drivers are configured to module.

 CONFIG_MXC_CLK=y
 CONFIG_MXC_CLK_SCU=m
 CONFIG_CLK_IMX8MM=m
 CONFIG_CLK_IMX8MN=m
 CONFIG_CLK_IMX8MP=m
 CONFIG_CLK_IMX8MQ=m
 CONFIG_CLK_IMX8QXP=m
It works at my side.
Below is my changes based on your patchset:
$ git diff
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index
47b10d20f411..e7d7b90e2cf8 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -4,7 +4,6 @@ menuconfig ARCH_MXC
        depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 ||
ARM_SINGLE_ARMV7M
        select ARCH_SUPPORTS_BIG_ENDIAN
        select CLKSRC_IMX_GPT
-       select MXC_CLK
        select GENERIC_IRQ_CHIP
        select GPIOLIB
        select PINCTRL
diff --git a/drivers/clk/imx/Kconfig b/drivers/clk/imx/Kconfig index
26cedbfe386c..f7b3e3a2cb9f 100644
--- a/drivers/clk/imx/Kconfig
+++ b/drivers/clk/imx/Kconfig
@@ -3,6 +3,7 @@
 config MXC_CLK
        tristate "IMX clock"
        depends on ARCH_MXC
+       def_tristate ARCH_MXC

 config MXC_CLK_SCU
        tristate "IMX SCU clock"
I guess you tried imx_v6_v7_defconfig? It does NOT work for ARM64 defconfig when we try to make
CONFIG_MXC_CLK=m, Below are my change, you can see in .config, even all i.MX8 SoCs clock drivers
are configured to module, the CONFIG_MXC_CLK is still =y, but the expected result is =m.

BTW, all i.MX8 SoCs select MXC_CLK in their kconfig, this patch just does the same thing for i.MX6/7
in common place.
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 47b10d2..e7d7b90 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -4,7 +4,6 @@ menuconfig ARCH_MXC
        depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M
        select ARCH_SUPPORTS_BIG_ENDIAN
        select CLKSRC_IMX_GPT
-       select MXC_CLK
        select GENERIC_IRQ_CHIP
        select GPIOLIB
        select PINCTRL
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 8222e4b..21e2dbb 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -799,11 +799,11 @@ CONFIG_COMMON_CLK_S2MPS11=y
 CONFIG_COMMON_CLK_PWM=y
 CONFIG_COMMON_CLK_VC5=y
 CONFIG_CLK_RASPBERRYPI=m
-CONFIG_CLK_IMX8MM=y
-CONFIG_CLK_IMX8MN=y
-CONFIG_CLK_IMX8MP=y
-CONFIG_CLK_IMX8MQ=y
-CONFIG_CLK_IMX8QXP=y
+CONFIG_CLK_IMX8MM=m
+CONFIG_CLK_IMX8MN=m
+CONFIG_CLK_IMX8MP=m
+CONFIG_CLK_IMX8MQ=m
+CONFIG_CLK_IMX8QXP=m
 CONFIG_TI_SCI_CLK=y
 CONFIG_COMMON_CLK_QCOM=y
 CONFIG_QCOM_A53PLL=y
diff --git a/drivers/clk/imx/Kconfig b/drivers/clk/imx/Kconfig
index 26cedbf..f7b3e3a 100644
--- a/drivers/clk/imx/Kconfig
+++ b/drivers/clk/imx/Kconfig
@@ -3,6 +3,7 @@
 config MXC_CLK
        tristate "IMX clock"
        depends on ARCH_MXC
+       def_tristate ARCH_MXC

 config MXC_CLK_SCU
        tristate "IMX SCU clock"
.config:
 CONFIG_MXC_CLK=y
 CONFIG_MXC_CLK_SCU=m
 CONFIG_CLK_IMX8MM=m
 CONFIG_CLK_IMX8MN=m
 CONFIG_CLK_IMX8MP=m
 CONFIG_CLK_IMX8MQ=m
 CONFIG_CLK_IMX8QXP=m

Anson
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help