rockchip_pm/variants/
_macros.rs1#[macro_export(local_inner_macros)]
2macro_rules! map {
3 () => {
5 {
6 ::alloc::collections::BTreeMap::new()
7 }
8 };
9 ( $( $key:expr => $value:expr ),+ $(,)? ) => {{
11 let mut map = ::alloc::collections::BTreeMap::new();
12 $( map.insert($key.into(), $value); )*
13 map
14 }};
15}
16
17macro_rules! define_pd {
18 ($name:ident, $value:expr) => {
19 pub const $name: PD = PD($value);
20 };
21}
22
23macro_rules! bit {
24 ($n:expr) => {
25 (1 << $n)
26 };
27 () => {};
28}
29
30use super::RockchipDomainInfo;
32
33#[allow(clippy::too_many_arguments)]
34pub fn domain_m_o_r(
35 name: &'static str,
36 pwr_offset: u32,
37 pwr: i32,
38 status: i32,
39 mem_offset: u32,
40 mem_status: i32,
41 repair_status: i32,
42 req_offset: u32,
43 req: i32,
44 idle: i32,
45 ack: i32,
46 wakeup: bool,
47 keepon: bool,
48) -> RockchipDomainInfo {
49 RockchipDomainInfo {
50 name,
51 pwr_offset,
52 pwr_w_mask: (pwr << 16),
53 pwr_mask: pwr,
54 status_mask: status,
55 mem_offset,
56 mem_status_mask: mem_status,
57 repair_status_mask: repair_status,
58 req_offset,
59 req_w_mask: (req << 16),
60 req_mask: req,
61 idle_mask: idle,
62 ack_mask: ack,
63 active_wakeup: wakeup,
64 keepon_startup: keepon,
65 ..Default::default()
66 }
67}