aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/uart
diff options
context:
space:
mode:
authorWojciech A. Koszek <wkoszek@FreeBSD.org>2013-04-27 23:07:49 +0000
committerWojciech A. Koszek <wkoszek@FreeBSD.org>2013-04-27 23:07:49 +0000
commit735c7fe55ead40fb9b6d75294d2ae840a00cb149 (patch)
tree2adde5a354618dced93d3bed0c392bee59bd7836 /sys/dev/uart
parent1bf9f7c1c5ed00800ed5db4857b042e40ab9a47e (diff)
Notes
Diffstat (limited to 'sys/dev/uart')
-rw-r--r--sys/dev/uart/uart.h1
-rw-r--r--sys/dev/uart/uart_bus_fdt.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/uart/uart.h b/sys/dev/uart/uart.h
index 52297477d007..772793f88284 100644
--- a/sys/dev/uart/uart.h
+++ b/sys/dev/uart/uart.h
@@ -72,6 +72,7 @@ extern struct uart_class uart_sbbc_class __attribute__((weak));
extern struct uart_class uart_z8530_class __attribute__((weak));
extern struct uart_class uart_lpc_class __attribute__((weak));
extern struct uart_class uart_pl011_class __attribute__((weak));
+extern struct uart_class uart_cdnc_class __attribute__((weak));
#ifdef PC98
struct uart_class *uart_pc98_getdev(u_long port);
diff --git a/sys/dev/uart/uart_bus_fdt.c b/sys/dev/uart/uart_bus_fdt.c
index cd4f71ca60b3..f45a1c6aeac7 100644
--- a/sys/dev/uart/uart_bus_fdt.c
+++ b/sys/dev/uart/uart_bus_fdt.c
@@ -109,6 +109,8 @@ uart_fdt_probe(device_t dev)
sc->sc_class = &uart_imx_class;
else if (ofw_bus_is_compatible(dev, "arm,pl011"))
sc->sc_class = &uart_pl011_class;
+ else if (ofw_bus_is_compatible(dev, "cadence,uart"))
+ sc->sc_class = &uart_cdnc_class;
else
return (ENXIO);
@@ -196,6 +198,8 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
class = &uart_ns8250_class;
if (fdt_is_compatible(node, "arm,pl011"))
class = &uart_pl011_class;
+ if (fdt_is_compatible(node, "cadence,uart"))
+ class = &uart_cdnc_class;
di->bas.chan = 0;
di->bas.regshft = (u_int)shift;