diff options
-rw-r--r-- | baseboard/octopus/baseboard.h | 6 | ||||
-rw-r--r-- | baseboard/octopus/variant_usbc_standalone_tcpcs.c | 11 | ||||
-rw-r--r-- | board/bobba/board.c | 12 | ||||
-rw-r--r-- | board/bobba/ec.tasklist | 4 | ||||
-rw-r--r-- | board/fleex/board.c | 12 | ||||
-rw-r--r-- | board/fleex/ec.tasklist | 4 | ||||
-rw-r--r-- | board/meep/board.c | 12 | ||||
-rw-r--r-- | board/meep/ec.tasklist | 4 | ||||
-rw-r--r-- | board/phaser/board.c | 12 | ||||
-rw-r--r-- | board/phaser/ec.tasklist | 4 | ||||
-rw-r--r-- | board/yorp/board.c | 12 | ||||
-rw-r--r-- | board/yorp/ec.tasklist | 4 |
12 files changed, 32 insertions, 65 deletions
diff --git a/baseboard/octopus/baseboard.h b/baseboard/octopus/baseboard.h index 96b5a519e2..e8160889eb 100644 --- a/baseboard/octopus/baseboard.h +++ b/baseboard/octopus/baseboard.h @@ -252,6 +252,8 @@ #ifndef __ASSEMBLER__ +#include "gpio_signal.h" + enum power_signal { #ifdef CONFIG_POWER_S0IX X86_SLP_S0_N, /* PCH -> SLP_S0_L */ @@ -276,6 +278,10 @@ void board_reset_pd_mcu(void); void board_pd_vconn_ctrl(int port, int cc_pin, int enabled); #endif +#ifdef VARIANT_OCTOPUS_USBC_STANDALONE_TCPCS +void tcpc_alert_event(enum gpio_signal signal); +#endif + #endif /* !__ASSEMBLER__ */ #endif /* __CROS_EC_BASEBOARD_H */ diff --git a/baseboard/octopus/variant_usbc_standalone_tcpcs.c b/baseboard/octopus/variant_usbc_standalone_tcpcs.c index 1d53725151..3546b3c4cf 100644 --- a/baseboard/octopus/variant_usbc_standalone_tcpcs.c +++ b/baseboard/octopus/variant_usbc_standalone_tcpcs.c @@ -79,6 +79,17 @@ unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips); /******************************************************************************/ /* Power Delivery and charing functions */ +void tcpc_alert_event(enum gpio_signal signal) +{ + const int port = (signal == GPIO_USB_C1_MUX_INT_ODL); + + if ((signal == GPIO_USB_C1_MUX_INT_ODL) && + !gpio_get_level(GPIO_USB_C1_PD_RST_ODL)) + return; + + schedule_deferred_pd_interrupt(port); +} + void variant_tcpc_init(void) { /* Enable PPC interrupts. */ diff --git a/board/bobba/board.c b/board/bobba/board.c index 6125356343..ab51d2709f 100644 --- a/board/bobba/board.c +++ b/board/bobba/board.c @@ -44,18 +44,6 @@ #define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args) #define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args) -static void tcpc_alert_event(enum gpio_signal signal) -{ - if ((signal == GPIO_USB_C1_MUX_INT_ODL) && - !gpio_get_level(GPIO_USB_C1_PD_RST_ODL)) - return; - -#ifdef HAS_TASK_PDCMD - /* Exchange status with TCPCs */ - host_command_pd_send_status(PD_CHARGE_NO_CHANGE); -#endif -} - static void ppc_interrupt(enum gpio_signal signal) { switch (signal) { diff --git a/board/bobba/ec.tasklist b/board/bobba/ec.tasklist index 6f719b4acc..c847aa4917 100644 --- a/board/bobba/ec.tasklist +++ b/board/bobba/ec.tasklist @@ -34,4 +34,6 @@ TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) + TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) diff --git a/board/fleex/board.c b/board/fleex/board.c index 697d072f45..6cedd0cecc 100644 --- a/board/fleex/board.c +++ b/board/fleex/board.c @@ -49,18 +49,6 @@ #define USB_PD_PORT_ANX7447 0 #define USB_PD_PORT_PS8751 1 -static void tcpc_alert_event(enum gpio_signal signal) -{ - if ((signal == GPIO_USB_C1_MUX_INT_ODL) && - !gpio_get_level(GPIO_USB_C1_PD_RST_ODL)) - return; - -#ifdef HAS_TASK_PDCMD - /* Exchange status with TCPCs */ - host_command_pd_send_status(PD_CHARGE_NO_CHANGE); -#endif -} - static void ppc_interrupt(enum gpio_signal signal) { switch (signal) { diff --git a/board/fleex/ec.tasklist b/board/fleex/ec.tasklist index 6f719b4acc..c847aa4917 100644 --- a/board/fleex/ec.tasklist +++ b/board/fleex/ec.tasklist @@ -34,4 +34,6 @@ TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) + TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) diff --git a/board/meep/board.c b/board/meep/board.c index 2f0f4a825e..a89154c126 100644 --- a/board/meep/board.c +++ b/board/meep/board.c @@ -50,18 +50,6 @@ #define USB_PD_PORT_ANX7447 0 #define USB_PD_PORT_PS8751 1 -static void tcpc_alert_event(enum gpio_signal signal) -{ - if ((signal == GPIO_USB_C1_MUX_INT_ODL) && - !gpio_get_level(GPIO_USB_C1_PD_RST_ODL)) - return; - -#ifdef HAS_TASK_PDCMD - /* Exchange status with TCPCs */ - host_command_pd_send_status(PD_CHARGE_NO_CHANGE); -#endif -} - static void ppc_interrupt(enum gpio_signal signal) { switch (signal) { diff --git a/board/meep/ec.tasklist b/board/meep/ec.tasklist index 6f719b4acc..c847aa4917 100644 --- a/board/meep/ec.tasklist +++ b/board/meep/ec.tasklist @@ -34,4 +34,6 @@ TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) + TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) diff --git a/board/phaser/board.c b/board/phaser/board.c index e64e445674..4fc423c33b 100644 --- a/board/phaser/board.c +++ b/board/phaser/board.c @@ -34,18 +34,6 @@ static uint16_t sku_id; -static void tcpc_alert_event(enum gpio_signal signal) -{ - if ((signal == GPIO_USB_C1_MUX_INT_ODL) && - !gpio_get_level(GPIO_USB_C1_PD_RST_ODL)) - return; - -#ifdef HAS_TASK_PDCMD - /* Exchange status with TCPCs */ - host_command_pd_send_status(PD_CHARGE_NO_CHANGE); -#endif -} - static void ppc_interrupt(enum gpio_signal signal) { switch (signal) { diff --git a/board/phaser/ec.tasklist b/board/phaser/ec.tasklist index 6f719b4acc..c847aa4917 100644 --- a/board/phaser/ec.tasklist +++ b/board/phaser/ec.tasklist @@ -34,4 +34,6 @@ TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) + TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) diff --git a/board/yorp/board.c b/board/yorp/board.c index ffc80a923e..920bcf661b 100644 --- a/board/yorp/board.c +++ b/board/yorp/board.c @@ -45,18 +45,6 @@ #define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args) -static void tcpc_alert_event(enum gpio_signal signal) -{ - if ((signal == GPIO_USB_C1_MUX_INT_ODL) && - !gpio_get_level(GPIO_USB_C1_PD_RST_ODL)) - return; - -#ifdef HAS_TASK_PDCMD - /* Exchange status with TCPCs */ - host_command_pd_send_status(PD_CHARGE_NO_CHANGE); -#endif -} - static void ppc_interrupt(enum gpio_signal signal) { switch (signal) { diff --git a/board/yorp/ec.tasklist b/board/yorp/ec.tasklist index 6f719b4acc..c847aa4917 100644 --- a/board/yorp/ec.tasklist +++ b/board/yorp/ec.tasklist @@ -34,4 +34,6 @@ TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) + TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) |