axi_uartlite/
registers.rs1#[bitbybit::bitfield(u32)]
5pub struct RxFifo {
6 #[bits(0..=7, r)]
8 pub data: u8,
9}
10
11#[bitbybit::bitfield(u32)]
13pub struct TxFifo {
14 #[bits(0..=7, w)]
16 pub data: u8,
17}
18
19#[bitbybit::bitfield(u32)]
21pub struct Status {
22 #[bit(7, r)]
24 pub parity_error: bool,
25 #[bit(6, r)]
27 pub frame_error: bool,
28 #[bit(5, r)]
30 pub overrun_error: bool,
31 #[bit(4, r)]
33 pub intr_enabled: bool,
34 #[bit(3, r)]
36 pub tx_fifo_full: bool,
37 #[bit(2, r)]
39 pub tx_fifo_empty: bool,
40 #[bit(1, r)]
42 pub rx_fifo_full: bool,
43 #[bit(0, r)]
45 pub rx_fifo_valid_data: bool,
46}
47
48#[bitbybit::bitfield(u32, default = 0x0)]
50pub struct Control {
51 #[bit(4, w)]
53 enable_interrupt: bool,
54 #[bit(1, w)]
56 reset_rx_fifo: bool,
57 #[bit(0, w)]
59 reset_tx_fifo: bool,
60}
61
62#[derive(derive_mmio::Mmio)]
64#[repr(C)]
65pub struct Registers {
66 #[mmio(PureRead)]
67 rx_fifo: RxFifo,
68 tx_fifo: TxFifo,
69 #[mmio(PureRead)]
70 stat_reg: Status,
71 ctrl_reg: Control,
72}