lowrisc/registers/
pattgen_regs.rs1use kernel::utilities::registers::ReadWrite;
13use kernel::utilities::registers::{register_bitfields, register_structs};
14pub const PATTGEN_PARAM_NUM_REGS_DATA: u32 = 2;
16pub const PATTGEN_PARAM_NUM_ALERTS: u32 = 1;
18pub const PATTGEN_PARAM_REG_WIDTH: u32 = 32;
20
21register_structs! {
22 pub PattgenRegisters {
23 (0x0000 => pub(crate) intr_state: ReadWrite<u32, INTR::Register>),
25 (0x0004 => pub(crate) intr_enable: ReadWrite<u32, INTR::Register>),
27 (0x0008 => pub(crate) intr_test: ReadWrite<u32, INTR::Register>),
29 (0x000c => pub(crate) alert_test: ReadWrite<u32, ALERT_TEST::Register>),
31 (0x0010 => pub(crate) ctrl: ReadWrite<u32, CTRL::Register>),
33 (0x0014 => pub(crate) prediv_ch0: ReadWrite<u32, PREDIV_CH0::Register>),
35 (0x0018 => pub(crate) prediv_ch1: ReadWrite<u32, PREDIV_CH1::Register>),
37 (0x001c => pub(crate) data_ch0: [ReadWrite<u32, DATA_CH0::Register>; 2]),
39 (0x0024 => pub(crate) data_ch1: [ReadWrite<u32, DATA_CH1::Register>; 2]),
41 (0x002c => pub(crate) size: ReadWrite<u32, SIZE::Register>),
43 (0x0030 => @END),
44 }
45}
46
47register_bitfields![u32,
48 pub(crate) INTR [
50 DONE_CH0 OFFSET(0) NUMBITS(1) [],
51 DONE_CH1 OFFSET(1) NUMBITS(1) [],
52 ],
53 pub(crate) ALERT_TEST [
54 FATAL_FAULT OFFSET(0) NUMBITS(1) [],
55 ],
56 pub(crate) CTRL [
57 ENABLE_CH0 OFFSET(0) NUMBITS(1) [],
58 ENABLE_CH1 OFFSET(1) NUMBITS(1) [],
59 POLARITY_CH0 OFFSET(2) NUMBITS(1) [],
60 POLARITY_CH1 OFFSET(3) NUMBITS(1) [],
61 ],
62 pub(crate) PREDIV_CH0 [
63 CLK_RATIO OFFSET(0) NUMBITS(32) [],
64 ],
65 pub(crate) PREDIV_CH1 [
66 CLK_RATIO OFFSET(0) NUMBITS(32) [],
67 ],
68 pub(crate) DATA_CH0 [
69 DATA_0 OFFSET(0) NUMBITS(32) [],
70 ],
71 pub(crate) DATA_CH1 [
72 DATA_0 OFFSET(0) NUMBITS(32) [],
73 ],
74 pub(crate) SIZE [
75 LEN_CH0 OFFSET(0) NUMBITS(6) [],
76 REPS_CH0 OFFSET(6) NUMBITS(10) [],
77 LEN_CH1 OFFSET(16) NUMBITS(6) [],
78 REPS_CH1 OFFSET(22) NUMBITS(10) [],
79 ],
80];
81
82