summaryrefslogtreecommitdiff
path: root/src/tusb.c
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-09-15 16:45:41 +0700
committerhathach <[email protected]>2025-09-15 16:45:41 +0700
commit8e34ba9cf6bdcabe2c9eb73ae1aafec38d0ec46d (patch)
tree58c2426146aa5d413706a62521ab6e2cb740b170 /src/tusb.c
parent802819d271314298ea5a786a37ec6a1e65ef31d6 (diff)
parentfeef534921446e1a3ded54a0c46191fe1709bdb4 (diff)
Merge branch 'master' into fork/ennebi/mtp
Diffstat (limited to 'src/tusb.c')
-rw-r--r--src/tusb.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/tusb.c b/src/tusb.c
index 13b89997c..5a3ea356b 100644
--- a/src/tusb.c
+++ b/src/tusb.c
@@ -136,6 +136,29 @@ void tusb_int_handler(uint8_t rhport, bool in_isr) {
#endif
}
+bool tusb_deinit(uint8_t rhport) {
+ TU_VERIFY(rhport < TUP_USBIP_CONTROLLER_NUM);
+ bool ret = false;
+
+ #if CFG_TUD_ENABLED
+ if (_tusb_rhport_role[rhport] == TUSB_ROLE_DEVICE) {
+ TU_ASSERT(tud_deinit(rhport));
+ _tusb_rhport_role[rhport] = TUSB_ROLE_INVALID;
+ ret = true;
+ }
+ #endif
+
+ #if CFG_TUH_ENABLED
+ if (_tusb_rhport_role[rhport] == TUSB_ROLE_HOST) {
+ TU_ASSERT(tuh_deinit(rhport));
+ _tusb_rhport_role[rhport] = TUSB_ROLE_INVALID;
+ ret = true;
+ }
+ #endif
+
+ return ret;
+}
+
//--------------------------------------------------------------------+
// Descriptor helper
//--------------------------------------------------------------------+