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 MAINBOARD_EC_H
4 #define MAINBOARD_EC_H
5 
6 #include <ec/ec.h>
8 #include <variant/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_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_USB_CHARGER) |\
22  EC_HOST_EVENT_MASK(EC_HOST_EVENT_PD_MCU) |\
23  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MKBP) |\
24  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE))
25 
26 #define MAINBOARD_EC_SMI_EVENTS \
27  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED))
28 
29 /* EC can wake from S5 with lid or power button */
30 #define MAINBOARD_EC_S5_WAKE_EVENTS \
31  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
32  EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
33 
34 /*
35  * EC can wake from S3 with lid or power button or key press or
36  * mode change event
37  */
38 #define MAINBOARD_EC_S3_WAKE_EVENTS \
39  (MAINBOARD_EC_S5_WAKE_EVENTS |\
40  EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED) |\
41  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE) |\
42  EC_HOST_EVENT_MASK(EC_HOST_EVENT_MKBP))
43 
44 /* Log EC wake events plus EC shutdown events */
45 #define MAINBOARD_EC_LOG_EVENTS \
46  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_SHUTDOWN) |\
47  EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_SHUTDOWN) |\
48  EC_HOST_EVENT_MASK(EC_HOST_EVENT_PANIC))
49 
50 /* EC device events to enable and log in S3 */
51 #define MAINBOARD_EC_S3_DEVICE_EVENTS 0
52 
53 /* Enable LID switch */
54 #define EC_ENABLE_LID_SWITCH
55 #define EC_ENABLE_WAKE_PIN EC_WAKE_GPI
56 
57 /* Enable EC backed ALS device in ACPI */
58 #define EC_ENABLE_ALS_DEVICE
59 
60 /* Enable EC backed PD MCU device in ACPI */
61 #define EC_ENABLE_PD_MCU_DEVICE
62 
63 #define SIO_EC_MEMMAP_ENABLE /* EC Memory Map Resources */
64 #define SIO_EC_HOST_ENABLE /* EC Host Interface Resources */
65 #define SIO_EC_ENABLE_PS2K /* Enable PS/2 Keyboard */
66 
67 /*
68  * Enable EC sync interrupt via GPIO controller, EC_SYNC_IRQ is defined in
69  * variant/gpio.h
70  */
71 #define EC_ENABLE_SYNC_IRQ_GPIO
72 
73 /* Enable EC backed Keyboard Backlight in ACPI */
74 #define EC_ENABLE_KEYBOARD_BACKLIGHT
75 
76 /* Enable Tablet switch */
77 #define EC_ENABLE_TBMC_DEVICE
78 
79 #endif