Message ID | 20200419170810.5738-6-robh@kernel.org (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | Modularizing Versatile Express | expand |
On Sun, Apr 19, 2020 at 7:08 PM Rob Herring <robh@kernel.org> wrote: > CONFIG_COMMON_CLK_VERSATILE doesn't really do anything other than hiding > Arm Ltd reference platform clock drivers. It is both selected by the > platforms that need it and has a 'depends on' for those platforms. It > selects REGMAP_MMIO, but really CONFIG_ICST should do that. Also, > CONFIG_ICST can't be enabled for COMPILE_TEST unless something else > selected it. > > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will@kernel.org> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Sudeep Holla <sudeep.holla@arm.com> > Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > Cc: Linus Walleij <linus.walleij@linaro.org> > Cc: Stephen Boyd <sboyd@kernel.org> > Cc: linux-arm-kernel@lists.infradead.org > Signed-off-by: Rob Herring <robh@kernel.org> Good catch! Since this conflicts a bit with other Kconfig patches I have pending for mach:s in arch/arm it'd be great if I can get an ACK from the clk maintainers and merge it with the rest in a pull request to the SoC tree. Yours, Linus Walleij
Quoting Rob Herring (2020-04-19 10:07:58) > diff --git a/drivers/clk/versatile/Kconfig b/drivers/clk/versatile/Kconfig > index c2618f1477a2..3465fb291998 100644 > --- a/drivers/clk/versatile/Kconfig > +++ b/drivers/clk/versatile/Kconfig > @@ -1,22 +1,14 @@ > # SPDX-License-Identifier: GPL-2.0-only > config ICST > - bool > - > -config COMMON_CLK_VERSATILE > - bool "Clock driver for ARM Reference designs" > - depends on ARCH_INTEGRATOR || ARCH_REALVIEW || \ > - ARCH_VERSATILE || ARCH_VEXPRESS || ARM64 || \ > - COMPILE_TEST > + bool "Clock driver for ARM Reference designs ICST" if COMPILE_TEST > select REGMAP_MMIO > ---help--- > Supports clocking on ARM Reference designs: > - Integrator/AP and Integrator/CP > - RealView PB1176, EB, PB11MP and PBX > - - Versatile Express > > config CLK_SP810 > bool "Clock driver for ARM SP810 System Controller" > - depends on COMMON_CLK_VERSATILE Shouldn't this get the depends from COMMON_CLK_VERSATILE so that this option isn't exposed unless someone is compile testing or using that platform? > default y if ARCH_VEXPRESS > ---help--- > Supports clock muxing (REFCLK/TIMCLK to TIMERCLKEN0-3) capabilities > @@ -24,8 +16,7 @@ config CLK_SP810 > > config CLK_VEXPRESS_OSC > bool "Clock driver for Versatile Express OSC clock generators" > - depends on COMMON_CLK_VERSATILE > - depends on VEXPRESS_CONFIG > + depends on VEXPRESS_CONFIG || COMPILE_TEST > default y if ARCH_VEXPRESS > ---help--- > Simple regmap-based driver driving clock generators on Versatile
On Sun, Apr 19, 2020 at 12:07:58PM -0500, Rob Herring wrote: > CONFIG_COMMON_CLK_VERSATILE doesn't really do anything other than hiding > Arm Ltd reference platform clock drivers. It is both selected by the > platforms that need it and has a 'depends on' for those platforms. It > selects REGMAP_MMIO, but really CONFIG_ICST should do that. Also, > CONFIG_ICST can't be enabled for COMPILE_TEST unless something else > selected it. > > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will@kernel.org> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Sudeep Holla <sudeep.holla@arm.com> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
On Wed, Apr 22, 2020 at 4:47 AM Stephen Boyd <sboyd@kernel.org> wrote: > > Quoting Rob Herring (2020-04-19 10:07:58) > > diff --git a/drivers/clk/versatile/Kconfig b/drivers/clk/versatile/Kconfig > > index c2618f1477a2..3465fb291998 100644 > > --- a/drivers/clk/versatile/Kconfig > > +++ b/drivers/clk/versatile/Kconfig > > @@ -1,22 +1,14 @@ > > # SPDX-License-Identifier: GPL-2.0-only > > config ICST > > - bool > > - > > -config COMMON_CLK_VERSATILE > > - bool "Clock driver for ARM Reference designs" > > - depends on ARCH_INTEGRATOR || ARCH_REALVIEW || \ > > - ARCH_VERSATILE || ARCH_VEXPRESS || ARM64 || \ > > - COMPILE_TEST > > + bool "Clock driver for ARM Reference designs ICST" if COMPILE_TEST > > select REGMAP_MMIO > > ---help--- > > Supports clocking on ARM Reference designs: > > - Integrator/AP and Integrator/CP > > - RealView PB1176, EB, PB11MP and PBX > > - - Versatile Express > > > > config CLK_SP810 > > bool "Clock driver for ARM SP810 System Controller" > > - depends on COMMON_CLK_VERSATILE > > Shouldn't this get the depends from COMMON_CLK_VERSATILE so that this > option isn't exposed unless someone is compile testing or using that > platform? IMO, once the dependencies get complicated enough, it's better to just expose the option. But I could drop just the select and keep the depends. It's primarily having both that we didn't need. Rob
diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig index 982eabc36163..d59ba15a6b69 100644 --- a/arch/arm/mach-integrator/Kconfig +++ b/arch/arm/mach-integrator/Kconfig @@ -3,7 +3,6 @@ menuconfig ARCH_INTEGRATOR bool "ARM Ltd. Integrator family" depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6 select ARM_AMBA - select COMMON_CLK_VERSATILE select HAVE_TCM select ICST select MFD_SYSCON diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig index e7633c0aaae7..83ec9eeb3e5f 100644 --- a/arch/arm/mach-realview/Kconfig +++ b/arch/arm/mach-realview/Kconfig @@ -6,7 +6,6 @@ menuconfig ARCH_REALVIEW select ARM_GIC select ARM_TIMER_SP804 select CLK_SP810 - select COMMON_CLK_VERSATILE select GPIO_PL061 if GPIOLIB select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index f5c275434d6c..d88e7725bf99 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig @@ -6,7 +6,6 @@ config ARCH_VERSATILE select ARM_TIMER_SP804 select ARM_VIC select CLKSRC_VERSATILE - select COMMON_CLK_VERSATILE select CPU_ARM926T select ICST select MFD_SYSCON diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 18951cd20d9d..2d1fdec4c230 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig @@ -7,7 +7,6 @@ menuconfig ARCH_VEXPRESS select ARM_GIC select ARM_GLOBAL_TIMER select ARM_TIMER_SP804 - select COMMON_CLK_VERSATILE select GPIOLIB select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 5c38dc56b808..25cbb556d863 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -274,7 +274,6 @@ config ARCH_UNIPHIER config ARCH_VEXPRESS bool "ARMv8 software model (Versatile Express)" - select COMMON_CLK_VERSATILE select GPIOLIB select PM select PM_GENERIC_DOMAINS diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile index f4169cc2fd31..fb30c16e1596 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile @@ -114,7 +114,7 @@ obj-$(CONFIG_ARCH_TEGRA) += tegra/ obj-y += ti/ obj-$(CONFIG_CLK_UNIPHIER) += uniphier/ obj-$(CONFIG_ARCH_U8500) += ux500/ -obj-$(CONFIG_COMMON_CLK_VERSATILE) += versatile/ +obj-y += versatile/ ifeq ($(CONFIG_COMMON_CLK), y) obj-$(CONFIG_X86) += x86/ endif diff --git a/drivers/clk/versatile/Kconfig b/drivers/clk/versatile/Kconfig index c2618f1477a2..3465fb291998 100644 --- a/drivers/clk/versatile/Kconfig +++ b/drivers/clk/versatile/Kconfig @@ -1,22 +1,14 @@ # SPDX-License-Identifier: GPL-2.0-only config ICST - bool - -config COMMON_CLK_VERSATILE - bool "Clock driver for ARM Reference designs" - depends on ARCH_INTEGRATOR || ARCH_REALVIEW || \ - ARCH_VERSATILE || ARCH_VEXPRESS || ARM64 || \ - COMPILE_TEST + bool "Clock driver for ARM Reference designs ICST" if COMPILE_TEST select REGMAP_MMIO ---help--- Supports clocking on ARM Reference designs: - Integrator/AP and Integrator/CP - RealView PB1176, EB, PB11MP and PBX - - Versatile Express config CLK_SP810 bool "Clock driver for ARM SP810 System Controller" - depends on COMMON_CLK_VERSATILE default y if ARCH_VEXPRESS ---help--- Supports clock muxing (REFCLK/TIMCLK to TIMERCLKEN0-3) capabilities @@ -24,8 +16,7 @@ config CLK_SP810 config CLK_VEXPRESS_OSC bool "Clock driver for Versatile Express OSC clock generators" - depends on COMMON_CLK_VERSATILE - depends on VEXPRESS_CONFIG + depends on VEXPRESS_CONFIG || COMPILE_TEST default y if ARCH_VEXPRESS ---help--- Simple regmap-based driver driving clock generators on Versatile
CONFIG_COMMON_CLK_VERSATILE doesn't really do anything other than hiding Arm Ltd reference platform clock drivers. It is both selected by the platforms that need it and has a 'depends on' for those platforms. It selects REGMAP_MMIO, but really CONFIG_ICST should do that. Also, CONFIG_ICST can't be enabled for COMPILE_TEST unless something else selected it. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Liviu Dudau <liviu.dudau@arm.com> Cc: Sudeep Holla <sudeep.holla@arm.com> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Stephen Boyd <sboyd@kernel.org> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Rob Herring <robh@kernel.org> --- arch/arm/mach-integrator/Kconfig | 1 - arch/arm/mach-realview/Kconfig | 1 - arch/arm/mach-versatile/Kconfig | 1 - arch/arm/mach-vexpress/Kconfig | 1 - arch/arm64/Kconfig.platforms | 1 - drivers/clk/Makefile | 2 +- drivers/clk/versatile/Kconfig | 13 ++----------- 7 files changed, 3 insertions(+), 17 deletions(-)