summaryrefslogtreecommitdiff
path: root/chip/g/rbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/g/rbox.c')
-rw-r--r--chip/g/rbox.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/chip/g/rbox.c b/chip/g/rbox.c
index 005ed547c1..6399f0b612 100644
--- a/chip/g/rbox.c
+++ b/chip/g/rbox.c
@@ -62,6 +62,18 @@ static void rbox_release_ec_reset(void)
GREG32(PINMUX, HOLD) = 0;
/*
+ * If the board uses closed loop reset, the short EC_RST_L pulse may
+ * not actually put the system in reset. Don't release EC_RST_L here.
+ * Let ap_state.c handle it once it sees the system is reset.
+ *
+ * Release PINMUX HOLD, so the board can detect changes on TPM_RST_L.
+ */
+ if (!(system_get_reset_flags() & RESET_FLAG_HIBERNATE) &&
+ board_uses_closed_loop_reset()) {
+ return;
+ }
+
+ /*
* After a POR, if the power button is held, then delay releasing
* EC_RST_L.
*/