coreboot-kgpe-d16/src/mainboard/google/poppy/smihandler.c
Shelley Chen 528448e3fc mb/google/poppy/variants/nami: Fix Elan touchscreen power off sequence
Power off does not seem to use the ACPI _OFF function, but rather the
smihandler.  Creating variant_smi_sleep function for nami to handle
the power off sequence during reboot/power off.

BUG=b:78311818
BRANCH=None
TEST=Run "poweroff" command from AP console with SMI_DEBUG enabled
     Make sure delays are consistent with spec

Change-Id: Ifeea545fe268be249793b3e508c51f5e4c1a3460
Signed-off-by: Shelley Chen <shchen@google.com>
Reviewed-on: https://review.coreboot.org/26724
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
2018-06-06 10:28:59 +00:00

53 lines
1.3 KiB
C

/*
* This file is part of the coreboot project.
*
* Copyright (C) 2016 Google Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <cpu/x86/smm.h>
#include <ec/google/chromeec/ec.h>
#include <ec/google/chromeec/smm.h>
#include <elog.h>
#include <gpio.h>
#include <soc/gpio.h>
#include <soc/smm.h>
#include <baseboard/variants.h>
#include <variant/gpio.h>
#include <variant/ec.h>
void mainboard_smi_espi_handler(void)
{
chromeec_smi_process_events();
}
void __weak variant_smi_sleep(u8 slp_typ) {}
void mainboard_smi_sleep(u8 slp_typ)
{
variant_smi_sleep(slp_typ);
chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS,
MAINBOARD_EC_S5_WAKE_EVENTS);
}
int mainboard_smi_apmc(u8 apmc)
{
chromeec_smi_apmc(apmc, MAINBOARD_EC_SCI_EVENTS,
MAINBOARD_EC_SMI_EVENTS);
return 0;
}
void elog_gsmi_cb_mainboard_log_wake_source(void)
{
google_chromeec_log_events(MAINBOARD_EC_LOG_EVENTS |
MAINBOARD_EC_S0IX_WAKE_EVENTS);
}