diff options
author | ray <ray@FreeBSD.org> | 2013-06-29 23:48:08 +0000 |
---|---|---|
committer | ray <ray@FreeBSD.org> | 2013-06-29 23:48:08 +0000 |
commit | 4050245570c8670761c4817e97620d1ba5181f36 (patch) | |
tree | 856dd2503714c260a19647922d4a50eb04ab3e6c /sys/dev/uart | |
parent | 657d0f0fb6d5e3d99ebeca0adf6acbf4ac780ebf (diff) | |
download | FreeBSD-src-4050245570c8670761c4817e97620d1ba5181f36.zip FreeBSD-src-4050245570c8670761c4817e97620d1ba5181f36.tar.gz |
Teach UART to attach Exynos/s3/s5 class driver.
Submitted by: Ruslan Bukin <br@bsdpad.com>
Reviewed by: gonzo
Diffstat (limited to 'sys/dev/uart')
-rw-r--r-- | sys/dev/uart/uart.h | 1 | ||||
-rw-r--r-- | sys/dev/uart/uart_bus_fdt.c | 2 | ||||
-rw-r--r-- | sys/dev/uart/uart_cpu_fdt.c | 2 | ||||
-rw-r--r-- | sys/dev/uart/uart_subr.c | 1 |
4 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/uart/uart.h b/sys/dev/uart/uart.h index 772793f..fb0f699 100644 --- a/sys/dev/uart/uart.h +++ b/sys/dev/uart/uart.h @@ -67,6 +67,7 @@ struct uart_class; extern struct uart_class uart_imx_class __attribute__((weak)); extern struct uart_class uart_ns8250_class __attribute__((weak)); extern struct uart_class uart_quicc_class __attribute__((weak)); +extern struct uart_class uart_s3c2410_class __attribute__((weak)); extern struct uart_class uart_sab82532_class __attribute__((weak)); extern struct uart_class uart_sbbc_class __attribute__((weak)); extern struct uart_class uart_z8530_class __attribute__((weak)); diff --git a/sys/dev/uart/uart_bus_fdt.c b/sys/dev/uart/uart_bus_fdt.c index d7b6017..4f6ac9b 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, "exynos")) + sc->sc_class = &uart_s3c2410_class; else if (ofw_bus_is_compatible(dev, "cadence,uart")) sc->sc_class = &uart_cdnc_class; else diff --git a/sys/dev/uart/uart_cpu_fdt.c b/sys/dev/uart/uart_cpu_fdt.c index 52d5f00..0052388 100644 --- a/sys/dev/uart/uart_cpu_fdt.c +++ b/sys/dev/uart/uart_cpu_fdt.c @@ -149,6 +149,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, "exynos")) + class = &uart_s3c2410_class; if (fdt_is_compatible(node, "cadence,uart")) class = &uart_cdnc_class; diff --git a/sys/dev/uart/uart_subr.c b/sys/dev/uart/uart_subr.c index acbf3b4..0277b21 100644 --- a/sys/dev/uart/uart_subr.c +++ b/sys/dev/uart/uart_subr.c @@ -54,6 +54,7 @@ static struct uart_class *uart_classes[] = { &uart_z8530_class, #if defined(__arm__) &uart_lpc_class, + &uart_s3c2410_class, #endif }; static size_t uart_nclasses = sizeof(uart_classes) / sizeof(uart_classes[0]); |