Commit Graph

7 Commits

Author SHA1 Message Date
Tomasz Moń
7c7383cabf tests: usb: uac2: Test Feature Unit descriptor
Insert Feature Units in between:
  * USB Streaming Input Terminal and Headphones Output Terminal
  * Microphone Input Terminal and USB Streaming Output Terminal

The Feature Units have Mute control only on the Primary channel 0.
The headphones Feature Unit also has Automatic Gain control on all
channels while microphone Feature Unit has Automatic Gain control only
on the Logichal channel 1.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-10-15 19:03:49 +01:00
Tomasz Moń
7282e4ee3d tests: usb: uac2: test High-Speed only instance
Add and verify against reference descriptors a High-Speed only 192 kHz
24-bit stereo headphones with explicit feedback UAC2 instance.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-09-10 14:41:32 +01:00
Tomasz Moń
dd4ec82477 tests: usb: uac2: test High-Speed descriptor macros
Generate and test both Full-Speed and High-Speed descriptors against
reference values. Verify that IAD, interface and endpoint descriptors
are not shared between Full-Speed and High-Speed descriptor sets because
the number of non-UAC2 interfaces can be different at different speeds
and thus the assigned interface numbers and endpoint numbers can differ.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-09-10 14:41:32 +01:00
Tomasz Moń
de8710bf46 usb: device_next: uac2: Handle speed properties
Generate full and high speed descriptors based on UAC2 instance
properties. Fail the build if an instance does not have speed properties
or if the instance with given speed property exceeds the bandwidth
available at the selected speed.

Remove obsolete no longer used macros to determine offsets inside
complete UAC2 descriptors blob. Only speed-specific descriptors arrays
are supported.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-09-10 14:41:32 +01:00
Tomasz Moń
52ce527c81 usb: device_next: uac2: add descriptor sets macros
Add necessary macros and convert UAC2 descriptor test from descriptor
blob to descriptor set. Currently there is only Full-Speed descriptor
set.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-04-22 06:51:22 -07:00
Tomasz Moń
3e7368829b usb: device_next: uac2: interface descriptor macros
Add macros to initialize full set of descriptors required for USB Audio
Class 2 instance. Descriptors start with Interface Association
Descriptor that binds together the AudioControl interface and all
AudioStreaming interfaces.

AudioStreaming interfaces have alternate setting 0 without any endpoints
and alternate setting 1 with isochronous endpoint with max packet size
calculated on maximum sample frequency, number of channels, subslot size
and clock synchronization (asynchronous endpoints require +1 sample).

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2023-12-15 14:24:44 +01:00
Tomasz Moń
a825147d0c tests: usb: uac2: test descriptor macros
Compare devicetree generated class specific descriptors for headset
example against reference hex values.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2023-12-15 14:24:44 +01:00