diff options
Diffstat (limited to 'tinyusb/common')
| -rw-r--r-- | tinyusb/common/tusb_types.h | 16 |
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
}
|
