blob: 877176cc968792c5984a5661d05215913a4e9923 [file] [log] [blame]
EricKY Cheng7728ed32024-05-09 16:44:23 +08001/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3#ifndef __VARIANT_EC_H__
4#define __VARIANT_EC_H__
5
Amanda Huangdc0ae6b2024-06-22 11:09:24 +08006#include <ec/ec.h>
7#include <ec/google/chromeec/ec_commands.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_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_MKBP) |\
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 \
28 (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED))
29
30/* EC can wake from S5 with lid or power button */
31#define MAINBOARD_EC_S5_WAKE_EVENTS \
32 (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
33 EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
34
35/*
36 * EC can wake from S3/S0ix with:
37 * 1. Lid open
38 * 2. Power button
39 * 3. AC Connect/Disconnect
40 * 4. Key press
41 * 5. Mode change
42 * 6. Low battery
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 EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_CRITICAL) |\
51 EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_SHUTDOWN))
52
53#define MAINBOARD_EC_S0IX_WAKE_EVENTS \
54 (MAINBOARD_EC_S3_WAKE_EVENTS |\
55 EC_HOST_EVENT_MASK(EC_HOST_EVENT_USB_MUX) |\
56 EC_HOST_EVENT_MASK(EC_HOST_EVENT_HANG_DETECT))
57
58/* Log EC wake events plus EC shutdown events */
59#define MAINBOARD_EC_LOG_EVENTS \
60 (EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_SHUTDOWN) |\
61 EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_SHUTDOWN) |\
62 EC_HOST_EVENT_MASK(EC_HOST_EVENT_PANIC))
63
64/* Enable LID switch and provide wake pin for EC */
65#define EC_ENABLE_LID_SWITCH
66#define EC_ENABLE_WAKE_PIN GPE_EC_WAKE
67
68/* Enable EC backed PD MCU device in ACPI */
69#define EC_ENABLE_PD_MCU_DEVICE
70
71#define SIO_EC_MEMMAP_ENABLE /* EC Memory Map Resources */
72#define SIO_EC_HOST_ENABLE /* EC Host Interface Resources */
73#define SIO_EC_ENABLE_PS2K /* Enable PS/2 Keyboard */
74
75#define EC_ENABLE_SYNC_IRQ /* Enable tight timestamp support */
EricKY Cheng7728ed32024-05-09 16:44:23 +080076
77#endif