summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--baseboard/intelrvp/baseboard.h2
-rw-r--r--baseboard/intelrvp/chg_usb_pd_mecc_1_0.c2
-rw-r--r--board/adlrvpp_ite/board.c4
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);