Skip to content

Commit de728c3

Browse files
jfischer-nonashif
authored andcommitted
drivers: udc_stm32: implement driver API to get actual device speed
Implement driver API to get actual device speed. Signed-off-by: Johann Fischer <[email protected]>
1 parent c4c5f16 commit de728c3

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

drivers/usb/udc/udc_stm32.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,21 @@ static int udc_stm32_ep_dequeue(const struct device *dev,
778778
return 0;
779779
}
780780

781+
static enum udc_bus_speed udc_stm32_device_speed(const struct device *dev)
782+
{
783+
struct udc_stm32_data *priv = udc_get_private(dev);
784+
785+
if (priv->pcd.Init.speed == USBD_HS_SPEED) {
786+
return UDC_BUS_SPEED_HS;
787+
}
788+
789+
if (priv->pcd.Init.speed == USBD_FS_SPEED) {
790+
return UDC_BUS_SPEED_FS;
791+
}
792+
793+
return UDC_BUS_UNKNOWN;
794+
}
795+
781796
static const struct udc_api udc_stm32_api = {
782797
.lock = udc_stm32_lock,
783798
.unlock = udc_stm32_unlock,
@@ -794,6 +809,7 @@ static const struct udc_api udc_stm32_api = {
794809
.ep_clear_halt = udc_stm32_ep_clear_halt,
795810
.ep_enqueue = udc_stm32_ep_enqueue,
796811
.ep_dequeue = udc_stm32_ep_dequeue,
812+
.device_speed = udc_stm32_device_speed,
797813
};
798814

799815
/* ----------------- Instance/Device specific data ----------------- */

0 commit comments

Comments
 (0)