diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/serial/ns16550.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index 3130a1d..9b423a5 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -363,6 +363,7 @@ int ns16550_serial_probe(struct udevice *dev) #if CONFIG_IS_ENABLED(OF_CONTROL) enum { PORT_NS16550 = 0, + PORT_JZ4780, }; #endif @@ -370,6 +371,7 @@ enum { int ns16550_serial_ofdata_to_platdata(struct udevice *dev) { struct ns16550_platdata *plat = dev->platdata; + const u32 port_type = dev_get_driver_data(dev); fdt_addr_t addr; struct clk clk; int err; @@ -439,6 +441,8 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev) } plat->fcr = UART_FCRVAL; + if (port_type == PORT_JZ4780) + plat->fcr |= UART_FCR_UME; return 0; } @@ -461,6 +465,7 @@ const struct dm_serial_ops ns16550_serial_ops = { static const struct udevice_id ns16550_serial_ids[] = { { .compatible = "ns16550", .data = PORT_NS16550 }, { .compatible = "ns16550a", .data = PORT_NS16550 }, + { .compatible = "ingenic,jz4780-uart", .data = PORT_JZ4780 }, { .compatible = "nvidia,tegra20-uart", .data = PORT_NS16550 }, { .compatible = "snps,dw-apb-uart", .data = PORT_NS16550 }, { .compatible = "ti,omap2-uart", .data = PORT_NS16550 }, |