From d636d80192d87c5088ad579c57fee93c76fbf0d7 Mon Sep 17 00:00:00 2001 From: Vijay Hiremath Date: Thu, 29 Oct 2020 11:18:38 -0700 Subject: intelrvp: Keep PPC specific code generic in baseboard BUG=none BRANCH=none TEST=PPC interrupt is invoked on ADL-RVP Change-Id: Ib41be079d0d5731627193d15b66bb9949bd2722f Signed-off-by: Vijay Hiremath Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2508156 Reviewed-by: Sooraj Govindan Reviewed-by: Keith Short --- baseboard/intelrvp/baseboard.h | 2 ++ baseboard/intelrvp/chg_usb_pd_mecc_1_0.c | 2 +- board/adlrvpp_ite/board.c | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/baseboard/intelrvp/baseboard.h b/baseboard/intelrvp/baseboard.h index 63eb9f919f..280fb8c1ea 100644 --- a/baseboard/intelrvp/baseboard.h +++ b/baseboard/intelrvp/baseboard.h @@ -253,6 +253,8 @@ struct tcpc_aic_gpio_config_t { enum gpio_signal tcpc_alert; /* PPC interrupt */ enum gpio_signal ppc_alert; + /* PPC interrupt handler */ + void (*ppc_intr_handler)(int port); }; extern const struct tcpc_aic_gpio_config_t tcpc_aic_gpios[]; diff --git a/baseboard/intelrvp/chg_usb_pd_mecc_1_0.c b/baseboard/intelrvp/chg_usb_pd_mecc_1_0.c index 639e7863a9..36aaa5612f 100644 --- a/baseboard/intelrvp/chg_usb_pd_mecc_1_0.c +++ b/baseboard/intelrvp/chg_usb_pd_mecc_1_0.c @@ -82,7 +82,7 @@ void ppc_interrupt(enum gpio_signal signal) for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) { if (signal == tcpc_aic_gpios[i].ppc_alert) { - sn5s330_interrupt(i); + tcpc_aic_gpios[i].ppc_intr_handler(i); break; } } diff --git a/board/adlrvpp_ite/board.c b/board/adlrvpp_ite/board.c index 875550a51e..d5aba06089 100644 --- a/board/adlrvpp_ite/board.c +++ b/board/adlrvpp_ite/board.c @@ -112,18 +112,22 @@ const struct tcpc_aic_gpio_config_t tcpc_aic_gpios[] = { [TYPE_C_PORT_0] = { .tcpc_alert = GPIO_USBC_TCPC_ALRT_P0, .ppc_alert = GPIO_USBC_TCPC_PPC_ALRT_P0, + .ppc_intr_handler = sn5s330_interrupt, }, [TYPE_C_PORT_1] = { .tcpc_alert = GPIO_USBC_TCPC_ALRT_P1, .ppc_alert = GPIO_USBC_TCPC_PPC_ALRT_P1, + .ppc_intr_handler = sn5s330_interrupt, }, [TYPE_C_PORT_2] = { .tcpc_alert = GPIO_USBC_TCPC_ALRT_P2, .ppc_alert = GPIO_USBC_TCPC_PPC_ALRT_P2, + .ppc_intr_handler = sn5s330_interrupt, }, [TYPE_C_PORT_3] = { .tcpc_alert = GPIO_USBC_TCPC_ALRT_P3, .ppc_alert = GPIO_USBC_TCPC_PPC_ALRT_P3, + .ppc_intr_handler = sn5s330_interrupt, }, }; BUILD_ASSERT(ARRAY_SIZE(tcpc_aic_gpios) == CONFIG_USB_PD_PORT_MAX_COUNT); -- cgit v1.2.1