mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2025-04-21 12:27:27 +03:00
atusb/fw/usb/: enable MCU reset on USB bus reset after config selection
This way the host can reset the MCU if it's hung (for example, in the panic loop) and we don't need to unplug-replug.
This commit is contained in:
@@ -247,6 +247,12 @@ void usb_reset(void)
|
||||
}
|
||||
|
||||
|
||||
void usb_enable_bus_reset(void)
|
||||
{
|
||||
UDCON |= 1 << RSTCPU; /* reset CPU on bus reset */
|
||||
}
|
||||
|
||||
|
||||
void usb_init(void)
|
||||
{
|
||||
USBCON |= 1 << FRZCLK; /* freeze the clock */
|
||||
@@ -263,7 +269,6 @@ void usb_init(void)
|
||||
|
||||
UDCON &= ~(1 << DETACH); /* attach the pull-up */
|
||||
UDIEN = 1 << EORSTE; /* enable device interrupts */
|
||||
// UDCON |= 1 << RSTCPU; /* reset CPU on bus reset */
|
||||
|
||||
ep_init();
|
||||
}
|
||||
|
||||
@@ -118,6 +118,7 @@ bool handle_setup(const struct setup_request *setup)
|
||||
case TO_DEVICE(SET_CONFIGURATION):
|
||||
if (setup->wValue != config_descriptor[5])
|
||||
return 0;
|
||||
usb_enable_bus_reset();
|
||||
break;
|
||||
|
||||
/*
|
||||
|
||||
@@ -153,6 +153,7 @@ bool handle_setup(const struct setup_request *setup);
|
||||
void set_addr(uint8_t addr);
|
||||
void usb_ep_change(struct ep_descr *ep);
|
||||
void usb_reset(void);
|
||||
void usb_enable_bus_reset(void);
|
||||
void usb_init(void);
|
||||
|
||||
#endif /* !USB_H */
|
||||
|
||||
Reference in New Issue
Block a user