summaryrefslogtreecommitdiff
path: root/drivers/serial
diff options
context:
space:
mode:
authoryanhong.wang <yanhong.wang@starfivetech.com>2022-06-09 05:07:00 +0300
committerYanhong Wang <yanhong.wang@linux.starfivetech.com>2022-10-18 11:24:36 +0300
commit98ef3602a1850c79d509fab405a673bf089e114e (patch)
tree9b8030929c8e7f10ebcda9cc51d8a1f0130a47ba /drivers/serial
parent16178e355d396994e63546d552a5c75e4aad71c0 (diff)
downloadu-boot-98ef3602a1850c79d509fab405a673bf089e114e.tar.xz
serial: ns16550: support a list of clk
Add a list of clk enable operation. Signed-off-by: yanhong.wang <yanhong.wang@starfivetech.com>
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/ns16550.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index cc121eee27..a83b474c40 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -540,6 +540,7 @@ int ns16550_serial_of_to_plat(struct udevice *dev)
const u32 port_type = dev_get_driver_data(dev);
fdt_addr_t addr;
struct clk clk;
+ struct clk_bulk clks;
int err;
addr = dev_read_addr(dev);
@@ -571,6 +572,17 @@ int ns16550_serial_of_to_plat(struct udevice *dev)
return -EINVAL;
}
+ err = clk_get_bulk(dev, &clks);
+ if (err)
+ debug("ns16550 clk_get_bulk fail.\n");
+ else {
+ err = clk_enable_bulk(&clks);
+ if (err) {
+ debug("ns16550 clk_enable_bulk fail.\n");
+ return -EINVAL;
+ }
+ }
+
plat->fcr = UART_FCR_DEFVAL;
if (port_type == PORT_JZ4780)
plat->fcr |= UART_FCR_UME;