aos/devices/apm88xxxx/apm88xxxx_pc16550.dev
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

69 lines
2.1 KiB
Plaintext

/*
* Copyright (c) 2015, ETH Zurich. All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
*/
/*
* apm88xxxx/apm88xxxx_pc16550.dev
*
* DESCRIPTION: APM88xxxx PC16550 UART
*
* This is derived from:
*
* APM88xx0x Processor Family Register Reference -- Volume 1
* Document Issue 0.98 (APM 2012-0052-1)
*
* This file only incorporates the parts relevant for UART operation.
* Registers relevant for IrDA, CIR, and other modes are not yet
* described.
*/
device apm88xxxx_pc16550 msbfirst (addr base) "APM88xxxx UART" {
constants data_len "Data Length" {
bits5 = 0b00 "5 Bits";
bits6 = 0b01 "6 Bits";
bits7 = 0b10 "7 Bits";
bits8 = 0b11 "8 Bits";
};
register RBR ro addr (base, 0x0) "Receive Buffer" {
_ 24;
rbr 8 ro "Receive buffer register";
};
register THR wo also addr (base, 0x0) "Transmit Register" {
_ 24;
thr 8 wo "Transmit register";
};
register IIR ro addr (base, 0x8) "Interrupt Identity" type(uint32);
register lcr rw addr (base, 0xc) "Line control" {
_ 24;
dlab 1 "Divisor latch access bit";
bc 1 "Break control bit";
sp 1 rsvd "Stick parity";
eps 1 "Even parity select";
pen 1 "Parity enable";
stop 1 "stop bit";
dls 2 type(data_len) "Data length select";
};
register LSR ro addr (base, 0x14) "Line Status" {
_ 24;
rfe 1 "Receive FIFO error";
temt 1 "Transmitter empty";
thre 1 "Transmit holding register empty";
bi 1 "Break interrupt";
fe 1 "Framing error";
pe 1 "Parity error";
oe 1 "Overrun error";
dr 1 "Data ready";
};
};