diff --git a/src/machine/machine_atsamd51.go b/src/machine/machine_atsamd51.go index 84d8b2f0b..e27740be1 100644 --- a/src/machine/machine_atsamd51.go +++ b/src/machine/machine_atsamd51.go @@ -1974,7 +1974,7 @@ func (tcc *TCC) Set(channel uint8, value uint32) { } } -func InitUSBIO() { +func initUSB() { // Configure USB D+/D- pins. USBCDC_DM_PIN.Configure(PinConfig{Mode: PinCom}) USBCDC_DP_PIN.Configure(PinConfig{Mode: PinCom}) diff --git a/src/machine/usb-cdc.go b/src/machine/usb-cdc.go index 5e9edf7c6..f74c84185 100644 --- a/src/machine/usb-cdc.go +++ b/src/machine/usb-cdc.go @@ -7,8 +7,7 @@ import "machine/usb" var USB = &usb.CDC{} -func InitUSB(port int) { - InitUSBIO() - USB.Port = port +func InitUSB() { + initUSB() USB.Configure(usb.CDCConfig{}) } diff --git a/src/machine/usb-hid.go b/src/machine/usb-hid.go index ef1324d1f..e2b8f846a 100644 --- a/src/machine/usb-hid.go +++ b/src/machine/usb-hid.go @@ -7,8 +7,7 @@ import "machine/usb" var USB = &usb.HID{} -func InitUSB(port int) { - InitUSBIO() - USB.Port = port +func InitUSB() { + initUSB() USB.Configure(usb.HIDConfig{}) } diff --git a/src/machine/usb/dhw_atsamd51.go b/src/machine/usb/dhw_atsamd51.go index 1e9d72315..95b408abc 100644 --- a/src/machine/usb/dhw_atsamd51.go +++ b/src/machine/usb/dhw_atsamd51.go @@ -497,6 +497,9 @@ func (d *dhw) controlTransferContinue(endpoint uint8, count, total uint32) { if xfer, ok := d.ep[num][dir].activeTransfer(); ok { data, size := xfer.packetComplete(count) d.endpointTransfer(endpoint, data, size) + if size == 0 || size < xfer.maxPacketSize { + d.controlTransferComplete(endpoint, count, total) + } } } diff --git a/src/runtime/runtime_atsamd51.go b/src/runtime/runtime_atsamd51.go index e179df869..48236085b 100644 --- a/src/runtime/runtime_atsamd51.go +++ b/src/runtime/runtime_atsamd51.go @@ -33,7 +33,7 @@ func init() { // machine.USB.Configure(usb.UARTConfig{}) //} - machine.InitUSB(0) + machine.InitUSB() } func putchar(c byte) {