aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/uart/uart_core.c
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2015-04-11 17:16:23 +0000
committerAndrew Turner <andrew@FreeBSD.org>2015-04-11 17:16:23 +0000
commit405ada37fbdafaa6691a906f3630ba8d064e5f30 (patch)
tree3242f4dc9f4677a166d03c3acecc2475385f4f3d /sys/dev/uart/uart_core.c
parent2574218578003321766b2bc85b3dc877308c0fe4 (diff)
downloadsrc-405ada37fbdafaa6691a906f3630ba8d064e5f30.tar.gz
src-405ada37fbdafaa6691a906f3630ba8d064e5f30.zip
Add support for the uart classes to set their default register shift value.
This is needed with the pl011 driver. Before this change it would default to a shift of 0, however the hardware places the registers at 4-byte addresses meaning the value should be 2. This patch fixes this for the pl011 when configured using the fdt. The other drivers have a default value of 0 to keep this a no-op. MFC after: 1 week
Notes
Notes: svn path=/head/; revision=281438
Diffstat (limited to 'sys/dev/uart/uart_core.c')
-rw-r--r--sys/dev/uart/uart_core.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/uart/uart_core.c b/sys/dev/uart/uart_core.c
index eea2d8ce80a1..bbb06ff5c1f5 100644
--- a/sys/dev/uart/uart_core.c
+++ b/sys/dev/uart/uart_core.c
@@ -88,6 +88,12 @@ uart_getrange(struct uart_class *uc)
return ((uc != NULL) ? uc->uc_range : 0);
}
+u_int
+uart_getregshift(struct uart_class *uc)
+{
+ return ((uc != NULL) ? uc->uc_rshift : 0);
+}
+
/*
* Schedule a soft interrupt. We do this on the 0 to !0 transition
* of the TTY pending interrupt status.