usb: make usb_disconnect() weak
usb_disconnect() is board/platform specific for chips that don't have built-in handling for this. Allow the application to provide its own version of usb_disconnect() to handle this. See https://github.com/libopencm3/libopencm3/pull/924
This commit is contained in:
parent
343cff4675
commit
ebcf197810
@ -160,7 +160,12 @@ extern void usbd_register_set_altsetting_callback(usbd_device *usbd_dev,
|
|||||||
/* Functions to be provided by the hardware abstraction layer */
|
/* Functions to be provided by the hardware abstraction layer */
|
||||||
extern void usbd_poll(usbd_device *usbd_dev);
|
extern void usbd_poll(usbd_device *usbd_dev);
|
||||||
|
|
||||||
/** Disconnect, if supported by the driver */
|
/** Disconnect, if supported by the driver
|
||||||
|
*
|
||||||
|
* This function is implemented as weak function and can be replaced by an
|
||||||
|
* application specific version to handle chips that don't have built-in
|
||||||
|
* handling for this (e.g. STM32F1.)
|
||||||
|
*/
|
||||||
extern void usbd_disconnect(usbd_device *usbd_dev, bool disconnected);
|
extern void usbd_disconnect(usbd_device *usbd_dev, bool disconnected);
|
||||||
|
|
||||||
/** Setup an endpoint
|
/** Setup an endpoint
|
||||||
|
@ -112,7 +112,8 @@ void usbd_poll(usbd_device *usbd_dev)
|
|||||||
usbd_dev->driver->poll(usbd_dev);
|
usbd_dev->driver->poll(usbd_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
void usbd_disconnect(usbd_device *usbd_dev, bool disconnected)
|
__attribute__((weak)) void usbd_disconnect(usbd_device *usbd_dev,
|
||||||
|
bool disconnected)
|
||||||
{
|
{
|
||||||
/* not all drivers support disconnection */
|
/* not all drivers support disconnection */
|
||||||
if (usbd_dev->driver->disconnect) {
|
if (usbd_dev->driver->disconnect) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user