diff options
author | Yu-An Chen <yu-an.chen@quanta.corp-partner.google.com> | 2020-12-23 14:14:59 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-01-07 01:48:54 +0000 |
commit | 5c546042053944a40a449bf3f89e7235fe9935b5 (patch) | |
tree | 1a5668bf741646c3c460bb562b6f3fecfc1a6b1e /board/metaknight | |
parent | ecac3d15ea5c282f02d1844ca430383a8d9eb98b (diff) | |
download | chrome-ec-5c546042053944a40a449bf3f89e7235fe9935b5.tar.gz |
Metaknight: Modify pen charge behavior
Disable pen charge when system in S5/G3.
BUG=b:176202016
BRANCH=master
TEST=make BOARD=metaknight
TEST=make BOARD=metaknight_legacy
TEST=check EC console ,works as expected.
Signed-off-by: yu-an.chen@quanta.corp-partner.google.com
Change-Id: I156961a54364f4e04b71e269218ca37a1bf4520a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2600808
Tested-by: Yu-An Chen <yu-an.chen@quanta.corp-partner.google.com>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Auto-Submit: Yu-An Chen <yu-an.chen@quanta.corp-partner.google.com>
Diffstat (limited to 'board/metaknight')
-rw-r--r-- | board/metaknight/board.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/board/metaknight/board.c b/board/metaknight/board.c index 4925b6e9e8..c9a47dd33e 100644 --- a/board/metaknight/board.c +++ b/board/metaknight/board.c @@ -144,14 +144,15 @@ static void sub_hdmi_hpd_interrupt(enum gpio_signal s) */ static void pen_input_deferred(void) { - int pen_exist = !gpio_get_level(GPIO_PEN_DET_ODL); + int pen_charge_enable = !gpio_get_level(GPIO_PEN_DET_ODL) && + !chipset_in_state(CHIPSET_STATE_ANY_OFF); - if (pen_exist) + if (pen_charge_enable) gpio_set_level(GPIO_EN_PP3300_PEN, 1); else gpio_set_level(GPIO_EN_PP3300_PEN, 0); - CPRINTS("Pen charge %sable", pen_exist ? "en" : "dis"); + CPRINTS("Pen charge %sable", pen_charge_enable ? "en" : "dis"); } DECLARE_DEFERRED(pen_input_deferred); @@ -161,6 +162,13 @@ void pen_input_interrupt(enum gpio_signal signal) hook_call_deferred(&pen_input_deferred_data, (100 * MSEC)); } +static void pen_charge_check(void) +{ + hook_call_deferred(&pen_input_deferred_data, (100 * MSEC)); +} +DECLARE_HOOK(HOOK_CHIPSET_STARTUP, pen_charge_check, HOOK_PRIO_LAST); +DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, pen_charge_check, HOOK_PRIO_LAST); + #include "gpio_list.h" /* ADC channels */ |