summaryrefslogtreecommitdiff
path: root/board/kracko
diff options
context:
space:
mode:
authorTommy Chung <tommy.chung@quanta.corp-partner.google.com>2021-04-09 17:42:49 +0800
committerCommit Bot <commit-bot@chromium.org>2021-04-09 19:33:22 +0000
commite0405ddddaf7ed1436382fecfba9af0a4a3b0321 (patch)
tree02072d7602f0e7b37fff8cbb785c28505fb35008 /board/kracko
parent11c2b94e9a70d958a3d9c336fc870596faf75b1e (diff)
downloadchrome-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/kracko')
-rw-r--r--board/kracko/board.c16
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)