diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e7d8cdd31..3a7483783 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -34,6 +34,7 @@ config ARCH_AT91 select CLKDEV_LOOKUP select HAS_DEBUG_LL select HAVE_MACH_ARM_HEAD + select HAVE_CLK config ARCH_BCM2835 bool "Broadcom BCM2835 boards" @@ -99,6 +100,7 @@ config ARCH_NOMADIK bool "STMicroelectronics Nomadik" select CPU_ARM926T select CLOCKSOURCE_NOMADIK + select HAVE_CLK help Support for the Nomadik platform by ST-Ericsson @@ -133,6 +135,7 @@ config ARCH_VERSATILE bool "ARM Versatile boards (ARM926EJ-S)" select CPU_ARM926T select GPIOLIB + select HAVE_CLK config ARCH_VEXPRESS bool "ARM Vexpres boards" diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index a00e5395a..daf778a44 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -1,8 +1,11 @@ +config HAVE_CLK + bool config CLKDEV_LOOKUP bool config COMMON_CLK + select HAVE_CLK bool config COMMON_CLK_OF_PROVIDER diff --git a/include/linux/clk.h b/include/linux/clk.h index 0a565efb0..6aed1dee7 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -19,12 +19,13 @@ struct device_d; * The base API. */ - /* * struct clk - an machine class defined object / cookie. */ struct clk; +#ifdef CONFIG_HAVE_CLK + /** * clk_get - lookup and obtain a reference to a clock producer. * @dev: device for clock "consumer" @@ -157,6 +158,42 @@ struct clk *clk_get_sys(const char *dev_id, const char *con_id); int clk_add_alias(const char *alias, const char *alias_dev_name, char *id, struct device_d *dev); +#else + +static inline struct clk *clk_get(struct device_d *dev, const char *id) +{ + return NULL; +} + +static inline int clk_enable(struct clk *clk) +{ + return 0; +} + +static inline void clk_disable(struct clk *clk) +{ +} + +static inline unsigned long clk_get_rate(struct clk *clk) +{ + return 0; +} + +static inline void clk_put(struct clk *clk) +{ +} + +static inline long clk_round_rate(struct clk *clk, unsigned long rate) +{ + return 0; +} + +static inline int clk_set_rate(struct clk *clk, unsigned long rate) +{ + return 0; +} +#endif + #ifdef CONFIG_COMMON_CLK struct clk_ops { int (*enable)(struct clk *clk);