summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2016-09-22 19:36:45 (GMT)
committerTom Rini <trini@konsulko.com>2016-09-22 19:39:11 (GMT)
commit82f5279b0cd99a9163d34cfe926d0316d9dc0d37 (patch)
tree58f8f0e7c267c50cc715dc7f246ef17859715959
parent231af7f95a4e96debeb380bd904ebee60f0bd7bf (diff)
downloadu-boot-82f5279b0cd99a9163d34cfe926d0316d9dc0d37.tar.xz
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.c7
-rw-r--r--include/clk.h25
2 files changed, 17 insertions, 15 deletions
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 3f6ea4d..765499d 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 94c0037..7273127 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