From 1e194f6d1a1d821e625f86f38864b2ed1c347263 Mon Sep 17 00:00:00 2001 From: "reno.wang" Date: Thu, 9 Dec 2021 14:10:48 +0800 Subject: treeya: undef hibernate psl and keep KSI1/3 high in deep sleep It's workaround to reduce keyboard's "Silver Migration". From keyboard vendor's feedback, there are two factors to cause "Silver Migration". 1. A voltage potential between trace 2. The presence of an electrolyte , such as moisture. The reason cause voltage potential between KSIxx trace is EC enter ec hibernate PSL and turn EC's VCC1 power off. Besides KSI2, the other KSIxx will be turn off. KSI2 is powered by H1. To avoid voltage potential is keep KSI1, KSI2, and KSI3 on. That means not to enter ec hibernate PSL. BUG=b:214155147 BRANCH=None TEST=make -j BOARD=treeya, KSIxx keep 3.3V under DC mode after calling system_hibernate(). Signed-off-by: reno.wang Change-Id: I36c9d945a836ad54aa33d5af02d3a69ae57f1d29 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3325632 Reviewed-by: Martin Roth --- board/treeya/board.c | 5 +++++ board/treeya/board.h | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/board/treeya/board.c b/board/treeya/board.c index eb6985b7e0..58ae880a89 100644 --- a/board/treeya/board.c +++ b/board/treeya/board.c @@ -197,3 +197,8 @@ void board_bmi160_lsm6dsm_interrupt(enum gpio_signal signal) } #endif + +void board_hibernate_late(void) +{ + NPCX_KBSINPU = 0x0A; +} diff --git a/board/treeya/board.h b/board/treeya/board.h index 4bda4cb64c..d3809b3fda 100644 --- a/board/treeya/board.h +++ b/board/treeya/board.h @@ -12,6 +12,20 @@ #include "baseboard.h" +/* b/203442963 + * It's workaround to reduce keyboard's "Silver Migration". + * From keyboard vendor's feedback, there are two factors to cause + * "Silver Migration". + * 1. A voltage potential between trace. + * 2. The presence of an electrolyte , such as moisture. + * The reason cause voltage potential between KSIxx trace is EC enter ec + * hibernate PSL and turn EC's VCC1 power off. Besides KSI2, the other + * KSIxx will be turn off. KSI2 is powered by H1. + * To avoid voltage potential is keep KSIxx on. That means not to enter + * ec hibernate PSL. + */ +#undef CONFIG_HIBERNATE_PSL + /* * By default, enable all console messages excepted HC, ACPI and event: * The sensor stack is generating a lot of activity. -- cgit v1.2.1