diff options
author | reno.wang <reno.wang@lcfc.corp-partner.google.com> | 2021-10-29 16:09:44 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-12-07 03:21:22 +0000 |
commit | c177357355cdee23c897960068d492fc465d22fe (patch) | |
tree | c15ca34b9ee3250f3f112452a91471a600b77cfa /board/phaser | |
parent | e508ff8f31477e09317b72d1337236c55210b2b8 (diff) | |
download | chrome-ec-c177357355cdee23c897960068d492fc465d22fe.tar.gz |
phaser: 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:203442963
BRANCH=None
TEST=make -j BOARD=taeko, KSxx keep 3.3V under DC mode after calling
system_hibernate().
Signed-off-by: reno.wang <reno.wang@lcfc.corp-partner.google.com>
Change-Id: I44a99f9df22e6d21729540507b1947e12cc3189d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3252568
Reviewed-by: Henry Sun <henrysun@google.com>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'board/phaser')
-rw-r--r-- | board/phaser/board.c | 5 | ||||
-rw-r--r-- | board/phaser/board.h | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/board/phaser/board.c b/board/phaser/board.c index 488880c1fc..875e61dfe6 100644 --- a/board/phaser/board.c +++ b/board/phaser/board.c @@ -247,6 +247,11 @@ static void cbi_init(void) } DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1); +void board_hibernate_late(void) +{ + NPCX_KBSINPU = 0x0A; +} + /* This callback disables keyboard when convertibles are fully open */ __override void lid_angle_peripheral_enable(int enable) { diff --git a/board/phaser/board.h b/board/phaser/board.h index 443dbf37c1..a03782b245 100644 --- a/board/phaser/board.h +++ b/board/phaser/board.h @@ -13,6 +13,20 @@ #define VARIANT_OCTOPUS_CHARGER_ISL9238 #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 + #define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_L_PGOOD #define CONFIG_VOLUME_BUTTONS |