use super::*;
register_bitfields! [
u32,
pub UARTDR [
DATA OFFSET(0) NUMBITS(8) [],
FE OFFSET(8) NUMBITS(1) [],
PE OFFSET(9) NUMBITS(1) [],
BE OFFSET(10) NUMBITS(1) [],
OE OFFSET(11) NUMBITS(1) []
],
pub UARTRSR_ECR [
FE OFFSET(0) NUMBITS(1) [],
PE OFFSET(1) NUMBITS(1) [],
BE OFFSET(2) NUMBITS(1) [],
OE OFFSET(3) NUMBITS(1) []
],
pub UARTFR [
CTS OFFSET(0) NUMBITS(1) [],
DSR OFFSET(1) NUMBITS(1) [],
DCD OFFSET(2) NUMBITS(1) [],
BUSY OFFSET(3) NUMBITS(1) [],
RXFE OFFSET(4) NUMBITS(1) [],
TXFF OFFSET(5) NUMBITS(1) [],
RXFF OFFSET(6) NUMBITS(1) [],
TXFE OFFSET(7) NUMBITS(1) [],
RI OFFSET(8) NUMBITS(1) []
],
pub UARTIBRD [
BAUD_DIVINT OFFSET(0) NUMBITS(16) []
],
pub UARTFBRD [
BAUD_DIVFRAC OFFSET(0) NUMBITS(6) []
],
pub UARTLCR_H [
BRK OFFSET(0) NUMBITS(1) [],
PEN OFFSET(1) NUMBITS(1) [],
EPS OFFSET(2) NUMBITS(1) [],
STP2 OFFSET(3) NUMBITS(1) [],
FEN OFFSET(4) NUMBITS(1) [],
WLEN OFFSET(5) NUMBITS(2) [
FiveBit = 0,
SixBit = 1,
SevenBit = 2,
EightBit = 3
],
SPS OFFSET(7) NUMBITS(1) []
],
pub UARTCR [
UARTEN OFFSET(0) NUMBITS(1) [],
SIREN OFFSET(1) NUMBITS(1) [],
SIRLP OFFSET(2) NUMBITS(1) [],
LBE OFFSET(7) NUMBITS(1) [],
TXE OFFSET(8) NUMBITS(1) [],
RXE OFFSET(9) NUMBITS(1) [],
DTR OFFSET(10) NUMBITS(1) [],
RTS OFFSET(11) NUMBITS(1) [],
OUT1 OFFSET(12) NUMBITS(1) [],
OUT2 OFFSET(13) NUMBITS(1) [],
RTSEN OFFSET(14) NUMBITS(1) [],
CTSEN OFFSET(15) NUMBITS(1) []
],
pub UARTIFLS [
TXIFLSEL OFFSET(0) NUMBITS(3) [],
RXIFLSEL OFFSET(3) NUMBITS(3) []
],
pub UARTIS [
RIM OFFSET(0) NUMBITS(1) [],
CTSM OFFSET(1) NUMBITS(1) [],
DCDM OFFSET(2) NUMBITS(1) [],
DSRM OFFSET(3) NUMBITS(1) [],
RX OFFSET(4) NUMBITS(1) [],
TX OFFSET(5) NUMBITS(1) [],
RT OFFSET(6) NUMBITS(1) [],
FE OFFSET(7) NUMBITS(1) [],
PE OFFSET(8) NUMBITS(1) [],
BE OFFSET(9) NUMBITS(1) [],
OE OFFSET(10) NUMBITS(1) []
],
pub UARTDMACR [
RXDMAE OFFSET(0) NUMBITS(1) [],
TXDMAE OFFSET(1) NUMBITS(1) [],
DMAONERR OFFSET(2) NUMBITS(1) []
]
];
register_structs! {
pub Pl011Registers {
(0x000 => pub(super) uartdr: ReadWrite<u32, UARTDR::Register>), (0x004 => pub(super) uartrsr_ecr: ReadWrite<u32, UARTRSR_ECR::Register>), (0x008 => _reserved1), (0x018 => pub(super) uartfr: ReadOnly<u32, UARTFR::Register>), (0x01c => _reserved2), (0x020 => pub(super) uartilpr: ReadWrite<u32>), (0x024 => pub(super) uartibrd: ReadWrite<u32, UARTIBRD::Register>), (0x028 => pub(super) uartfbrd: ReadWrite<u32, UARTFBRD::Register>), (0x02c => pub(super) uartlcr_h: ReadWrite<u32, UARTLCR_H::Register>), (0x030 => pub(super) uartcr: ReadWrite<u32, UARTCR::Register>), (0x034 => pub(super) uartifls: ReadWrite<u32, UARTIFLS::Register>), (0x038 => pub(super) uartimsc: ReadWrite<u32, UARTIS::Register>), (0x03c => pub(super) uartris: ReadOnly<u32, UARTIS::Register>), (0x040 => pub(super) uartmis: ReadOnly<u32, UARTIS::Register>), (0x044 => pub(super) uarticr: WriteOnly<u32, UARTIS::Register>), (0x048 => pub(super) uartdmacr: ReadWrite<u32, UARTDMACR::Register>), (0x04c => _reserved3), (0x1000 => @END),
}
}
unsafe impl Sync for Pl011Registers {}
#[derive(Clone, Copy, PartialEq, Eq)]
pub(super) struct Reg(pub(super) NonNull<Pl011Registers>);
unsafe impl Send for Reg {}
unsafe impl Sync for Reg {}