diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-07-23 07:14:52 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-07-23 08:28:02 +0200 |
commit | cdd1de46ff81bdcfc323953156c1b4573a36cb1f (patch) | |
tree | faa3e298e43c735d4d99d93b1cddc2dd4f539998 | |
parent | ed8e6f17a54a997d3dc1045580e0dc655dd134b4 (diff) | |
download | barebox-cdd1de46ff81bdcfc323953156c1b4573a36cb1f.tar.gz barebox-cdd1de46ff81bdcfc323953156c1b4573a36cb1f.tar.xz |
clk: provide static inline wrappers
So that drivers can use clk_* functions without having to ifdef
them away.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/Kconfig | 3 | ||||
-rw-r--r-- | drivers/clk/Kconfig | 3 | ||||
-rw-r--r-- | include/linux/clk.h | 39 |
3 files changed, 44 insertions, 1 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e7d8cdd315..3a7483783c 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 a00e5395a2..daf778a441 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 0a565efb08..6aed1dee77 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); |