coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
ec.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __BASEBOARD_EC_H__
4 #define __BASEBOARD_EC_H__
5 
7 #include <variant/gpio.h>
8 
9 #define MAINBOARD_EC_SCI_EVENTS \
10  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED) |\
11  EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
12  EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_CONNECTED) |\
13  EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_DISCONNECTED) |\
14  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_LOW) |\
15  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_CRITICAL) |\
16  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY) |\
17  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_STATUS) |\
18  EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_THRESHOLD) |\
19  EC_HOST_EVENT_MASK(EC_HOST_EVENT_THROTTLE_START) |\
20  EC_HOST_EVENT_MASK(EC_HOST_EVENT_THROTTLE_STOP) |\
21  EC_HOST_EVENT_MASK(EC_HOST_EVENT_PD_MCU) |\
22  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE))
23 
24 #define MAINBOARD_EC_SMI_EVENTS \
25  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED))
26 
27 /* EC can wake from S5 with lid or power button */
28 #define MAINBOARD_EC_S5_WAKE_EVENTS \
29  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
30  EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
31 
32 /*
33  * EC can wake from S3 with lid or power button or key press or
34  * mode change event.
35  */
36 #define MAINBOARD_EC_S3_WAKE_EVENTS \
37  (MAINBOARD_EC_S5_WAKE_EVENTS |\
38  EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED) |\
39  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MKBP) |\
40  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE))
41 
42 #define MAINBOARD_EC_S0IX_WAKE_EVENTS \
43  (MAINBOARD_EC_S3_WAKE_EVENTS | \
44  EC_HOST_EVENT_MASK(EC_HOST_EVENT_HANG_DETECT))
45 
46 /* Log EC wake events plus EC shutdown events */
47 #define MAINBOARD_EC_LOG_EVENTS \
48  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_SHUTDOWN) |\
49  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_SHUTDOWN) |\
50  EC_HOST_EVENT_MASK(EC_HOST_EVENT_PANIC))
51 
52 /*
53  * ACPI related definitions for ASL code.
54  */
55 
56 /* Enable EC backed ALS device in ACPI */
57 #define EC_ENABLE_ALS_DEVICE
58 
59 /* Enable EC backed PD MCU device in ACPI */
60 #define EC_ENABLE_PD_MCU_DEVICE
61 
62 /* Enable LID switch and provide wake pin for EC */
63 #define EC_ENABLE_LID_SWITCH
64 #define EC_ENABLE_WAKE_PIN GPE_EC_WAKE
65 
66 /* Enable Tablet switch */
67 #define EC_ENABLE_TBMC_DEVICE
68 
69 #define SIO_EC_MEMMAP_ENABLE /* EC Memory Map Resources */
70 #define SIO_EC_HOST_ENABLE /* EC Host Interface Resources */
71 #define SIO_EC_ENABLE_PS2K /* Enable PS/2 Keyboard */
72 
73 /* Enable EC sync interrupt, EC_SYNC_IRQ is defined in baseboard/gpio.h */
74 #define EC_ENABLE_SYNC_IRQ
75 
76 /* Enable EC backed Keyboard Backlight in ACPI */
77 #define EC_ENABLE_KEYBOARD_BACKLIGHT
78 
79 #endif /* __BASEBOARD_EC_H__ */