diff mbox series

[U-Boot] serial: sh: Enable clock if available

Message ID 20170915191127.28435-1-marek.vasut+renesas@gmail.com
State Accepted
Commit 791c174d58f6fbea2b055b5851ab33d8f73b2c93
Delegated to: Nobuhiro Iwamatsu
Headers show
Series [U-Boot] serial: sh: Enable clock if available | expand

Commit Message

Marek Vasut Sept. 15, 2017, 7:11 p.m. UTC
If the clock framework provides the driver with valid clock,
enable them, otherwise the SCIF might not work if the clock
are not enabled prior to the driver probe.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
---
 drivers/serial/serial_sh.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c
index 087785f9a2..d9db702803 100644
--- a/drivers/serial/serial_sh.c
+++ b/drivers/serial/serial_sh.c
@@ -226,11 +226,14 @@  static int sh_serial_ofdata_to_platdata(struct udevice *dev)
 	plat->base = addr;
 
 	ret = clk_get_by_name(dev, "fck", &sh_serial_clk);
-	if (!ret)
-		plat->clk = clk_get_rate(&sh_serial_clk);
-	else
+	if (!ret) {
+		ret = clk_enable(&sh_serial_clk);
+		if (!ret)
+			plat->clk = clk_get_rate(&sh_serial_clk);
+	} else {
 		plat->clk = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
 					   "clock", 1);
+	}
 
 	plat->type = dev_get_driver_data(dev);
 	return 0;