[coreboot-gerrit] Change in coreboot[master]: mb/google/poppy/variants/nami: Fix Elan touchscreen power off sequence

Shelley Chen (Code Review) gerrit at coreboot.org
Thu May 31 05:23:53 CEST 2018


Shelley Chen has uploaded this change for review. ( https://review.coreboot.org/26724


Change subject: mb/google/poppy/variants/nami: Fix Elan touchscreen power off sequence
......................................................................

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 at google.com>
---
M src/mainboard/google/poppy/smihandler.c
M src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h
M src/mainboard/google/poppy/variants/nami/Makefile.inc
A src/mainboard/google/poppy/variants/nami/smihandler.c
4 files changed, 46 insertions(+), 0 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/24/26724/1

diff --git a/src/mainboard/google/poppy/smihandler.c b/src/mainboard/google/poppy/smihandler.c
index e880581..c8ff749 100644
--- a/src/mainboard/google/poppy/smihandler.c
+++ b/src/mainboard/google/poppy/smihandler.c
@@ -21,6 +21,7 @@
 #include <soc/gpio.h>
 #include <soc/smm.h>
 
+#include <baseboard/variants.h>
 #include <variant/gpio.h>
 #include <variant/ec.h>
 
@@ -29,8 +30,11 @@
 	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);
 }
diff --git a/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h
index 97cb0fe..7e850b6 100644
--- a/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h
+++ b/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h
@@ -54,6 +54,7 @@
 int variant_memory_sku(void);
 void variant_devtree_update(void);
 uint32_t variant_board_sku(void);
+void variant_smi_sleep(u8 slp_typ);
 
 struct nhlt;
 void variant_nhlt_init(struct nhlt *nhlt);
diff --git a/src/mainboard/google/poppy/variants/nami/Makefile.inc b/src/mainboard/google/poppy/variants/nami/Makefile.inc
index 618011c..8fc0264 100644
--- a/src/mainboard/google/poppy/variants/nami/Makefile.inc
+++ b/src/mainboard/google/poppy/variants/nami/Makefile.inc
@@ -35,6 +35,8 @@
 ramstage-y += nhlt.c
 ramstage-y += mainboard.c
 
+smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c
+
 # Add OEM ID table
 cbfs-files-y += oem.bin
 oem.bin-file := $(call strip_quotes,$(CONFIG_OEM_BIN_FILE))
diff --git a/src/mainboard/google/poppy/variants/nami/smihandler.c b/src/mainboard/google/poppy/variants/nami/smihandler.c
new file mode 100644
index 0000000..85a7282
--- /dev/null
+++ b/src/mainboard/google/poppy/variants/nami/smihandler.c
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2018 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 <baseboard/variants.h>
+#include <console/console.h>
+#include <delay.h>
+#include <device/device.h>
+#include "chip.h"
+#include "gpio.h"
+#include <drivers/i2c/generic/chip.h>
+
+void variant_smi_sleep(u8 slp_typ)
+{
+	const struct device *dev_i2c0 = dev_find_slot(0, PCH_DEVFN_I2C0);
+	const struct drivers_i2c_generic_config *conf =
+		dev_i2c0->link_list[0].children->chip_info;
+
+	/* TOUCHSCREEN_DIS# */
+	gpio_set(GPP_C3, 0);
+	mdelay(conf->stop_off_delay_ms);
+	/* TOUCHSCREEN_RST# */
+	gpio_set(GPP_B3, 0);
+	mdelay(conf->reset_off_delay_ms);
+	/* EN_PP3300_DX_TOUCHSCREEN */
+	gpio_set(GPP_B4, 0);
+	mdelay(conf->enable_off_delay_ms);
+}

-- 
To view, visit https://review.coreboot.org/26724
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifeea545fe268be249793b3e508c51f5e4c1a3460
Gerrit-Change-Number: 26724
Gerrit-PatchSet: 1
Gerrit-Owner: Shelley Chen <shchen at google.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180531/80be87af/attachment.html>


More information about the coreboot-gerrit mailing list