blob: b75bd4aacb592b0a24a7dc237d5936e19f695d79 [file] [log] [blame]
Angel Ponsfeedf232020-04-05 13:22:01 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Stefan Reinauer49428d82013-02-21 15:48:37 -08002
Furquan Shaikh76cedd22020-05-02 10:24:23 -07003#include <acpi/acpi.h>
Stefan Reinauer49428d82013-02-21 15:48:37 -08004#include <cpu/x86/smm.h>
Stefan Reinauer49428d82013-02-21 15:48:37 -08005#include <southbridge/intel/bd82x6x/pch.h>
6#include <southbridge/intel/bd82x6x/me.h>
7#include <northbridge/intel/sandybridge/sandybridge.h>
Stefan Reinauer49428d82013-02-21 15:48:37 -08008
Stefan Reinauer49428d82013-02-21 15:48:37 -08009/* Include EC functions */
10#include <ec/google/chromeec/ec.h>
Kyösti Mälkki923b8ec2022-11-29 07:36:44 +020011#include <ec/google/chromeec/smm.h>
Stefan Reinauer49428d82013-02-21 15:48:37 -080012#include "ec.h"
13
Duncan Laurie0edc2242013-04-29 15:04:30 -070014void mainboard_smi_gpi(u32 gpi_sts)
Stefan Reinauer49428d82013-02-21 15:48:37 -080015{
Kyösti Mälkki83faa5d2023-01-05 15:39:16 +020016 if (gpi_sts & (1 << EC_SMI_GPI))
17 chromeec_smi_process_events();
Stefan Reinauer49428d82013-02-21 15:48:37 -080018}
19
20void mainboard_smi_sleep(u8 slp_typ)
21{
22 /* Disable USB charging if required */
Kyösti Mälkki027f86e2022-12-02 15:30:10 +020023 chromeec_set_usb_charge_mode(slp_typ);
Stefan Reinauer49428d82013-02-21 15:48:37 -080024
25 /* Disable SCI and SMI events */
26 google_chromeec_set_smi_mask(0);
27 google_chromeec_set_sci_mask(0);
28
29 /* Clear pending events that may trigger immediate wake */
Rob Barnesf1ade482021-06-14 10:22:21 -060030 while (google_chromeec_get_event() != EC_HOST_EVENT_NONE)
31 ;
Stefan Reinauer49428d82013-02-21 15:48:37 -080032
33 /* Enable wake events */
Kyösti Mälkki383c4e72023-01-05 18:05:11 +020034 google_chromeec_set_wake_mask(MAINBOARD_EC_S3_WAKE_EVENTS);
Stefan Reinauer49428d82013-02-21 15:48:37 -080035}
36
Stefan Reinauer49428d82013-02-21 15:48:37 -080037int mainboard_smi_apmc(u8 apmc)
38{
Kyösti Mälkki383c4e72023-01-05 18:05:11 +020039 chromeec_smi_apmc(apmc, MAINBOARD_EC_SCI_EVENTS, MAINBOARD_EC_SMI_EVENTS);
Stefan Reinauer49428d82013-02-21 15:48:37 -080040 return 0;
41}