Browse Source

serial: ns16550: support a list of clk

Add a list of clk enable operation.

Signed-off-by: yanhong.wang <yanhong.wang@starfivetech.com>
yanhong.wang 1 year ago
parent
commit
98ef3602a1
1 changed files with 12 additions and 0 deletions
  1. 12 0
      drivers/serial/ns16550.c

+ 12 - 0
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;