diff options
author | Tom Rini | 2016-09-22 15:36:45 -0400 |
---|---|---|
committer | Tom Rini | 2016-09-22 15:39:11 -0400 |
commit | 82f5279b0cd99a9163d34cfe926d0316d9dc0d37 (patch) | |
tree | 58f8f0e7c267c50cc715dc7f246ef17859715959 | |
parent | 231af7f95a4e96debeb380bd904ebee60f0bd7bf (diff) |
ns16650: Make sure we have CONFIG_CLK set before using infrastructure
We cannot call on the CONFIG_CLK based clk_get_rate function unless
CONFIG_CLK is set.
Signed-off-by: Tom Rini <trini@konsulko.com>
-rw-r--r-- | drivers/serial/ns16550.c | 7 | ||||
-rw-r--r-- | include/clk.h | 25 |
2 files changed, 17 insertions, 15 deletions
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index 3f6ea4d2759..765499dab64 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -13,6 +13,7 @@ #include <serial.h> #include <watchdog.h> #include <linux/types.h> +#include <linux/compiler.h> #include <asm/io.h> DECLARE_GLOBAL_DATA_PTR; @@ -353,8 +354,8 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev) { struct ns16550_platdata *plat = dev->platdata; fdt_addr_t addr; - struct clk clk; - int err; + __maybe_unused struct clk clk; + __maybe_unused int err; /* try Processor Local Bus device first */ addr = dev_get_addr(dev); @@ -401,6 +402,7 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev) plat->reg_shift = fdtdec_get_int(gd->fdt_blob, dev->of_offset, "reg-shift", 0); +#ifdef CONFIG_CLK err = clk_get_by_index(dev, 0, &clk); if (!err) { err = clk_get_rate(&clk); @@ -410,6 +412,7 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev) debug("ns16550 failed to get clock\n"); return err; } +#endif if (!plat->clock) plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset, diff --git a/include/clk.h b/include/clk.h index 94c00371470..7273127bb4f 100644 --- a/include/clk.h +++ b/include/clk.h @@ -98,19 +98,6 @@ int clk_get_by_index(struct udevice *dev, int index, struct clk *clk); * @return 0 if OK, or a negative error code. */ int clk_get_by_name(struct udevice *dev, const char *name, struct clk *clk); -#else -static inline int clk_get_by_index(struct udevice *dev, int index, - struct clk *clk) -{ - return -ENOSYS; -} - -static inline int clk_get_by_name(struct udevice *dev, const char *name, - struct clk *clk) -{ - return -ENOSYS; -} -#endif /** * clk_request - Request a clock by provider-specific ID. @@ -175,5 +162,17 @@ int clk_enable(struct clk *clk); int clk_disable(struct clk *clk); int soc_clk_dump(void); +#else +static inline int clk_get_by_index(struct udevice *dev, int index, + struct clk *clk) +{ + return -ENOSYS; +} +static inline int clk_get_by_name(struct udevice *dev, const char *name, + struct clk *clk) +{ + return -ENOSYS; +} +#endif #endif |