summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWilliam D. Jones <[email protected]>2019-10-01 23:28:41 -0400
committerWilliam D. Jones <[email protected]>2019-10-01 23:28:41 -0400
commit54478aaa2a57e62f946581f492da5792741116f9 (patch)
tree287c0b388083373943a36d3f3609141c973fde3b /src
parentfad44c03c874ad5b278e41ab842e2fb36134ad2a (diff)
dcd_msp430x5xx: Add STALL support for nonzero endpoints.
Diffstat (limited to 'src')
-rw-r--r--src/portable/ti/msp430x5xx/dcd_msp430x5xx.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
index 121dd03ac..5202f156a 100644
--- a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
+++ b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
@@ -346,6 +346,11 @@ void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr)
USBIEPCNF_0 |= STALL;
}
}
+ else
+ {
+ ep_regs_t ep_regs = EP_REGS(epnum, dir);
+ ep_regs[CNF] |= STALL;
+ }
}
void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr)
@@ -366,6 +371,13 @@ void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr)
USBIEPCNT_0 &= ~STALL;
}
}
+ else
+ {
+ ep_regs_t ep_regs = EP_REGS(epnum, dir);
+ // Required by USB spec to reset DATA toggle bit to DATA0 on interrupt
+ // and bulk endpoints.
+ ep_regs[CNF] &= ~(STALL + TOGGLE);
+ }
}
/*------------------------------------------------------------------*/