1#pragma once
2
3#include <uacpi/types.h>
4
5enum uacpi_register {
6 UACPI_REGISTER_PM1_STS = 0,
7 UACPI_REGISTER_PM1_EN,
8 UACPI_REGISTER_PM1_CNT,
9 UACPI_REGISTER_PM_TMR,
10 UACPI_REGISTER_PM2_CNT,
11 UACPI_REGISTER_SLP_CNT,
12 UACPI_REGISTER_SLP_STS,
13 UACPI_REGISTER_RESET,
14 UACPI_REGISTER_SMI_CMD,
15 UACPI_REGISTER_MAX = UACPI_REGISTER_SMI_CMD,
16};
17
18uacpi_status uacpi_read_register(enum uacpi_register, uacpi_u64*);
19
20uacpi_status uacpi_write_register(enum uacpi_register, uacpi_u64);
21uacpi_status uacpi_write_registers(enum uacpi_register, uacpi_u64, uacpi_u64);
22
23enum uacpi_register_field {
24 UACPI_REGISTER_FIELD_TMR_STS = 0,
25 UACPI_REGISTER_FIELD_BM_STS,
26 UACPI_REGISTER_FIELD_GBL_STS,
27 UACPI_REGISTER_FIELD_PWRBTN_STS,
28 UACPI_REGISTER_FIELD_SLPBTN_STS,
29 UACPI_REGISTER_FIELD_RTC_STS,
30 UACPI_REGISTER_FIELD_PCIEX_WAKE_STS,
31 UACPI_REGISTER_FIELD_HWR_WAK_STS,
32 UACPI_REGISTER_FIELD_WAK_STS,
33 UACPI_REGISTER_FIELD_TMR_EN,
34 UACPI_REGISTER_FIELD_GBL_EN,
35 UACPI_REGISTER_FIELD_PWRBTN_EN,
36 UACPI_REGISTER_FIELD_SLPBTN_EN,
37 UACPI_REGISTER_FIELD_RTC_EN,
38 UACPI_REGISTER_FIELD_PCIEXP_WAKE_DIS,
39 UACPI_REGISTER_FIELD_SCI_EN,
40 UACPI_REGISTER_FIELD_BM_RLD,
41 UACPI_REGISTER_FIELD_GBL_RLS,
42 UACPI_REGISTER_FIELD_SLP_TYP,
43 UACPI_REGISTER_FIELD_HWR_SLP_TYP,
44 UACPI_REGISTER_FIELD_SLP_EN,
45 UACPI_REGISTER_FIELD_HWR_SLP_EN,
46 UACPI_REGISTER_FIELD_ARB_DIS,
47 UACPI_REGISTER_FIELD_MAX = UACPI_REGISTER_FIELD_ARB_DIS,
48};
49
50uacpi_status uacpi_read_register_field(enum uacpi_register_field, uacpi_u64*);
51uacpi_status uacpi_write_register_field(enum uacpi_register_field, uacpi_u64);
52