-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
usb: USB Audio class implementation #21526
usb: USB Audio class implementation #21526
Conversation
Great to see this work-in-progress!
|
There is plan for this, but I've started with basics.
There is idea to use Kconfig for feature unit associated with headphones (Feature Unit) to choose what should be supported. This commit in this PR. This will be reworked in more elegant way using COND_CODE_1
I will have a look, thanks! |
f8867fc
to
0ce0cf8
Compare
7bede92
to
b0a3964
Compare
All checks are passing now. checkpatch (informational only, not a failure)
Tip: The bot edits this comment instead of posting a new one, so you can check the comment's history to see earlier messages. |
1b567d9
to
41780b7
Compare
261e5d1
to
fc79edf
Compare
b1ba354
to
e42f9b4
Compare
Updated with @jfischer-phytec-iot comments (please revisit) and rebased. |
By this commit exception for ISO endpoints is made when it comes to its size. ISO endpoint buffer size for nrf devices is 1023 and may be configured with variable length size. NRFX checks is size is chosen accordingly and it is no reason to do it in SHIM. Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
This commit updates definitions to better match usb 2.0 spec. Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
This commit adds enumeration type for isochronous endpoints specific information required by USB Audio Class. Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
This commit adds files related to USB audio device class. Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
This commit adds support for receiveing data from ISO OUT endpoint for NRF devices. NRF USB IP core does not generate IRQ when data are received on ISO OUT endpoint and it must be synchronized with SOF event. Enable SOF handling by default if usb audio is configured with NRF devices. Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
By this commit USB audio class implementation is introduced to Zephyr. The Zephyr USB audio device class follows bellow documentations: - Universal Serial Bus specification rev2.0 (usb20.pdf) - Universal Serial Bus Device Class Definition for Audio Devices (audio10.pdf) - Universal Serial Bus Device Class Definition for Audio Data Formats (frmts10.pdf) - Universal Serial Bus Device Class Definition for Terminal Types (termt10.pdf) Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
This commit adds USB audio sample for Zephyr project. The sample configures two devices: - Microphone (2 channels, Fs=48kHz, PCM format) - Headphones (2 channels, Fs=48kHz, PCM format) Input data stream is passed to output data stream. For more details refer to README.rst. Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
This commit adds USB audio sample to the Zephyr project. The sample configures one I/O device: - Headset (2 channels, Fs=48kHz, PCM format) Input data sstream is passed to output data stream. For more details refer to README.rst. Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice work Emil, thanks!
Well done! Great work. |
Tested on nRF52840 only, may not work for other platforms.
Two sample apps attached:
-> headphones + microphone
-> headset
Both apps perform loopback. See README.rst for details.
Fixes: #12775
Blocked by: #24735