summaryrefslogtreecommitdiff
path: root/include/usb_charge.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/usb_charge.h')
-rw-r--r--include/usb_charge.h26
1 files changed, 18 insertions, 8 deletions
diff --git a/include/usb_charge.h b/include/usb_charge.h
index ec7a655256..135258c7cf 100644
--- a/include/usb_charge.h
+++ b/include/usb_charge.h
@@ -55,13 +55,23 @@ extern const int usb_port_enable[USB_PORT_ENABLE_COUNT];
int usb_charge_set_mode(int usb_port_id, enum usb_charge_mode mode,
enum usb_suspend_charge inhibit_charge);
-#define USB_CHG_EVENT_BC12 TASK_EVENT_CUSTOM_BIT(0)
-#define USB_CHG_EVENT_VBUS TASK_EVENT_CUSTOM_BIT(1)
-#define USB_CHG_EVENT_INTR TASK_EVENT_CUSTOM_BIT(2)
-#define USB_CHG_EVENT_DR_UFP TASK_EVENT_CUSTOM_BIT(3)
-#define USB_CHG_EVENT_DR_DFP TASK_EVENT_CUSTOM_BIT(4)
-#define USB_CHG_EVENT_CC_OPEN TASK_EVENT_CUSTOM_BIT(5)
-#define USB_CHG_EVENT_MUX TASK_EVENT_CUSTOM_BIT(6)
+#ifdef CONFIG_PLATFORM_EC_USB_CHARGER_SINGLE_TASK
+/*
+ * In single task mode we pack the event bits for up to 4 ports in a 32 bit
+ * atomic, make sure we don't define more than 8 event bits per port.
+ */
+#define USB_CHARGER_EVENT_BIT(x) BUILD_CHECK_INLINE(BIT(x), BIT(x) & 0xff)
+#else
+#define USB_CHARGER_EVENT_BIT(x) TASK_EVENT_CUSTOM_BIT(x)
+#endif
+
+#define USB_CHG_EVENT_BC12 USB_CHARGER_EVENT_BIT(0)
+#define USB_CHG_EVENT_VBUS USB_CHARGER_EVENT_BIT(1)
+#define USB_CHG_EVENT_INTR USB_CHARGER_EVENT_BIT(2)
+#define USB_CHG_EVENT_DR_UFP USB_CHARGER_EVENT_BIT(3)
+#define USB_CHG_EVENT_DR_DFP USB_CHARGER_EVENT_BIT(4)
+#define USB_CHG_EVENT_CC_OPEN USB_CHARGER_EVENT_BIT(5)
+#define USB_CHG_EVENT_MUX USB_CHARGER_EVENT_BIT(6)
/*
* Define USB_CHG_PORT_TO_TASK_ID() and TASK_ID_TO_USB_CHG_PORT() macros to
@@ -174,7 +184,7 @@ static inline int usb_charger_ramp_max(int port, int supplier, int sup_curr)
* @param port port number
* @param event event bits (USB_CHG_EVENT_*)
*/
-void usb_charger_task_set_event(int port, uint32_t event);
+void usb_charger_task_set_event(int port, uint8_t event);
/**
* Reset available BC 1.2 chargers on all ports