# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/wlf,arizona.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs

maintainers:
  - patches@opensource.cirrus.com

description: |
  These devices are audio SoCs with extensive digital capabilities and a range
  of analogue I/O.

  This document lists sound specific bindings, see the primary binding
  document ../mfd/arizona.yaml

properties:
  '#sound-dai-cells':
    description:
      The first cell indicating the audio interface.
    const: 1

  wlf,inmode:
    description:
      A list of INn_MODE register values, where n is the number of input
      signals. Valid values are 0 (Differential), 1 (Single-ended) and
      2 (Digital Microphone). If absent, INn_MODE registers set to 0 by
      default.  If present, values must be specified less than or equal
      to the number of input signals. If values less than the number of
      input signals, elements that have not been specified are set to 0 by
      default. Entries are <IN1, IN2, IN3, IN4> (wm5102, wm5110, wm8280,
      wm8997) and <IN1A, IN2A, IN1B, IN2B> (wm8998, wm1814)
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 4
    items:
      minimum: 0
      maximum: 2
      default: 0

  wlf,out-mono:
    description:
      A list of boolean values indicating whether each output is mono
      or stereo. Position within the list indicates the output affected
      (eg. First entry in the list corresponds to output 1). A non-zero
      value indicates a mono output. If present, the number of values
      should be less than or equal to the number of outputs, if less values
      are supplied the additional outputs will be treated as stereo.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 6
    items:
      minimum: 0
      maximum: 1
      default: 0

  wlf,dmic-ref:
    description:
      DMIC reference voltage source for each input, can be selected from
      either MICVDD or one of the MICBIAS's, defines (ARIZONA_DMIC_xxxx)
      are provided in dt-bindings/mfd/arizona.h. If present, the number
      of values should be less than or equal to the number of inputs,
      unspecified inputs will use the chip default.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 4
    items:
      minimum: 0
      maximum: 3
      default: 0

  wlf,max-channels-clocked:
    description:
      The maximum number of channels to be clocked on each AIF, useful for
      I2S systems with multiple data lines being mastered.  Specify one
      cell for each AIF to be configured, specify zero for AIFs that should
      be handled normally.  If present, number of cells must be less than
      or equal to the number of AIFs. If less than the number of AIFs, for
      cells that have not been specified the corresponding AIFs will be
      treated as default setting.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 3
    items:
      default: 0

  wlf,spk-fmt:
    description:
      PDM speaker data format, must contain 2 cells (OUT5 and OUT6).  See
      the datasheet for values.  The second cell is ignored for codecs that
      do not have OUT6 (wm5102, wm8997, wm8998, wm1814)
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 2
    maxItems: 2

  wlf,spk-mute:
    description:
      PDM speaker mute setting, must contain 2 cells (OUT5 and OUT6).  See
      the datasheet for values.  The second cell is ignored for codecs that
      do not have OUT6 (wm5102, wm8997, wm8998, wm1814)
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 2
    maxItems: 2

  wlf,out-volume-limit:
    description:
      The volume limit value that should be applied to each output
      channel. See the datasheet for exact values. Channels are specified
      in the order OUT1L, OUT1R, OUT2L, OUT2R, etc.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 12
