machine/usb: allow USB Endpoint settings to be changed externally

This commit is contained in:
sago35
2023-08-01 20:22:30 +09:00
committed by Ron Evans
parent d1eb642d45
commit 069e4f0d98
5 changed files with 130 additions and 46 deletions
+16 -1
View File
@@ -4,6 +4,7 @@ import (
"errors"
"machine"
"machine/usb"
"machine/usb/descriptor"
)
// from usb-hid.go
@@ -32,7 +33,21 @@ var size int
// calls machine.EnableHID for USB configuration
func SetHandler(d hidDevicer) {
if size == 0 {
machine.EnableHID(handler, nil, setupHandler)
machine.ConfigureUSBEndpoint(descriptor.CDCHID,
[]usb.EndpointConfig{
{
No: usb.HID_ENDPOINT_IN,
IsIn: true,
Type: usb.ENDPOINT_TYPE_INTERRUPT,
TxHandler: handler,
},
},
[]usb.SetupConfig{
{
No: usb.HID_INTERFACE,
Handler: setupHandler,
},
})
}
devices[size] = d