diff options
-rw-r--r-- | baseboard/intelrvp/baseboard.h | 2 | ||||
-rw-r--r-- | baseboard/intelrvp/chg_usb_pd_mecc_1_0.c | 2 | ||||
-rw-r--r-- | board/adlrvpp_ite/board.c | 4 |
3 files changed, 7 insertions, 1 deletions
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); |