ref: 509b19405d581ba5dcfa4fad4f24605cc609c06f
parent: c463beb98994bad3fb885ddb2e5f7d2cf9bbdd1d
author: stanley lieber <stanley.lieber@gmail.com>
date: Wed Apr 27 10:57:11 EDT 2011
add Uart2 for serial tablets
--- a/sys/src/9/pc/uarti8250.c
+++ b/sys/src/9/pc/uarti8250.c
@@ -14,6 +14,8 @@
Uart0IRQ = 4,
Uart1 = 0x2F8, /* COM2 */
Uart1IRQ = 3,
+ Uart2 = 0x200, /* COM3 */
+ Uart2IRQ = 5,
UartFREQ = 1843200,
};
@@ -121,7 +123,7 @@
extern PhysUart i8250physuart;
-static Ctlr i8250ctlr[2] = {+static Ctlr i8250ctlr[3] = { { .io = Uart0,.irq = Uart0IRQ,
.tbdf = BUSUNKNOWN, },
@@ -129,9 +131,13 @@
{ .io = Uart1,.irq = Uart1IRQ,
.tbdf = BUSUNKNOWN, },
+
+{ .io = Uart2,+ .irq = Uart2IRQ,
+ .tbdf = BUSUNKNOWN, },
};
-static Uart i8250uart[2] = {+static Uart i8250uart[3] = { { .regs = &i8250ctlr[0],.name = "COM1",
.freq = UartFREQ,
@@ -144,6 +150,13 @@
.freq = UartFREQ,
.phys = &i8250physuart,
.special= 0,
+ .next = &i8250uart[2], },
+
+{ .regs = &i8250ctlr[2],+ .name = "COM3",
+ .freq = UartFREQ,
+ .phys = &i8250physuart,
+ .special= 0,
.next = nil, },
};
@@ -701,7 +714,10 @@
break;
case 1:
uart = &i8250uart[1];
- break;
+ break;
+ case 2:
+ uart = &i8250uart[2];
+ break;
}
(*uart->phys->enable)(uart, 0);
--
⑨