# Copyright (c) 2020 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

# Specific fields for USB audio headset.

description: USB Audio headset specific fields.

compatible: "usb-audio-hs"

include: usb-audio.yaml

properties:
  mic-resolution:
    type: int
    default: 16
    required: false
    enum:
     - 8
     - 16
     - 24
     - 32
  mic-sync-type:
    required: false
    default: "Synchronous"
    type: string
    description: Type of endpoint synchronization for IN devices.
                 Default value is Sychronous.
                 Adaptive is not supported.
    enum:
     - "No Synchronization"
     - "Asynchronous"
     - "Adaptive"
     - "Synchronous"
  hp-resolution:
    type: int
    default: 16
    required: false
    enum:
     - 8
     - 16
     - 24
     - 32
# microphone channel configuration options
  mic-channel-l:
    type: boolean
    required: false
    description: Enable (l) channel.
  mic-channel-r:
    type: boolean
    required: false
    description: Enable (r) channel.
  mic-channel-c:
    type: boolean
    required: false
    description: Enable (c) channel.
  mic-channel-lfe:
    type: boolean
    required: false
    description: Enable (lfe) channel.
  mic-channel-ls:
    type: boolean
    required: false
    description: Enable (ls) channel.
  mic-channel-rs:
    type: boolean
    required: false
    description: Enable (rs) channel.
  mic-channel-lc:
    type: boolean
    required: false
    description: Enable (lc) channel.
  mic-channel-rc:
    type: boolean
    required: false
    description: Enable (rc) channel.
  mic-channel-s:
    type: boolean
    required: false
    description: Enable (s) channel.
  mic-channel-sl:
    type: boolean
    required: false
    description: Enable (sl) channel.
  mic-channel-sr:
    type: boolean
    required: false
    description: Enable (sr) channel.
  mic-channel-t:
    type: boolean
    required: false
    description: Enable (t) channel.
  mic-channel-cfg:
    type: boolean
    required: false
    description: Enable (cfg) channel.
# microphone feature unit configuration options
  mic-feature-mute:
    type: boolean
    required: true
    description: Enable Mute feature.
  mic-feature-volume:
    type: boolean
    required: false
    description: Enable Volume feature.
                 Currently not supported.
  mic-feature-tone-control:
    type: boolean
    required: false
    description: Enable Tone Control (Bass, Mid, Treble) feature.
                 Currently not supported.
  mic-feature-graphic-equalizer:
    type: boolean
    required: false
    description: Enable  Graphic Equalizer feature.
                 Currently not supported.
  mic-feature-automatic-gain-control:
    type: boolean
    required: false
    description: Enable Autoamtic Gain Control feature.
                 Currently not supported.
  mic-feature-delay:
    type: boolean
    required: false
    description: Enable Delay feature.
                 Currently not supported.
  mic-feature-bass-boost:
    type: boolean
    required: false
    description: Enable Bass Boost feature.
                 Currently not supported.
  mic-feature-loudness:
    type: boolean
    required: false
    description: Enable Loudness feature.
                 Currently not supported.
# headphones channel configuration options
  hp-channel-l:
    type: boolean
    required: false
    description: Enable (l) channel.
  hp-channel-r:
    type: boolean
    required: false
    description: Enable (r) channel.
  hp-channel-c:
    type: boolean
    required: false
    description: Enable (c) channel.
  hp-channel-lfe:
    type: boolean
    required: false
    description: Enable (lfe) channel.
  hp-channel-ls:
    type: boolean
    required: false
    description: Enable (ls) channel.
  hp-channel-rs:
    type: boolean
    required: false
    description: Enable (rs) channel.
  hp-channel-lc:
    type: boolean
    required: false
    description: Enable (lc) channel.
  hp-channel-rc:
    type: boolean
    required: false
    description: Enable (rc) channel.
  hp-channel-s:
    type: boolean
    required: false
    description: Enable (s) channel.
  hp-channel-sl:
    type: boolean
    required: false
    description: Enable (sl) channel.
  hp-channel-sr:
    type: boolean
    required: false
    description: Enable (sr) channel.
  hp-channel-t:
    type: boolean
    required: false
    description: Enable (t) channel.
  hp-channel-cfg:
    type: boolean
    required: false
    description: Enable (cfg) channel.
# headphones feature unit configuration options
  hp-feature-mute:
    type: boolean
    required: true
    description: Enable Mute feature.
  hp-feature-volume:
    type: boolean
    required: false
    description: Enable Volume feature.
                 Currently not supported.
  hp-feature-tone-control:
    type: boolean
    required: false
    description: Enable Tone Control (Bass, Mid, Treble) feature.
                 Currently not supported.
  hp-feature-graphic-equalizer:
    type: boolean
    required: false
    description: Enable  Graphic Equalizer feature.
                 Currently not supported.
  hp-feature-automatic-gain-control:
    type: boolean
    required: false
    description: Enable Autoamtic Gain Control feature.
                 Currently not supported.
  hp-feature-delay:
    type: boolean
    required: false
    description: Enable Delay feature.
                 Currently not supported.
  hp-feature-bass-boost:
    type: boolean
    required: false
    description: Enable Bass Boost feature.
                 Currently not supported.
  hp-feature-loudness:
    type: boolean
    required: false
    description: Enable Loudness feature.
                 Currently not supported.
