1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# 0.9.0
*March 12, 2021*
## Device Controller Driver (DCD)
### RP2040
- Fix endpoint buffer reallocation overrun problem
- Fix osal_pico queue overflow in initialization
- Fix Isochronous endpoint buffer size in transfer
- Optimize hardware endpoint struct to reduce RAM usage
- Fix enum workaround forever check for SE0 when pull up is disabled
### Sony CXD56
- Pass the correct speed on Spresense
- Fix setup processed flag
### NXP Transdimention
- Update dcd_init() to reset controller to device mode
## USB Device Driver (USBD)
- Fix issue with status zlp (`tud_control_status()`) is returned by class driver with SET/CLEAR_FEATURE for endpoint.
- Correct endpoint size check for fullspeed bulk, can be 8, 16, 32, 64
- Ack SET_INTERFACE even if it is not implemented by class driver.
## Device Class Driver
### DFU Runtime
- rename `dfu_rt()` to `dfu_runtime()` for easy reading
### CDC
- Add `tud_cdc_send_break_cb()` to support break request
- Improve CDC receive, minor behavior changes: when `tud_cdc_rx_wanted_cb()` is invoked wanted_char may not be the last byte in the fifo
### HID
- [Breaking] Add itf argument to hid API to support multiple instances, follow API has signature changes
- `tud_hid_descriptor_report_cb()`
- `tud_hid_get_report_cb()`
- `tud_hid_set_report_cb()`
- `tud_hid_boot_mode_cb()`
- `tud_hid_set_idle_cb()`
- Add report complete callback `tud_hid_report_complete_cb()` API
- Add DPad/Hat support for HID Gamepad
- `TUD_HID_REPORT_DESC_GAMEPAD()` now support 16 buttons, 2 joysticks, 1 hat/dpad
- Add `hid_gamepad_report_t` along with `GAMEPAD_BUTTON_` and `GAMEPAD_HAT_` enum
- Add Gamepad to `hid_composite` / `hid_composite_freertos` example
### MIDI
- Fix dropping MIDI sysex message when fifo is full
- Fix typo in `tud_midi_write24()`, make example less ambiguous for cable and channel
- Fix incorrect endpoint descriptor length, MIDI v1 use Audio v1 which has 9-byte endpoint descriptor (instead of 7)
## Host Controller Driver (HCD)
- Add rhport to `hcd_init()`
- Improve EHCI/OHCI driver abstraction
- Move echi/ohci files to portable/
- Rename `hcd_lpc18_43` to `hcd_transdimension`
- Sub hcd API with `hcd_ehci_init()`, `hcd_ehci_register_addr()`
- Update NXP transdimension `hcd_init()` to reset controller to host mode
- Ported hcd to rt10xx
## USB Host Driver (USBH)
- No noticeable changes to usbh
## Host Class Driver
### MSC
- Rename `tuh_msc_scsi_inquiry()` to `tuh_msc_inquiry()`
- Rename `tuh_msc_mounted_cb()`/`tuh_msc_unmounted_cb()` to `tuh_msc_mount_cb()`/`tuh_msc_unmount_cb()` to match device stack naming
- Change `tuh_msc_is_busy()` to `tuh_msc_ready()`
- Add read10 and write10 function: `tuh_msc_read10()`, `tuh_msc_write10()`
- Read_Capacity is invoked as part of enumeration process
- Add `tuh_msc_get_block_count()`, `tuh_msc_get_block_size()`
- Add `CFG_TUH_MSC_MAXLUN` (default to 4) to hold lun capacities
## Others
- Add basic support for rt-thread OS
- Change zero bitfield length to more explicit padding
- Build example now fetch required submodules on the fly while running `make` without prior submodule init for mcu drivers
- Update pico-sdk to v1.1.0
### New Boards
- Microchip SAM E54 Xplained Pro
- LPCXpresso 55s28
- LPCXpresso 18s37
## Contributors
Thanks to everyone who contributed to this release: @amitv87, @duddie, @hathach, @HiFiPhile, @homeodor, @ipopov, @jgressmann, @kamtom480, @liamfraser, @lurch, @majbthrd, @ndinsmore, @tfx2001, @xmos-jmccarthy.
|