summaryrefslogtreecommitdiff
path: root/sys/dev/uart/uart_bus_puc.c
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2003-09-26 05:14:56 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2003-09-26 05:14:56 +0000
commit875f70dba4ac5331af98ce31da9e3f02bdf2af21 (patch)
treed9aaac35b0191aeab19f23c33c5d34bb16d77724 /sys/dev/uart/uart_bus_puc.c
parent153bbe3e6abc91627b1dcd8e255903e9c4079cdc (diff)
Notes
Diffstat (limited to 'sys/dev/uart/uart_bus_puc.c')
-rw-r--r--sys/dev/uart/uart_bus_puc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/uart/uart_bus_puc.c b/sys/dev/uart/uart_bus_puc.c
index 94b042ef4d39..7277df99fc41 100644
--- a/sys/dev/uart/uart_bus_puc.c
+++ b/sys/dev/uart/uart_bus_puc.c
@@ -63,7 +63,7 @@ uart_puc_probe(device_t dev)
{
device_t parent;
struct uart_softc *sc;
- uintptr_t rclk, regshft, type;
+ uintptr_t port, rclk, regshft, type;
parent = device_get_parent(dev);
sc = device_get_softc(dev);
@@ -73,12 +73,17 @@ uart_puc_probe(device_t dev)
switch (type) {
case PUC_PORT_UART_NS8250:
sc->sc_class = &uart_ns8250_class;
+ port = 0;
break;
case PUC_PORT_UART_SAB82532:
sc->sc_class = &uart_sab82532_class;
+ if (BUS_READ_IVAR(parent, dev, PUC_IVAR_PORT, &port))
+ port = 0;
break;
case PUC_PORT_UART_Z8530:
sc->sc_class = &uart_z8530_class;
+ if (BUS_READ_IVAR(parent, dev, PUC_IVAR_PORT, &port))
+ port = 0;
break;
default:
return (ENXIO);
@@ -88,7 +93,7 @@ uart_puc_probe(device_t dev)
rclk = 0;
if (BUS_READ_IVAR(parent, dev, PUC_IVAR_REGSHFT, &regshft))
regshft = 0;
- return (uart_bus_probe(dev, regshft, rclk, 0));
+ return (uart_bus_probe(dev, regshft, rclk, 0, port));
}
DRIVER_MODULE(uart, puc, uart_puc_driver, uart_devclass, 0, 0);