usb: Begun implementing support into the USB device machinary for BOS descriptors

This commit is contained in:
dragonmux
2022-08-11 07:11:48 +01:00
committed by Piotr Esden-Tempski
parent 1d97cbf6e1
commit 60ff345798
14 changed files with 21 additions and 5 deletions

View File

@@ -23,6 +23,7 @@
#include <libopencm3/stm32/tools.h> #include <libopencm3/stm32/tools.h>
#include <libopencm3/stm32/st_usbfs.h> #include <libopencm3/stm32/st_usbfs.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include "../../usb/usb_private.h" #include "../../usb/usb_private.h"
#include "st_usbfs_core.h" #include "st_usbfs_core.h"

View File

@@ -22,6 +22,7 @@
#include <libopencm3/stm32/tools.h> #include <libopencm3/stm32/tools.h>
#include <libopencm3/stm32/st_usbfs.h> #include <libopencm3/stm32/st_usbfs.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include "../usb/usb_private.h" #include "../usb/usb_private.h"
#include "common/st_usbfs_core.h" #include "common/st_usbfs_core.h"

View File

@@ -23,6 +23,7 @@
#include <libopencm3/stm32/tools.h> #include <libopencm3/stm32/tools.h>
#include <libopencm3/stm32/st_usbfs.h> #include <libopencm3/stm32/st_usbfs.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include "../usb/usb_private.h" #include "../usb/usb_private.h"
#include "common/st_usbfs_core.h" #include "common/st_usbfs_core.h"

View File

@@ -37,6 +37,7 @@ LGPL License Terms @ref lgpl_license
#include <string.h> #include <string.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include "usb_private.h" #include "usb_private.h"
usbd_device *usbd_init(const usbd_driver *driver, usbd_device *usbd_init(const usbd_driver *driver,
@@ -110,6 +111,11 @@ void usbd_register_extra_string(usbd_device *usbd_dev, int index, const char* st
} }
} }
void usbd_register_bos_descriptor(usbd_device *const usbd_dev, const usb_bos_descriptor *const bos)
{
usbd_dev->bos = bos;
}
void _usbd_reset(usbd_device *usbd_dev) void _usbd_reset(usbd_device *usbd_dev)
{ {
usbd_dev->current_address = 0; usbd_dev->current_address = 0;
@@ -171,4 +177,3 @@ void usbd_ep_nak_set(usbd_device *usbd_dev, uint8_t addr, uint8_t nak)
} }
/**@}*/ /**@}*/

View File

@@ -37,6 +37,7 @@ LGPL License Terms @ref lgpl_license
#include <stdlib.h> #include <stdlib.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include "usb_private.h" #include "usb_private.h"
/* /*
@@ -313,4 +314,3 @@ void _usbd_control_in(usbd_device *usbd_dev, uint8_t ea)
stall_transaction(usbd_dev); stall_transaction(usbd_dev);
} }
} }

View File

@@ -20,6 +20,7 @@
#include <string.h> #include <string.h>
#include <libopencm3/cm3/common.h> #include <libopencm3/cm3/common.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include <libopencm3/usb/dwc/otg_common.h> #include <libopencm3/usb/dwc/otg_common.h>
#include "usb_private.h" #include "usb_private.h"
#include "usb_dwc_common.h" #include "usb_dwc_common.h"

View File

@@ -30,6 +30,7 @@
#include <libopencm3/efm32/cmu.h> #include <libopencm3/efm32/cmu.h>
#include <libopencm3/efm32/usb.h> #include <libopencm3/efm32/usb.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include "usb_private.h" #include "usb_private.h"
/**@{*/ /**@{*/
@@ -433,4 +434,4 @@ const struct _usbd_driver efm32lg_usb_driver = {
.rx_fifo_size = RX_FIFO_SIZE, .rx_fifo_size = RX_FIFO_SIZE,
}; };
/**@}*/ /**@}*/

View File

@@ -34,6 +34,7 @@
#include <libopencm3/efm32/cmu.h> #include <libopencm3/efm32/cmu.h>
#include <libopencm3/efm32/usb.h> #include <libopencm3/efm32/usb.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include <libopencm3/usb/dwc/otg_fs.h> #include <libopencm3/usb/dwc/otg_fs.h>
#include "usb_private.h" #include "usb_private.h"
#include "usb_dwc_common.h" #include "usb_dwc_common.h"
@@ -137,4 +138,4 @@ const struct _usbd_driver efm32hg_usb_driver = {
.rx_fifo_size = RX_FIFO_SIZE, .rx_fifo_size = RX_FIFO_SIZE,
}; };
/**@}*/ /**@}*/

View File

@@ -22,6 +22,7 @@
#include <libopencm3/stm32/tools.h> #include <libopencm3/stm32/tools.h>
#include <libopencm3/stm32/rcc.h> #include <libopencm3/stm32/rcc.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include <libopencm3/usb/dwc/otg_fs.h> #include <libopencm3/usb/dwc/otg_fs.h>
#include "usb_private.h" #include "usb_private.h"
#include "usb_dwc_common.h" #include "usb_dwc_common.h"

View File

@@ -22,6 +22,7 @@
#include <libopencm3/stm32/tools.h> #include <libopencm3/stm32/tools.h>
#include <libopencm3/stm32/rcc.h> #include <libopencm3/stm32/rcc.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include <libopencm3/usb/dwc/otg_hs.h> #include <libopencm3/usb/dwc/otg_hs.h>
#include "usb_private.h" #include "usb_private.h"
#include "usb_dwc_common.h" #include "usb_dwc_common.h"

View File

@@ -103,6 +103,7 @@
#include <libopencm3/lm4f/usb.h> #include <libopencm3/lm4f/usb.h>
#include <libopencm3/lm4f/rcc.h> #include <libopencm3/lm4f/rcc.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include "../../lib/usb/usb_private.h" #include "../../lib/usb/usb_private.h"
#include <stdbool.h> #include <stdbool.h>

View File

@@ -23,6 +23,7 @@
#include <string.h> #include <string.h>
#include <libopencm3/cm3/common.h> #include <libopencm3/cm3/common.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include <libopencm3/usb/msc.h> #include <libopencm3/usb/msc.h>
#include "usb_private.h" #include "usb_private.h"

View File

@@ -47,6 +47,7 @@ LGPL License Terms @ref lgpl_license
struct _usbd_device { struct _usbd_device {
const struct usb_device_descriptor *desc; const struct usb_device_descriptor *desc;
const struct usb_config_descriptor *config; const struct usb_config_descriptor *config;
const usb_bos_descriptor *bos;
const char * const *strings; const char * const *strings;
int num_strings; int num_strings;
@@ -164,4 +165,3 @@ struct _usbd_driver {
}; };
#endif #endif

View File

@@ -37,6 +37,7 @@ LGPL License Terms @ref lgpl_license
#include <string.h> #include <string.h>
#include <libopencm3/usb/usbd.h> #include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/bos.h>
#include "usb_private.h" #include "usb_private.h"
int usbd_register_set_config_callback(usbd_device *usbd_dev, int usbd_register_set_config_callback(usbd_device *usbd_dev,