[PATCH] clk: Make the generic clock API available by default

Kelvin Cheung keguang.zhang at gmail.com
Mon Oct 22 22:10:09 EDT 2012


Hi Mark,
Thanks!
But the common clock infrastructure of Loongson1 has been implemented and
enabled in previous patches.
http://patchwork.linux-mips.org/patch/4268/
Please remove this arch from your patch.

2012/10/22 Mark Brown <broonie at opensource.wolfsonmicro.com>

> Rather than requiring platforms to select the generic clock API to make
> it available make the API available as a user selectable option unless the
> user either selects HAVE_CUSTOM_CLK (if they have their own implementation)
> or selects COMMON_CLK (if they depend on the generic implementation).
>
> All current architectures that HAVE_CLK but don't use the common clock
> framework have selects of HAVE_CUSTOM_CLK added.
>
> This allows drivers to use the generic API on platforms which have no need
> for the clock API at platform level.
>
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> Acked-by: Hans-Christian Egtvedt <egtvedt at samfundet.no>
> Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> ---
>
> Mike, the patch to provide a defualt clkdev.h went in during the merge
> window so it should now be safe to merge this.
>
>  arch/arm/Kconfig            |   13 +++++++++++++
>  arch/avr32/Kconfig          |    1 +
>  arch/mips/Kconfig           |    4 ++++
>  arch/mips/loongson/Kconfig  |    1 +
>  arch/mips/loongson1/Kconfig |    1 +
>  arch/mips/txx9/Kconfig      |    1 +
>  arch/powerpc/Kconfig        |    1 +
>  arch/unicore32/Kconfig      |    1 +
>  drivers/clk/Kconfig         |   13 ++++++++++---
>  9 files changed, 33 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index fe90e60..2248940 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -314,6 +314,7 @@ config ARCH_VERSATILE
>         select CLKDEV_LOOKUP
>         select GENERIC_CLOCKEVENTS
>         select HAVE_MACH_CLKDEV
> +       select HAVE_CUSTOM_CLK
>         select ICST
>         select PLAT_VERSATILE
>         select PLAT_VERSATILE_CLCD
> @@ -327,6 +328,7 @@ config ARCH_AT91
>         select ARCH_REQUIRE_GPIOLIB
>         select CLKDEV_LOOKUP
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select IRQ_DOMAIN
>         select NEED_MACH_GPIO_H
>         select NEED_MACH_IO_H if PCCARD
> @@ -632,6 +634,7 @@ config ARCH_TEGRA
>         select GENERIC_CLOCKEVENTS
>         select GENERIC_GPIO
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_SMP
>         select MIGHT_HAVE_CACHE_L2X0
>         select SPARSE_IRQ
> @@ -666,6 +669,7 @@ config ARCH_MSM
>         select CLKDEV_LOOKUP
>         select GENERIC_CLOCKEVENTS
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         help
>           Support for Qualcomm MSM/QSD based systems.  This runs on the
>           apps processor of the MSM/QSD and depends on a shared memory
> @@ -678,6 +682,7 @@ config ARCH_SHMOBILE
>         select CLKDEV_LOOKUP
>         select GENERIC_CLOCKEVENTS
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_MACH_CLKDEV
>         select HAVE_SMP
>         select MIGHT_HAVE_CACHE_L2X0
> @@ -728,10 +733,12 @@ config ARCH_SA1100
>  config ARCH_S3C24XX
>         bool "Samsung S3C24XX SoCs"
>         select ARCH_HAS_CPUFREQ
> +       select CLKDEV_LOOKUP
>         select ARCH_USES_GETTIMEOFFSET
>         select CLKDEV_LOOKUP
>         select GENERIC_GPIO
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_S3C2410_I2C if I2C
>         select HAVE_S3C2410_WATCHDOG if WATCHDOG
>         select HAVE_S3C_RTC if RTC_CLASS
> @@ -752,6 +759,7 @@ config ARCH_S3C64XX
>         select CLKDEV_LOOKUP
>         select CPU_V6
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_S3C2410_I2C if I2C
>         select HAVE_S3C2410_WATCHDOG if WATCHDOG
>         select HAVE_TCM
> @@ -775,6 +783,7 @@ config ARCH_S5P64X0
>         select GENERIC_CLOCKEVENTS
>         select GENERIC_GPIO
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_S3C2410_I2C if I2C
>         select HAVE_S3C2410_WATCHDOG if WATCHDOG
>         select HAVE_S3C_RTC if RTC_CLASS
> @@ -790,6 +799,7 @@ config ARCH_S5PC100
>         select CPU_V7
>         select GENERIC_GPIO
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_S3C2410_I2C if I2C
>         select HAVE_S3C2410_WATCHDOG if WATCHDOG
>         select HAVE_S3C_RTC if RTC_CLASS
> @@ -808,6 +818,7 @@ config ARCH_S5PV210
>         select GENERIC_CLOCKEVENTS
>         select GENERIC_GPIO
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_S3C2410_I2C if I2C
>         select HAVE_S3C2410_WATCHDOG if WATCHDOG
>         select HAVE_S3C_RTC if RTC_CLASS
> @@ -826,6 +837,7 @@ config ARCH_EXYNOS
>         select GENERIC_CLOCKEVENTS
>         select GENERIC_GPIO
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_S3C2410_I2C if I2C
>         select HAVE_S3C2410_WATCHDOG if WATCHDOG
>         select HAVE_S3C_RTC if RTC_CLASS
> @@ -928,6 +940,7 @@ config ARCH_OMAP
>         select CLKSRC_MMIO
>         select GENERIC_CLOCKEVENTS
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select NEED_MACH_GPIO_H
>         help
>           Support for TI's OMAP platform (OMAP1/2/3/4).
> diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
> index 06e73bf..bfeb9cc 100644
> --- a/arch/avr32/Kconfig
> +++ b/arch/avr32/Kconfig
> @@ -4,6 +4,7 @@ config AVR32
>         # that we usually don't need on AVR32.
>         select EXPERT
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HAVE_OPROFILE
>         select HAVE_KPROBES
>         select HAVE_GENERIC_HARDIRQS
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index ce6c9a6..e0be02f 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -85,6 +85,7 @@ config AR7
>         select ARCH_REQUIRE_GPIOLIB
>         select VLYNQ
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         help
>           Support for the Texas Instruments AR7 System-on-a-Chip
>           family: TNETD7100, 7200 and 7300.
> @@ -97,6 +98,7 @@ config ATH79
>         select CSRC_R4K
>         select DMA_NONCOHERENT
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select IRQ_CPU
>         select MIPS_MACHINE
>         select SYS_HAS_CPU_MIPS32_R2
> @@ -134,6 +136,7 @@ config BCM63XX
>         select SWAP_IO_SPACE
>         select ARCH_REQUIRE_GPIOLIB
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         help
>          Support for BCM63XX based boards
>
> @@ -229,6 +232,7 @@ config MACH_JZ4740
>         select SYS_HAS_EARLY_PRINTK
>         select HAVE_PWM
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select GENERIC_IRQ_CHIP
>
>  config LANTIQ
> diff --git a/arch/mips/loongson/Kconfig b/arch/mips/loongson/Kconfig
> index 263beb9..ed42be1 100644
> --- a/arch/mips/loongson/Kconfig
> +++ b/arch/mips/loongson/Kconfig
> @@ -42,6 +42,7 @@ config LEMOTE_MACH2F
>         select DMA_NONCOHERENT
>         select GENERIC_ISA_DMA_SUPPORT_BROKEN
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select HW_HAS_PCI
>         select I8259
>         select IRQ_CPU
> diff --git a/arch/mips/loongson1/Kconfig b/arch/mips/loongson1/Kconfig
> index a9a14d6..ddaa7d0 100644
> --- a/arch/mips/loongson1/Kconfig
> +++ b/arch/mips/loongson1/Kconfig
> @@ -16,6 +16,7 @@ config LOONGSON1_LS1B
>         select SYS_SUPPORTS_HIGHMEM
>         select SYS_HAS_EARLY_PRINTK
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>
>  endchoice
>
> diff --git a/arch/mips/txx9/Kconfig b/arch/mips/txx9/Kconfig
> index 6d40bc7..04e3cdb 100644
> --- a/arch/mips/txx9/Kconfig
> +++ b/arch/mips/txx9/Kconfig
> @@ -21,6 +21,7 @@ config MACH_TXX9
>         select SYS_SUPPORTS_LITTLE_ENDIAN
>         select SYS_SUPPORTS_BIG_ENDIAN
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>
>  config TOSHIBA_JMR3927
>         bool "Toshiba JMR-TX3927 board"
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 5af5aa7..da4ea6c 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -1028,6 +1028,7 @@ config PPC_CLOCK
>         bool
>         default n
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>
>  config PPC_LIB_RHEAP
>         bool
> diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig
> index fda37c9..8247d69 100644
> --- a/arch/unicore32/Kconfig
> +++ b/arch/unicore32/Kconfig
> @@ -89,6 +89,7 @@ config ARCH_PUV3
>         select CPU_UCV2
>         select GENERIC_CLOCKEVENTS
>         select HAVE_CLK
> +       select HAVE_CUSTOM_CLK
>         select ARCH_REQUIRE_GPIOLIB
>         select ARCH_HAS_CPUFREQ
>
> diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
> index bace9e9..8dc8391 100644
> --- a/drivers/clk/Kconfig
> +++ b/drivers/clk/Kconfig
> @@ -9,16 +9,23 @@ config HAVE_CLK_PREPARE
>  config HAVE_MACH_CLKDEV
>         bool
>
> -config COMMON_CLK
> +config HAVE_CUSTOM_CLK
>         bool
> +       ---help---
> +         Architectures which provide a custom clk API should select
> +         this to disable the common clock API.
> +
> +config COMMON_CLK
> +       bool "Common clock framework"
> +       depends on !HAVE_CUSTOM_CLK
>         select HAVE_CLK_PREPARE
>         select CLKDEV_LOOKUP
>         ---help---
>           The common clock framework is a single definition of struct
>           clk, useful across many platforms, as well as an
>           implementation of the clock API in include/linux/clk.h.
> -         Architectures utilizing the common struct clk should select
> -         this option.
> +         This provides a generic way for drivers to provide and use
> +         clocks without hard coded relationships in the drivers.
>
>  menu "Common Clock Framework"
>         depends on COMMON_CLK
> --
> 1.7.10.4
>
>
>


-- 
Best Regards!
Kelvin Cheung
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121023/2e25a1ff/attachment-0001.html>


More information about the linux-arm-kernel mailing list