summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
Diffstat (limited to 'board')
-rw-r--r--board/cr50/board.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/board/cr50/board.c b/board/cr50/board.c
index ade07be2a5..5079af1f89 100644
--- a/board/cr50/board.c
+++ b/board/cr50/board.c
@@ -473,10 +473,19 @@ static void configure_board_specific_gpios(void)
/* Enbale the input */
GWRITE_FIELD(PINMUX, DIOM3_CTL, IE, 1);
- /* Set to be edge sensitive */
- GWRITE_FIELD(PINMUX, EXITEDGE0, DIOM3, 1);
- /* Select rising edge polarity */
- GWRITE_FIELD(PINMUX, EXITINV0, DIOM3, 0);
+ /*
+ * Make plt_rst_l routed to DIOM3 a low level sensitive wake
+ * source. This way when a plt_rst_l pulse comes along while
+ * H1 is in sleep, the H1 wakes from sleep first, enabling all
+ * necessary clocks, and becomes ready to generate an
+ * interrupt on the rising edge of plt_rst_l.
+ *
+ * It takes at most 150 us to wake up, and the pulse is at
+ * least 1ms long.
+ */
+ GWRITE_FIELD(PINMUX, EXITEDGE0, DIOM3, 0);
+ GWRITE_FIELD(PINMUX, EXITINV0, DIOM3, 1);
+
/* Enable powerdown exit on DIOM3 */
GWRITE_FIELD(PINMUX, EXITEN0, DIOM3, 1);
} else {