Skip to content

Commit 66b2697

Browse files
committed
Add standard EC types
- EC internal messages - EC internal structures
1 parent e3d3f0e commit 66b2697

File tree

4 files changed

+204
-0
lines changed

4 files changed

+204
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
//! EC Internal Messages
2+
3+
#[allow(missing_docs)]
4+
#[derive(Clone, Copy)]
5+
pub enum CapabilitiesMessage {
6+
Events(u32),
7+
FwVersion(super::structure::Version),
8+
SecureState(u8),
9+
BootStatus(u8),
10+
FanMask(u8),
11+
BatteryMask(u8),
12+
TempMask(u16),
13+
KeyMask(u16),
14+
DebugMask(u16),
15+
}
16+
17+
#[allow(missing_docs)]
18+
#[derive(Clone, Copy)]
19+
pub enum TimeAlarmMessage {
20+
Events(u32),
21+
Capability(u32),
22+
Year(u16),
23+
Month(u8),
24+
Day(u8),
25+
Hour(u8),
26+
Minute(u8),
27+
Second(u8),
28+
Valid(u8),
29+
Daylight(u8),
30+
Res1(u8),
31+
Milli(u16),
32+
TimeZone(u16),
33+
Res2(u16),
34+
AlarmStatus(u32),
35+
AcTimeVal(u32),
36+
DcTimeVal(u32),
37+
}
38+
39+
#[allow(missing_docs)]
40+
#[derive(Clone, Copy)]
41+
pub enum BatteryMessage {
42+
Events(u32),
43+
LastFullCharge(u32),
44+
CycleCount(u32),
45+
State(u32),
46+
PresentRate(u32),
47+
RemainCap(u32),
48+
PresentVolt(u32),
49+
PsrState(u32),
50+
PsrMaxOut(u32),
51+
PsrMaxIn(u32),
52+
PeakLevel(u32),
53+
PeakPower(u32),
54+
SusLevel(u32),
55+
SusPower(u32),
56+
PeakThres(u32),
57+
SusThres(u32),
58+
TripThres(u32),
59+
BmcData(u32),
60+
BmdData(u32),
61+
BmdFlags(u32),
62+
BmdCount(u32),
63+
ChargeTime(u32),
64+
RunTime(u32),
65+
SampleTime(u32),
66+
}
67+
68+
#[allow(missing_docs)]
69+
#[derive(Clone, Copy)]
70+
pub enum ThermalMessage {
71+
Events(u32),
72+
CoolMode(u32),
73+
DbaLimit(u32),
74+
SonneLimit(u32),
75+
MaLimit(u32),
76+
Fan1OnTemp(u32),
77+
Fan1RampTemp(u32),
78+
Fan1MaxTemp(u32),
79+
Fan1CrtTemp(u32),
80+
Fan1HotTemp(u32),
81+
Fan1MaxRpm(u32),
82+
Fan1CurRpm(u32),
83+
Tmp1Val(u32),
84+
Tmp1Timeout(u32),
85+
Tmp1Low(u32),
86+
Tmp1High(u32),
87+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
//! Standard EC types
2+
3+
pub mod message;
4+
pub mod structure;
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
//! EC Internal Data Structures
2+
3+
#[allow(missing_docs)]
4+
#[repr(C, packed)]
5+
#[derive(Clone, Copy)]
6+
pub struct Version {
7+
pub major: u8,
8+
pub minor: u8,
9+
pub spin: u8,
10+
pub res0: u8,
11+
}
12+
13+
#[allow(missing_docs)]
14+
#[repr(C, packed)]
15+
#[derive(Clone, Copy)]
16+
pub struct Capabilities {
17+
pub events: u32,
18+
pub fw_version: Version,
19+
pub secure_state: u8,
20+
pub boot_status: u8,
21+
pub fan_mask: u8,
22+
pub battery_mask: u8,
23+
pub temp_mask: u16,
24+
pub key_mask: u16,
25+
pub debug_mask: u16,
26+
}
27+
28+
#[allow(missing_docs)]
29+
#[repr(C, packed)]
30+
#[derive(Clone, Copy)]
31+
pub struct TimeAlarm {
32+
pub events: u32,
33+
pub capability: u32,
34+
pub year: u16,
35+
pub month: u8,
36+
pub day: u8,
37+
pub hour: u8,
38+
pub minute: u8,
39+
pub second: u8,
40+
pub valid: u8,
41+
pub daylight: u8,
42+
pub res1: u8,
43+
pub milli: u16,
44+
pub time_zone: u16,
45+
pub res2: u16,
46+
pub alarm_status: u32,
47+
pub ac_time_val: u32,
48+
pub dc_time_val: u32,
49+
}
50+
51+
#[allow(missing_docs)]
52+
#[repr(C, packed)]
53+
#[derive(Clone, Copy)]
54+
pub struct Battery {
55+
pub events: u32,
56+
pub last_full_charge: u32,
57+
pub cycle_count: u32,
58+
pub state: u32,
59+
pub present_rate: u32,
60+
pub remain_cap: u32,
61+
pub present_volt: u32,
62+
pub psr_state: u32,
63+
pub psr_max_out: u32,
64+
pub psr_max_in: u32,
65+
pub peak_level: u32,
66+
pub peak_power: u32,
67+
pub sus_level: u32,
68+
pub sus_power: u32,
69+
pub peak_thres: u32,
70+
pub sus_thres: u32,
71+
pub trip_thres: u32,
72+
pub bmc_data: u32,
73+
pub bmd_data: u32,
74+
pub bmd_flags: u32,
75+
pub bmd_count: u32,
76+
pub charge_time: u32,
77+
pub run_time: u32,
78+
pub sample_time: u32,
79+
}
80+
81+
#[allow(missing_docs)]
82+
#[repr(C, packed)]
83+
#[derive(Clone, Copy)]
84+
pub struct Thermal {
85+
pub events: u32,
86+
pub cool_mode: u32,
87+
pub dba_limit: u32,
88+
pub sonne_limit: u32,
89+
pub ma_limit: u32,
90+
pub fan1_on_temp: u32,
91+
pub fan1_ramp_temp: u32,
92+
pub fan1_max_temp: u32,
93+
pub fan1_crt_temp: u32,
94+
pub fan1_hot_temp: u32,
95+
pub fan1_max_rpm: u32,
96+
pub fan1_cur_rpm: u32,
97+
pub tmp1_val: u32,
98+
pub tmp1_timeout: u32,
99+
pub tmp1_low: u32,
100+
pub tmp1_high: u32,
101+
}
102+
103+
#[allow(missing_docs)]
104+
#[repr(C, packed)]
105+
#[derive(Clone, Copy)]
106+
pub struct ECMemory {
107+
pub ver: Version,
108+
pub caps: Capabilities,
109+
pub alarm: TimeAlarm,
110+
pub batt: Battery,
111+
pub therm: Thermal,
112+
}

embedded-service/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ pub use intrusive_list::*;
1010
pub mod activity;
1111
pub mod buffer;
1212
pub mod comms;
13+
pub mod ec_type;
1314
pub mod fmt;
1415
pub mod hid;
1516
pub mod keyboard;

0 commit comments

Comments
 (0)