summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2025-11-24 20:34:58 +0800
committersakumisu <[email protected]>2025-11-25 14:18:36 +0800
commitaf519ac42ca731da8955f562cb34ad8b6ecb06ff (patch)
tree76d1dffa6c0b69bdc8a1e26c2cf0979a50b0802a
parentc34cbc5bfbc91bc7a75c9316d2caececd064cae8 (diff)
feat(class): support more match flags for cdc acm & rndis
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--class/cdc/usbh_cdc_acm.c15
-rw-r--r--class/wireless/usbh_rndis.c9
2 files changed, 21 insertions, 3 deletions
diff --git a/class/cdc/usbh_cdc_acm.c b/class/cdc/usbh_cdc_acm.c
index 2fc54eed..3adf189b 100644
--- a/class/cdc/usbh_cdc_acm.c
+++ b/class/cdc/usbh_cdc_acm.c
@@ -266,11 +266,20 @@ const struct usbh_class_driver cdc_data_class_driver = {
.disconnect = usbh_cdc_data_disconnect
};
-CLASS_INFO_DEFINE const struct usbh_class_info cdc_acm_class_info = {
- .match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS,
+CLASS_INFO_DEFINE const struct usbh_class_info cdc_acm_none_class_info = {
+ .match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL,
.bInterfaceClass = USB_DEVICE_CLASS_CDC,
.bInterfaceSubClass = CDC_ABSTRACT_CONTROL_MODEL,
- .bInterfaceProtocol = 0x00,
+ .bInterfaceProtocol = CDC_COMMON_PROTOCOL_NONE,
+ .id_table = NULL,
+ .class_driver = &cdc_acm_class_driver
+};
+
+CLASS_INFO_DEFINE const struct usbh_class_info cdc_acm_at_class_info = {
+ .match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL,
+ .bInterfaceClass = USB_DEVICE_CLASS_CDC,
+ .bInterfaceSubClass = CDC_ABSTRACT_CONTROL_MODEL,
+ .bInterfaceProtocol = CDC_COMMON_PROTOCOL_AT_COMMANDS,
.id_table = NULL,
.class_driver = &cdc_acm_class_driver
};
diff --git a/class/wireless/usbh_rndis.c b/class/wireless/usbh_rndis.c
index cb00651f..b39cb470 100644
--- a/class/wireless/usbh_rndis.c
+++ b/class/wireless/usbh_rndis.c
@@ -602,3 +602,12 @@ CLASS_INFO_DEFINE const struct usbh_class_info rndis_class_info = {
.id_table = NULL,
.class_driver = &rndis_class_driver
};
+
+CLASS_INFO_DEFINE const struct usbh_class_info rndis_cdcacm_class_info = {
+ .match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL,
+ .bInterfaceClass = USB_DEVICE_CLASS_CDC,
+ .bInterfaceSubClass = CDC_ABSTRACT_CONTROL_MODEL,
+ .bInterfaceProtocol = 0xff,
+ .id_table = NULL,
+ .class_driver = &rndis_class_driver
+};