diff options
author | Namyoon Woo <namyoon@google.com> | 2020-03-21 21:17:28 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-05-29 22:10:40 +0000 |
commit | 57e170c71339961ea0d411e3ffa7c6d8e50c8ea3 (patch) | |
tree | 49bd4552be471158c6b0619951836e66d9c62f7d /board/cr50/board.h | |
parent | 39e05180c806091fa3b34ba719813d8eba57e474 (diff) | |
download | chrome-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.h | 21 |
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); |