blob: 3cafb19a00ee76549192d1396e80759d69e57258 [file] [log] [blame]
/*
* Copyright (c) 2023 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <dt-bindings/usb/audio.h>
/ {
uac2_headset: usb_audio2 {
compatible = "zephyr,uac2";
status = "okay";
audio-function = <AUDIO_FUNCTION_HEADSET>;
uac_aclk: aclk {
compatible = "zephyr,uac2-clock-source";
clock-type = "internal-programmable";
frequency-control = "host-programmable";
sampling-frequencies = <48000>;
};
out_terminal: out_terminal {
compatible = "zephyr,uac2-input-terminal";
clock-source = <&uac_aclk>;
terminal-type = <USB_TERMINAL_STREAMING>;
front-left;
front-right;
};
headphones_output: headphones {
compatible = "zephyr,uac2-output-terminal";
data-source = <&out_terminal>;
clock-source = <&uac_aclk>;
terminal-type = <BIDIRECTIONAL_TERMINAL_HEADSET>;
assoc-terminal = <&mic_input>;
};
mic_input: microphone {
compatible = "zephyr,uac2-input-terminal";
clock-source = <&uac_aclk>;
terminal-type = <BIDIRECTIONAL_TERMINAL_HEADSET>;
/* Circular reference, macros will figure it out and
* provide correct associated terminal ID because the
* terminals associations are always 1-to-1.
*
* assoc-terminal = <&headphones_output>;
*/
front-left;
};
in_terminal: in_terminal {
compatible = "zephyr,uac2-output-terminal";
data-source = <&mic_input>;
clock-source = <&uac_aclk>;
terminal-type = <USB_TERMINAL_STREAMING>;
};
as_iso_out: out_interface {
compatible = "zephyr,uac2-audio-streaming";
linked-terminal = <&out_terminal>;
implicit-feedback;
subslot-size = <2>;
bit-resolution = <16>;
};
as_iso_in: in_interface {
compatible = "zephyr,uac2-audio-streaming";
linked-terminal = <&in_terminal>;
implicit-feedback;
subslot-size = <2>;
bit-resolution = <16>;
};
};
};