summaryrefslogtreecommitdiff
path: root/src/mainboard/google/guybrush/ec.c
blob: 5a0bc1b3c5637e08d6c49c6687633fd8c5dac307 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* SPDX-License-Identifier: GPL-2.0-or-later */

#include <acpi/acpi.h>
#include <amdblocks/gpio_banks.h>
#include <amdblocks/smi.h>
#include <ec/google/chromeec/ec.h>
#include <soc/smi.h>
#include <variant/ec.h>

static const struct sci_source espi_sci_sources[] = {
	{
		.scimap = SMITYPE_ESPI_SYS,
		.gpe = EC_SCI_GPI,
		.direction = SMI_SCI_LVL,
		.level = SMI_SCI_LVL_HIGH
	}
};

void mainboard_ec_init(void)
{
	const struct google_chromeec_event_info info = {
		.log_events = MAINBOARD_EC_LOG_EVENTS,
		.sci_events = MAINBOARD_EC_SCI_EVENTS,
		.s3_wake_events = MAINBOARD_EC_S3_WAKE_EVENTS,
		.s5_wake_events = MAINBOARD_EC_S5_WAKE_EVENTS,
		.s0ix_wake_events = MAINBOARD_EC_S0IX_WAKE_EVENTS,
	};

	google_chromeec_events_init(&info, acpi_is_wakeup_s3());

	/* Configure eSPI VW SCI events */
	gpe_configure_sci(espi_sci_sources, ARRAY_SIZE(espi_sci_sources));
}