1# Copyright (c) 2023 Nordic Semiconductor ASA
2# SPDX-License-Identifier: Apache-2.0
3
4description: USB Audio Class 2 instance
5
6compatible: "zephyr,uac2"
7
8# Child nodes of "zephyr,uac2" compatibles are supposed to be Audio Control
9# entities, i.e. clock sources, input terminals, output terminals, etc.
10# After all Audio Control entities, the Audio Streaming interface compatibles
11# should follow (as child nodes of "zephyr,uac2").
12#
13# The only reason for putting Audio Streaming interfaces at the end is because
14# Audio Control entities derive their unique ID from child index (+ 1). For most
15# cases the order shouldn't really matter, but if there happen to be maximum
16# possible number of entities (255) then the Audio Streaming would inadvertently
17# "consume" one of the available IDs.
18
19properties:
20  full-speed:
21    type: boolean
22    description: |
23      True if this instance is allowed to operate at Full-Speed.
24
25  high-speed:
26    type: boolean
27    description: |
28      True if this instance is allowed to operate at High-Speed.
29
30  audio-function:
31    type: int
32    required: true
33    description: |
34      Constant, indicating the primary use of this audio function, as intended
35      by the manufacturer. Use Audio Function category codes define from
36      dt-bindings/usb/audio.h.
37
38  interrupt-endpoint:
39    type: boolean
40    description: |
41      Enable to support an optional interrupt endpoint to inform the Host about
42      dynamic changes that occur on the different addressable entities.
43
44  latency-control:
45    type: string
46    description: Latency Control capabilities
47    enum:
48      - "read-only"
49      - "host-programmable"
50