summaryrefslogtreecommitdiff
path: root/tinyusb/common
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb/common')
-rw-r--r--tinyusb/common/tusb_types.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/tinyusb/common/tusb_types.h b/tinyusb/common/tusb_types.h
index c8dd849e0..2e3cf513d 100644
--- a/tinyusb/common/tusb_types.h
+++ b/tinyusb/common/tusb_types.h
@@ -213,6 +213,22 @@ static inline uint8_t std_class_code_to_index(uint8_t std_class_code)
(std_class_code == TUSB_CLASS_VENDOR_SPECIFIC ) ? TUSB_CLASS_MAPPED_INDEX_START + 4 : 0;
}
+// Get direction from Endpoint address
+static inline tusb_dir_t edpt_dir(uint8_t addr)
+{
+ return (addr & TUSB_DIR_IN_MASK) ? TUSB_DIR_IN : TUSB_DIR_OUT;
+}
+
+// Get Endpoint number from address
+static inline uint8_t edpt_number(uint8_t addr)
+{
+ return addr & (~TUSB_DIR_IN_MASK);
+}
+
+static inline uint8_t edpt_addr(uint8_t num, tusb_dir_t dir)
+{
+ return num | (dir == TUSB_DIR_IN ? TUSB_DIR_IN_MASK : 0);
+}
#ifdef __cplusplus
}