# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/audio-iio-aux.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Audio IIO auxiliary

maintainers:
  - Herve Codina <herve.codina@bootlin.com>

description:
  Auxiliary device based on Industrial I/O device channels

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    const: audio-iio-aux

  io-channels:
    description:
      Industrial I/O device channels used

  io-channel-names:
    description:
      Industrial I/O channel names related to io-channels.
      These names are used to provides sound controls, widgets and routes names.

  snd-control-invert-range:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
      A list of 0/1 flags defining whether or not the related channel is
      inverted
    items:
      enum: [0, 1]
      default: 0
      description: |
        Invert the sound control value compared to the IIO channel raw value.
          - 1: The related sound control value is inverted meaning that the
               minimum sound control value correspond to the maximum IIO channel
               raw value and the maximum sound control value correspond to the
               minimum IIO channel raw value.
          - 0: The related sound control value is not inverted meaning that the
               minimum (resp maximum) sound control value correspond to the
               minimum (resp maximum) IIO channel raw value.

required:
  - compatible
  - io-channels
  - io-channel-names

unevaluatedProperties: false

examples:
  - |
    iio-aux {
        compatible = "audio-iio-aux";
        io-channels = <&iio 0>, <&iio 1>, <&iio 2>, <&iio 3>;
        io-channel-names = "CH0", "CH1", "CH2", "CH3";
        /* Invert CH1 and CH2 */
        snd-control-invert-range = <0 1 1 0>;
    };
