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-or-later */
2 
3 #ifndef __BASEBOARD_EC_H__
4 #define __BASEBOARD_EC_H__
5 
6 #include <ec/ec.h>
8 #include <baseboard/gpio.h>
9 
10 #define MAINBOARD_EC_SCI_EVENTS \
11  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED) |\
12  EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
13  EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_CONNECTED) |\
14  EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_DISCONNECTED) |\
15  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_LOW) |\
16  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_CRITICAL) |\
17  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY) |\
18  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_STATUS) |\
19  EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_THRESHOLD) |\
20  EC_HOST_EVENT_MASK(EC_HOST_EVENT_THROTTLE_START) |\
21  EC_HOST_EVENT_MASK(EC_HOST_EVENT_THROTTLE_STOP) |\
22  EC_HOST_EVENT_MASK(EC_HOST_EVENT_USB_CHARGER) |\
23  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MKBP) |\
24  EC_HOST_EVENT_MASK(EC_HOST_EVENT_PD_MCU) |\
25  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE) |\
26  EC_HOST_EVENT_MASK(EC_HOST_EVENT_USB_MUX))
27 
28 #define MAINBOARD_EC_SMI_EVENTS \
29  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED))
30 
31 /* EC can wake from S5 with lid or power button */
32 #define MAINBOARD_EC_S5_WAKE_EVENTS \
33  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
34  EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
35 
36 /*
37  * EC can wake from S3/S0ix with:
38  * 1. Lid open
39  * 2. Power button
40  * 3. AC Connect/Disconnect
41  * 4. Key press
42  * 5. Mode change
43  */
44 #define MAINBOARD_EC_S3_WAKE_EVENTS \
45  (MAINBOARD_EC_S5_WAKE_EVENTS |\
46  EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_CONNECTED) |\
47  EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_DISCONNECTED) |\
48  EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED) |\
49  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE))
50 
51 #define MAINBOARD_EC_S0IX_WAKE_EVENTS \
52  (MAINBOARD_EC_S3_WAKE_EVENTS |\
53  EC_HOST_EVENT_MASK(EC_HOST_EVENT_USB_MUX) |\
54  EC_HOST_EVENT_MASK(EC_HOST_EVENT_HANG_DETECT))
55 
56 /* Log EC wake events plus EC shutdown events */
57 #define MAINBOARD_EC_LOG_EVENTS \
58  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_SHUTDOWN) |\
59  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_SHUTDOWN) |\
60  EC_HOST_EVENT_MASK(EC_HOST_EVENT_PANIC))
61 
62 /*
63  * ACPI related definitions for ASL code.
64  */
65 /* Enable EC backed ALS device in ACPI */
66 #define EC_ENABLE_ALS_DEVICE
67 
68 /* Enable Keyboard Backlight */
69 #define EC_ENABLE_KEYBOARD_BACKLIGHT
70 
71 /* Enable MKBP for buttons and switches */
72 #define EC_ENABLE_MKBP_DEVICE
73 
74 /* Enable LID switch and provide wake pin for EC */
75 #define EC_ENABLE_LID_SWITCH
76 #define EC_ENABLE_WAKE_PIN GPE_EC_WAKE
77 
78 /* Enable EC backed PD MCU device in ACPI */
79 #define EC_ENABLE_PD_MCU_DEVICE
80 
81 #define SIO_EC_MEMMAP_ENABLE /* EC Memory Map Resources */
82 #define SIO_EC_HOST_ENABLE /* EC Host Interface Resources */
83 #define SIO_EC_ENABLE_PS2K /* Enable PS/2 Keyboard */
84 
85 #define EC_ENABLE_SYNC_IRQ /* Enable tight timestamp support */
86 
87 #endif /* __BASEBOARD_EC_H__ */