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 <baseboard/gpio.h>
9 #include <soc/gpio.h>
10 
11 #define MAINBOARD_EC_SCI_EVENTS \
12  (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED) \
13  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) \
14  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_CONNECTED) \
15  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_DISCONNECTED) \
16  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_LOW) \
17  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_CRITICAL) \
18  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY) \
19  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_STATUS) \
20  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_THRESHOLD) \
21  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_THROTTLE_START) \
22  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_THROTTLE_STOP) \
23  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_PD_MCU) \
24  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE) \
25  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_USB_MUX))
26 
27 #define MAINBOARD_EC_SMI_EVENTS (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED))
28 
29 /* EC can wake from S5 with lid, power button or hang detection */
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  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_HANG_DETECT))
34 
35 /* EC can wake from S3 with lid, power button, mode change event, or hang detection */
36 #define MAINBOARD_EC_S3_WAKE_EVENTS \
37  (MAINBOARD_EC_S5_WAKE_EVENTS | EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_CONNECTED) \
38  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_DISCONNECTED) \
39  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED) \
40  | EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE))
41 
42 #define MAINBOARD_EC_S0IX_WAKE_EVENTS (MAINBOARD_EC_S3_WAKE_EVENTS)
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 /*
51  * ACPI related definitions for ASL code.
52  */
53 
54 /* Set GPI for SCI */
55 #define EC_SCI_GPI GEVENT_24 /* eSPI system event -> GPE 24 */
56 
57 /* Enable MKBP for buttons and switches */
58 #define EC_ENABLE_MKBP_DEVICE
59 
60 /* Provide wake pin for EC */
61 #define EC_ENABLE_WAKE_PIN GEVENT_3 /* AGPIO 22 -> GPE 3 */
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 /* Enable EC sync interrupt */
68 #define EC_ENABLE_SYNC_IRQ_GPIO
69 
70 /* EC sync irq */
71 #define EC_SYNC_IRQ GPIO_84
72 
73 /* Enable EC backed PD MCU device in ACPI */
74 #define EC_ENABLE_PD_MCU_DEVICE
75 
76 /* Enable EC backed Keyboard Backlight in ACPI */
77 #define EC_ENABLE_KEYBOARD_BACKLIGHT
78 
79 #endif /* __MAINBOARD_EC_H__ */