[PATCH v4 06/14] serial: mediatek: add support for bus clock and enable it
Christian Marangi
ansuelsmth at gmail.com
Mon Jun 24 23:03:32 CEST 2024
Upstream linux also provide the additional optional bus clock.
Add support for it and also enable the baud and bus clock on probe.
Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
drivers/serial/serial_mtk.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/serial/serial_mtk.c b/drivers/serial/serial_mtk.c
index 3f569c68f22..78e8d9dc735 100644
--- a/drivers/serial/serial_mtk.c
+++ b/drivers/serial/serial_mtk.c
@@ -76,6 +76,7 @@ struct mtk_serial_regs {
* driver
* @regs: Register base of the serial port
* @clk: The baud clock device
+ * @clk_bus: The bus clock device
* @fixed_clk_rate: Fallback fixed baud clock rate if baud clock
* device is not specified
* @force_highspeed: Force using high-speed mode
@@ -83,6 +84,7 @@ struct mtk_serial_regs {
struct mtk_serial_priv {
struct mtk_serial_regs __iomem *regs;
struct clk clk;
+ struct clk clk_bus;
u32 fixed_clk_rate;
bool force_highspeed;
};
@@ -220,6 +222,10 @@ static int mtk_serial_probe(struct udevice *dev)
writel(UART_MCRVAL, &priv->regs->mcr);
writel(UART_FCRVAL, &priv->regs->fcr);
+ clk_enable(&priv->clk);
+ if (priv->clk_bus.dev)
+ clk_enable(&priv->clk_bus);
+
return 0;
}
@@ -250,6 +256,8 @@ static int mtk_serial_of_to_plat(struct udevice *dev)
}
}
+ clk_get_by_name(dev, "bus", &priv->clk_bus);
+
priv->force_highspeed = dev_read_bool(dev, "mediatek,force-highspeed");
return 0;
--
2.45.1
More information about the U-Boot
mailing list