diff options
| author | Andrew Turner <andrew@FreeBSD.org> | 2024-01-08 15:22:58 +0000 |
|---|---|---|
| committer | Andrew Turner <andrew@FreeBSD.org> | 2024-02-13 11:48:52 +0000 |
| commit | eae36de826cc6fde3a78b1febad824dad20e004d (patch) | |
| tree | 256fe975efea66598f54aa43fad61b7cd659c64e /sys/dev/uart | |
| parent | 949670f8f46656a30ffbd22c9ae2cc645bda8533 (diff) | |
Diffstat (limited to 'sys/dev/uart')
| -rw-r--r-- | sys/dev/uart/uart_subr.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/uart/uart_subr.c b/sys/dev/uart/uart_subr.c index e7570e173358..03c7fd8caea9 100644 --- a/sys/dev/uart/uart_subr.c +++ b/sys/dev/uart/uart_subr.c @@ -47,6 +47,7 @@ #define UART_TAG_SB 8 #define UART_TAG_XO 9 #define UART_TAG_BD 10 +#define UART_TAG_RW 11 static bus_addr_t uart_parse_addr(const char **p) @@ -148,6 +149,10 @@ uart_parse_tag(const char **p) tag = UART_TAG_RS; goto out; } + if ((*p)[0] == 'r' && (*p)[1] == 'w') { + tag = UART_TAG_RW; + goto out; + } if ((*p)[0] == 's' && (*p)[1] == 'b') { tag = UART_TAG_SB; goto out; @@ -225,6 +230,7 @@ uart_getenv(int devtype, struct uart_devinfo *di, struct uart_class *class) /* Set defaults. */ di->bas.chan = 0; di->bas.regshft = 0; + di->bas.regiowidth = 1; di->bas.rclk = 0; di->baudrate = 0; di->databits = 8; @@ -264,6 +270,9 @@ uart_getenv(int devtype, struct uart_devinfo *di, struct uart_class *class) case UART_TAG_RS: di->bas.regshft = uart_parse_long(&spec); break; + case UART_TAG_RW: + di->bas.regiowidth = uart_parse_long(&spec); + break; case UART_TAG_SB: di->stopbits = uart_parse_long(&spec); break; |
