Hi <span name="Mark Brown" class="gD">Mark,<br>Thanks!<br>But </span>the common clock
infrastructure of Loongson1 has been implemented and enabled in previous patches.<br><a href="http://patchwork.linux-mips.org/patch/4268/">http://patchwork.linux-mips.org/patch/4268/</a><br>Please remove this arch from your patch.<br>

<br><div class="gmail_quote">2012/10/22 Mark Brown <span dir="ltr"><<a href="mailto:broonie@opensource.wolfsonmicro.com" target="_blank">broonie@opensource.wolfsonmicro.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

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