summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2020-07-16 16:12:21 +0700
committerhathach <[email protected]>2020-07-16 16:12:21 +0700
commit0517f4a2f1d7e115cabab7c850463f1836a35a05 (patch)
tree2e82d4c97dc32d88b368e7e25d8c8d326717d1d6 /src
parent5ca748a68e01deec929e846b7263cf736bf891fb (diff)
dcd tdi report link speed on reset
Diffstat (limited to 'src')
-rw-r--r--src/portable/nxp/transdimension/dcd_transdimension.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/portable/nxp/transdimension/dcd_transdimension.c b/src/portable/nxp/transdimension/dcd_transdimension.c
index 68cf145ea..46751cf5d 100644
--- a/src/portable/nxp/transdimension/dcd_transdimension.c
+++ b/src/portable/nxp/transdimension/dcd_transdimension.c
@@ -82,11 +82,14 @@ enum {
};
// PORTSC1
+#define PORTSC1_PORT_SPEED_POS 26
+
enum {
PORTSC1_CURRENT_CONNECT_STATUS = TU_BIT(0),
PORTSC1_FORCE_PORT_RESUME = TU_BIT(6),
PORTSC1_SUSPEND = TU_BIT(7),
PORTSC1_FORCE_FULL_SPEED = TU_BIT(24),
+ PORTSC1_PORT_SPEED = TU_BIT(26) | TU_BIT(27)
};
// OTGSC
@@ -512,7 +515,8 @@ void dcd_int_handler(uint8_t rhport)
if (int_status & INTR_RESET)
{
bus_reset(rhport);
- dcd_event_bus_signal(rhport, DCD_EVENT_BUS_RESET, true);
+ uint32_t speed = (dcd_reg->PORTSC1 & PORTSC1_PORT_SPEED) >> PORTSC1_PORT_SPEED_POS;
+ dcd_event_bus_reset(rhport, (tusb_speed_t) speed, true);
}
if (int_status & INTR_SUSPEND)