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

title: Samsung Midas audio complex with WM1811 codec

maintainers:
  - Sylwester Nawrocki <s.nawrocki@samsung.com>

allOf:
  - $ref: sound-card-common.yaml#

properties:
  compatible:
    const: samsung,midas-audio

  cpu:
    type: object
    additionalProperties: false
    properties:
      sound-dai:
        maxItems: 1
        description: phandle to the I2S controller
    required:
      - sound-dai

  codec:
    type: object
    additionalProperties: false
    properties:
      sound-dai:
        maxItems: 1
        description: phandle to the WM1811 CODEC
    required:
      - sound-dai

  samsung,audio-routing:
    deprecated: true
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
    description: |
      List of the connections between audio components; each entry is
      a pair of strings, the first being the connection's sink, the second
      being the connection's source; valid names for sources and sinks are
      the WM1811's pins (as documented in its binding), and the jacks
      on the board: HP, SPK, Main Mic, Sub Mic, Headset Mic.
      Deprecated, use audio-routing.

  mic-bias-supply:
    description: Supply for the micbias on the Main microphone

  submic-bias-supply:
    description: Supply for the micbias on the Sub microphone

  fm-sel-gpios:
    maxItems: 1
    description: GPIO pin for FM selection

  lineout-sel-gpios:
    maxItems: 1
    description: GPIO pin for line out selection

required:
  - compatible
  - cpu
  - codec
  - audio-routing
  - mic-bias-supply
  - submic-bias-supply

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    sound {
        compatible = "samsung,midas-audio";
        model = "Midas";

        fm-sel-gpios = <&gpaa0 3 GPIO_ACTIVE_HIGH>;

        mic-bias-supply = <&mic_bias_reg>;
        submic-bias-supply = <&submic_bias_reg>;

        audio-routing =
                "HP", "HPOUT1L",
                "HP", "HPOUT1R",

                "SPK", "SPKOUTLN",
                "SPK", "SPKOUTLP",
                "SPK", "SPKOUTRN",
                "SPK", "SPKOUTRP",

                "RCV", "HPOUT2N",
                "RCV", "HPOUT2P",

                "IN1LP", "Main Mic",
                "IN1LN", "Main Mic",
                "IN1RP", "Sub Mic",
                "IN1LP", "Sub Mic";

        cpu {
            sound-dai = <&i2s0>;
        };

        codec {
            sound-dai = <&wm1811>;
        };

    };