[coreboot-gerrit] Change in coreboot[master]: mainboard/google/poppy: Ensure correct sequencing of PERST signal

Furquan Shaikh (Code Review) gerrit at coreboot.org
Thu Aug 3 04:11:04 CEST 2017


Furquan Shaikh has uploaded this change for review. ( https://review.coreboot.org/20869


Change subject: mainboard/google/poppy: Ensure correct sequencing of PERST signal
......................................................................

mainboard/google/poppy: Ensure correct sequencing of PERST signal

PERST# signal has specific requirements that it should be low for
~1msec after applying power to PCIe device. Ensure that this
requirement is met by adding a delay of 5ms before setting WLAN_PE_RST
to low (There is an inverter which inverts the logic of WLAN_PE_RST to
PERST#).

(This is a temporary workaround until support is added to do this in
ACPI.)

BUG=b:64181150,b:62726961
TEST=Verified with warm reboot and suspend-resume stress test that
wifi is still functional.

Change-Id: I68e1bd67499262a17daade72e9a9fd32934a184d
Signed-off-by: Furquan Shaikh <furquan at chromium.org>
---
M src/mainboard/google/poppy/ramstage.c
M src/mainboard/google/poppy/smihandler.c
M src/mainboard/google/poppy/variants/soraka/gpio.c
3 files changed, 17 insertions(+), 1 deletion(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/69/20869/1

diff --git a/src/mainboard/google/poppy/ramstage.c b/src/mainboard/google/poppy/ramstage.c
index 39df3ee..2390013 100644
--- a/src/mainboard/google/poppy/ramstage.c
+++ b/src/mainboard/google/poppy/ramstage.c
@@ -14,6 +14,9 @@
  */
 
 #include <baseboard/variants.h>
+#include <delay.h>
+#include <gpio.h>
+#include <soc/gpio.h>
 #include <soc/ramstage.h>
 
 #include <variant/gpio.h>
@@ -25,4 +28,16 @@
 
 	pads = variant_gpio_table(&num);
 	gpio_configure_pads(pads, num);
+
+	/*
+	 * TODO(furquan): Temporary work-around until this is properly
+	 * implemented in ACPI.
+	 * Ensure PERST# timing requirements are met by pulling it high for
+	 * >1msec. This is important to ensure that the wifi chip does not get
+	 * into a bad state on warm reboot/suspend-resume.
+	 */
+	gpio_set(GPP_B8, 1);
+	mdelay(5);
+	gpio_set(GPP_B8, 0);
+
 }
diff --git a/src/mainboard/google/poppy/smihandler.c b/src/mainboard/google/poppy/smihandler.c
index 1a86d0f..68d071e 100644
--- a/src/mainboard/google/poppy/smihandler.c
+++ b/src/mainboard/google/poppy/smihandler.c
@@ -31,6 +31,7 @@
 {
 	/* Power down camera PMIC */
 	gpio_set(EN_PP3300_DX_CAM, 0);
+	gpio_set(GPP_B8, 1);
 }
 
 void mainboard_smi_sleep(u8 slp_typ)
diff --git a/src/mainboard/google/poppy/variants/soraka/gpio.c b/src/mainboard/google/poppy/variants/soraka/gpio.c
index f0fb34a..ddd5cd7 100644
--- a/src/mainboard/google/poppy/variants/soraka/gpio.c
+++ b/src/mainboard/google/poppy/variants/soraka/gpio.c
@@ -79,7 +79,7 @@
 	/* B7  : SRCCLKREQ2# ==> NC */
 	PAD_CFG_NC(GPP_B7),
 	/* B8  : SRCCLKREQ3# ==> WLAN_PE_RST */
-	PAD_CFG_GPO(GPP_B8, 0, DEEP),
+	PAD_CFG_GPO(GPP_B8, 1, DEEP),
 	/* B9  : SRCCLKREQ4# ==> NC */
 	PAD_CFG_NC(GPP_B9),
 	/* B10 : SRCCLKREQ5# ==> NC */

-- 
To view, visit https://review.coreboot.org/20869
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I68e1bd67499262a17daade72e9a9fd32934a184d
Gerrit-Change-Number: 20869
Gerrit-PatchSet: 1
Gerrit-Owner: Furquan Shaikh <furquan at google.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20170803/45a9da22/attachment.html>


More information about the coreboot-gerrit mailing list