summaryrefslogtreecommitdiff
path: root/board/metaknight
diff options
context:
space:
mode:
authorYu-An Chen <yu-an.chen@quanta.corp-partner.google.com>2020-12-23 14:14:59 +0800
committerCommit Bot <commit-bot@chromium.org>2021-01-07 01:48:54 +0000
commit5c546042053944a40a449bf3f89e7235fe9935b5 (patch)
tree1a5668bf741646c3c460bb562b6f3fecfc1a6b1e /board/metaknight
parentecac3d15ea5c282f02d1844ca430383a8d9eb98b (diff)
downloadchrome-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.c14
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 */