summaryrefslogtreecommitdiff
path: root/board/cr50/board.h
diff options
context:
space:
mode:
authorNamyoon Woo <namyoon@google.com>2020-03-21 21:17:28 -0700
committerCommit Bot <commit-bot@chromium.org>2020-05-29 22:10:40 +0000
commit57e170c71339961ea0d411e3ffa7c6d8e50c8ea3 (patch)
tree49bd4552be471158c6b0619951836e66d9c62f7d /board/cr50/board.h
parent39e05180c806091fa3b34ba719813d8eba57e474 (diff)
downloadchrome-ec-57e170c71339961ea0d411e3ffa7c6d8e50c8ea3.tar.gz
Use a long pulse of INT_AP_L for SPS
This patch adds a feature to extend each level of GPIO_INT_AP_L at least for 100 microseconds. The assertion (low GPIO_INT_AP_L) duration might be shorter only if AP asserts a SPS CS before INT_AP_L deassertion, because it means means AP recognized GPIO_INT_AP_L assertion already. This patch increases the flash usage by 280 bytes. BUG=b:148691139 TEST=None Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: Ie74b236bc5352e9fc21fe600c12946e50955160a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2114430 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org>
Diffstat (limited to 'board/cr50/board.h')
-rw-r--r--board/cr50/board.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/board/cr50/board.h b/board/cr50/board.h
index 540f4c622d..ea0ac15dae 100644
--- a/board/cr50/board.h
+++ b/board/cr50/board.h
@@ -366,6 +366,27 @@ int ec_is_on(void);
int ec_is_rx_allowed(void);
int servo_is_connected(void);
+/*
+ * Assert INT_AP_L to acknowledge AP that cr50 is ready for next TPM command.
+ * NOTE: must be called by ISR only.
+ *
+ * Returns 1 if it successfully asserted (or scheduled to assert), or
+ * 0 if the extended long pulse was disabled.
+ */
+int assert_int_ap(void);
+
+/*
+ * Deassert INT_AP_L immediately.
+ * NOTE: must be called by ISR only.
+ */
+void deassert_int_ap(void);
+
+/* Register a function that should be called when INT_AP_L extension starts. */
+void int_ap_register(void (*func_enable)(void));
+
+void int_ap_extension_enable(void);
+void int_ap_extension_stop_pulse(void);
+
/* Moving from legacy versions might require NVMEM transition. */
int board_nvmem_legacy_check_needed(void);