mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 13:43:51 +00:00
clk: Allow the common clk framework to be selectable
Enable build testing and configuration control of the common clk framework so that more code coverage and testing can be done on the common clk framework across various architectures. This also nicely removes the requirement that architectures must select the framework when they don't use it in architecture code. There's one snag with doing this, and that's making sure that randconfig builds don't select this option when some architecture or platform implements 'struct clk' outside of the common clk framework. Introduce a new config option 'HAVE_LEGACY_CLK' to indicate those platforms that haven't migrated to the common clk framework and therefore shouldn't be allowed to select this new config option. Also add a note that we hope one day to remove this config entirely. Based on a patch by Mark Brown <broonie@kernel.org>. Cc: Mark Brown <broonie@kernel.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Mark Salter <msalter@redhat.com> Cc: Aurelien Jacquiot <jacquiot.aurelien@gmail.com> Cc: Jiaxun Yang <jiaxun.yang@flygoat.com> Cc: Guan Xuetao <gxt@pku.edu.cn> Cc: Russell King <linux@armlinux.org.uk> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Rich Felker <dalias@libc.org> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: <linux-mips@vger.kernel.org> Cc: <linux-c6x-dev@linux-c6x.org> Cc: <linux-m68k@lists.linux-m68k.org> Cc: <linux-arm-kernel@lists.infradead.org> Cc: <linux-sh@vger.kernel.org> Link: https://lore.kernel.org/r/1470915049-15249-1-git-send-email-broonie@kernel.org Signed-off-by: Stephen Boyd <sboyd@kernel.org> Link: https://lkml.kernel.org/r/20200409064416.83340-8-sboyd@kernel.org Reviewed-by: Mark Brown <broonie@kernel.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
3fd2fdb311
commit
bbd7ffdbef
@ -363,6 +363,7 @@ config ARCH_EP93XX
|
|||||||
select CPU_ARM920T
|
select CPU_ARM920T
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select GPIOLIB
|
select GPIOLIB
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
help
|
help
|
||||||
This enables support for the Cirrus EP93xx series of CPUs.
|
This enables support for the Cirrus EP93xx series of CPUs.
|
||||||
|
|
||||||
@ -521,6 +522,7 @@ config ARCH_OMAP1
|
|||||||
select GENERIC_IRQ_MULTI_HANDLER
|
select GENERIC_IRQ_MULTI_HANDLER
|
||||||
select GPIOLIB
|
select GPIOLIB
|
||||||
select HAVE_IDE
|
select HAVE_IDE
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
select IRQ_DOMAIN
|
select IRQ_DOMAIN
|
||||||
select NEED_MACH_IO_H if PCCARD
|
select NEED_MACH_IO_H if PCCARD
|
||||||
select NEED_MACH_MEMORY_H
|
select NEED_MACH_MEMORY_H
|
||||||
|
@ -11,6 +11,7 @@ config C6X
|
|||||||
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
||||||
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
||||||
select CLKDEV_LOOKUP
|
select CLKDEV_LOOKUP
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
select GENERIC_ATOMIC64
|
select GENERIC_ATOMIC64
|
||||||
select GENERIC_IRQ_SHOW
|
select GENERIC_IRQ_SHOW
|
||||||
select HAVE_ARCH_TRACEHOOK
|
select HAVE_ARCH_TRACEHOOK
|
||||||
|
@ -28,7 +28,7 @@ config COLDFIRE
|
|||||||
select CPU_HAS_NO_MULDIV64
|
select CPU_HAS_NO_MULDIV64
|
||||||
select GENERIC_CSUM
|
select GENERIC_CSUM
|
||||||
select GPIOLIB
|
select GPIOLIB
|
||||||
select HAVE_CLK
|
select HAVE_LEGACY_CLK
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ config AR7
|
|||||||
select SYS_SUPPORTS_ZBOOT_UART16550
|
select SYS_SUPPORTS_ZBOOT_UART16550
|
||||||
select GPIOLIB
|
select GPIOLIB
|
||||||
select VLYNQ
|
select VLYNQ
|
||||||
select HAVE_CLK
|
select HAVE_LEGACY_CLK
|
||||||
help
|
help
|
||||||
Support for the Texas Instruments AR7 System-on-a-Chip
|
Support for the Texas Instruments AR7 System-on-a-Chip
|
||||||
family: TNETD7100, 7200 and 7300.
|
family: TNETD7100, 7200 and 7300.
|
||||||
@ -296,9 +296,9 @@ config BCM63XX
|
|||||||
select SYS_HAS_EARLY_PRINTK
|
select SYS_HAS_EARLY_PRINTK
|
||||||
select SWAP_IO_SPACE
|
select SWAP_IO_SPACE
|
||||||
select GPIOLIB
|
select GPIOLIB
|
||||||
select HAVE_CLK
|
|
||||||
select MIPS_L1_CACHE_SHIFT_4
|
select MIPS_L1_CACHE_SHIFT_4
|
||||||
select CLKDEV_LOOKUP
|
select CLKDEV_LOOKUP
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
help
|
help
|
||||||
Support for BCM63XX based boards
|
Support for BCM63XX based boards
|
||||||
|
|
||||||
@ -419,6 +419,7 @@ config LANTIQ
|
|||||||
select SWAP_IO_SPACE
|
select SWAP_IO_SPACE
|
||||||
select BOOT_RAW
|
select BOOT_RAW
|
||||||
select CLKDEV_LOOKUP
|
select CLKDEV_LOOKUP
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
select USE_OF
|
select USE_OF
|
||||||
select PINCTRL
|
select PINCTRL
|
||||||
select PINCTRL_LANTIQ
|
select PINCTRL_LANTIQ
|
||||||
|
@ -46,7 +46,7 @@ config LEMOTE_MACH2F
|
|||||||
select CSRC_R4K if ! MIPS_EXTERNAL_TIMER
|
select CSRC_R4K if ! MIPS_EXTERNAL_TIMER
|
||||||
select DMA_NONCOHERENT
|
select DMA_NONCOHERENT
|
||||||
select GENERIC_ISA_DMA_SUPPORT_BROKEN
|
select GENERIC_ISA_DMA_SUPPORT_BROKEN
|
||||||
select HAVE_CLK
|
select HAVE_LEGACY_CLK
|
||||||
select FORCE_PCI
|
select FORCE_PCI
|
||||||
select I8259
|
select I8259
|
||||||
select IRQ_MIPS_CPU
|
select IRQ_MIPS_CPU
|
||||||
|
@ -27,18 +27,22 @@ choice
|
|||||||
config SOC_RT288X
|
config SOC_RT288X
|
||||||
bool "RT288x"
|
bool "RT288x"
|
||||||
select MIPS_L1_CACHE_SHIFT_4
|
select MIPS_L1_CACHE_SHIFT_4
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
select HAVE_PCI
|
select HAVE_PCI
|
||||||
|
|
||||||
config SOC_RT305X
|
config SOC_RT305X
|
||||||
bool "RT305x"
|
bool "RT305x"
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
|
|
||||||
config SOC_RT3883
|
config SOC_RT3883
|
||||||
bool "RT3883"
|
bool "RT3883"
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
select HAVE_PCI
|
select HAVE_PCI
|
||||||
|
|
||||||
config SOC_MT7620
|
config SOC_MT7620
|
||||||
bool "MT7620/8"
|
bool "MT7620/8"
|
||||||
select CPU_MIPSR2_IRQ_VI
|
select CPU_MIPSR2_IRQ_VI
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
select HAVE_PCI
|
select HAVE_PCI
|
||||||
|
|
||||||
config SOC_MT7621
|
config SOC_MT7621
|
||||||
|
@ -7,6 +7,11 @@ config SOLUTION_ENGINE
|
|||||||
config SH_ALPHA_BOARD
|
config SH_ALPHA_BOARD
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config SH_CUSTOM_CLK
|
||||||
|
def_bool y
|
||||||
|
depends on !SH_DEVICE_TREE
|
||||||
|
select HAVE_LEGACY_CLK
|
||||||
|
|
||||||
config SH_DEVICE_TREE
|
config SH_DEVICE_TREE
|
||||||
bool
|
bool
|
||||||
select OF
|
select OF
|
||||||
|
@ -70,7 +70,7 @@ config ARCH_PUV3
|
|||||||
def_bool y
|
def_bool y
|
||||||
select CPU_UCV2
|
select CPU_UCV2
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select HAVE_CLK
|
select HAVE_LEGACY_CLK
|
||||||
select GPIOLIB
|
select GPIOLIB
|
||||||
|
|
||||||
# CONFIGs for ARCH_PUV3
|
# CONFIGs for ARCH_PUV3
|
||||||
|
@ -7,8 +7,18 @@ config CLKDEV_LOOKUP
|
|||||||
config HAVE_CLK_PREPARE
|
config HAVE_CLK_PREPARE
|
||||||
bool
|
bool
|
||||||
|
|
||||||
config COMMON_CLK
|
config HAVE_LEGACY_CLK # TODO: Remove once all legacy users are migrated
|
||||||
bool
|
bool
|
||||||
|
select HAVE_CLK
|
||||||
|
help
|
||||||
|
Select this option when the clock API in <linux/clk.h> is implemented
|
||||||
|
by platform/architecture code. This method is deprecated. Modern
|
||||||
|
code should select COMMON_CLK instead and not define a custom
|
||||||
|
'struct clk'.
|
||||||
|
|
||||||
|
menuconfig COMMON_CLK
|
||||||
|
bool "Common Clock Framework"
|
||||||
|
depends on !HAVE_LEGACY_CLK
|
||||||
select HAVE_CLK_PREPARE
|
select HAVE_CLK_PREPARE
|
||||||
select CLKDEV_LOOKUP
|
select CLKDEV_LOOKUP
|
||||||
select SRCU
|
select SRCU
|
||||||
@ -20,8 +30,7 @@ config COMMON_CLK
|
|||||||
Architectures utilizing the common struct clk should select
|
Architectures utilizing the common struct clk should select
|
||||||
this option.
|
this option.
|
||||||
|
|
||||||
menu "Common Clock Framework"
|
if COMMON_CLK
|
||||||
depends on COMMON_CLK
|
|
||||||
|
|
||||||
config COMMON_CLK_WM831X
|
config COMMON_CLK_WM831X
|
||||||
tristate "Clock driver for WM831x/2x PMICs"
|
tristate "Clock driver for WM831x/2x PMICs"
|
||||||
@ -362,4 +371,4 @@ source "drivers/clk/ti/Kconfig"
|
|||||||
source "drivers/clk/uniphier/Kconfig"
|
source "drivers/clk/uniphier/Kconfig"
|
||||||
source "drivers/clk/zynqmp/Kconfig"
|
source "drivers/clk/zynqmp/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user