diff options
author | Tommy Chung <tommy.chung@quanta.corp-partner.google.com> | 2021-04-09 17:42:49 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-04-09 19:33:22 +0000 |
commit | e0405ddddaf7ed1436382fecfba9af0a4a3b0321 (patch) | |
tree | 02072d7602f0e7b37fff8cbb785c28505fb35008 /board | |
parent | 11c2b94e9a70d958a3d9c336fc870596faf75b1e (diff) | |
download | chrome-ec-e0405ddddaf7ed1436382fecfba9af0a4a3b0321.tar.gz |
kracko: Move C1 SM5803 processing to the PD_INT task
Since the SM5803 shares an interrupt line with the TCPC, allow the
PD_INT task for C1 to process interrupts for this chip. This will
ensure that any interrupts from the charger are handled at a high
priority and cannot leave the shared IRQ line low for extended periods.
(This CL aligns with CL:2803462)
BUG=none
BRANCH=dedede
TEST=On kracko, confirm charger attach to C1 works reliably.
Signed-off-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com>
Change-Id: I21622c1ca06db9b600079487053f6efdaa8cf88e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2817138
Reviewed-by: Devin Lu <Devin.Lu@quantatw.com>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/kracko/board.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/board/kracko/board.c b/board/kracko/board.c index 2d41627f9a..eeb67d29ff 100644 --- a/board/kracko/board.c +++ b/board/kracko/board.c @@ -52,6 +52,21 @@ const int usb_port_enable[USB_PORT_COUNT] = { GPIO_EN_USB_A_5V, }; +__override void board_process_pd_alert(int port) +{ + /* + * PD_INT task will process this alert, and that task is only needed on + * C1. + */ + if (port != 1) + return; + + if (gpio_get_level(GPIO_USB_C1_INT_ODL)) + return; + + sm5803_handle_interrupt(port); +} + /* C0 interrupt line shared by BC 1.2 and charger */ static void check_c0_line(void); DECLARE_DEFERRED(check_c0_line); @@ -94,7 +109,6 @@ static void notify_c1_chips(void) { schedule_deferred_pd_interrupt(1); task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12); - sm5803_interrupt(1); } static void check_c1_line(void) |