summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--baseboard/octopus/baseboard.h6
-rw-r--r--baseboard/octopus/variant_usbc_standalone_tcpcs.c11
-rw-r--r--board/bobba/board.c12
-rw-r--r--board/bobba/ec.tasklist4
-rw-r--r--board/fleex/board.c12
-rw-r--r--board/fleex/ec.tasklist4
-rw-r--r--board/meep/board.c12
-rw-r--r--board/meep/ec.tasklist4
-rw-r--r--board/phaser/board.c12
-rw-r--r--board/phaser/ec.tasklist4
-rw-r--r--board/yorp/board.c12
-rw-r--r--board/yorp/ec.tasklist4
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)