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

title: Cirrus Logic Madera class audio CODECs Multi-Functional Device

maintainers:
  - patches@opensource.cirrus.com

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

  See also the child driver bindings in:

    bindings/pinctrl/cirrus,madera.yaml
    bindings/regulator/wlf,arizona.yaml
    bindings/sound/cirrus,madera.yaml

allOf:
  - $ref: /schemas/pinctrl/cirrus,madera.yaml#
  - $ref: /schemas/regulator/wlf,arizona.yaml#
  - $ref: /schemas/sound/cirrus,madera.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - cirrus,cs47l85
              - wlf,wm1840
    then:
      properties:
        SPKVDDL-supply:
          description:
            Left speaker driver power supply.

        SPKVDDR-supply:
          description:
            Right speaker driver power supply.

      required:
        - SPKVDDL-supply
        - SPKVDDR-supply
    else:
      required:
        - DCVDD-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - cirrus,cs47l15
              - cirrus,cs47l35
    then:
      properties:
        SPKVDD-supply:
          description:
            Mono speaker driver power supply.

      required:
        - SPKVDD-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - cirrus,cs47l35
              - cirrus,cs47l85
              - cirrus,cs47l90
              - cirrus,cs47l91
              - wlf,wm1840
    then:
      properties:
        DBVDD2-supply:
          description:
            Databus power supply.

      required:
        - DBVDD2-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - cirrus,cs47l85
              - cirrus,cs47l90
              - cirrus,cs47l91
              - wlf,wm1840
    then:
      properties:
        DBVDD3-supply:
          description:
            Databus power supply.

        DBVDD4-supply:
          description:
            Databus power supply.
  - if:
      properties:
        compatible:
          contains:
            enum:
              - cirrus,cs47l15
    then:
      required:
        - MICVDD-supply
    else:
      properties:
        CPVDD2-supply:
          description:
            Secondary charge pump power supply.

      required:
        - CPVDD2-supply

properties:
  compatible:
    enum:
      - cirrus,cs47l15
      - cirrus,cs47l35
      - cirrus,cs47l85
      - cirrus,cs47l90
      - cirrus,cs47l91
      - cirrus,cs42l92
      - cirrus,cs47l92
      - cirrus,cs47l93
      - cirrus,wm1840

  reg:
    maxItems: 1

  gpio-controller: true

  '#gpio-cells':
    description:
      The first cell is the pin number. The second cell is reserved for
      future use and must be zero
    const: 2

  interrupt-controller: true

  '#interrupt-cells':
    description:
      The first cell is the IRQ number.
      The second cell is the flags, encoded as the trigger masks from
      bindings/interrupt-controller/interrupts.txt
    const: 2

  interrupts:
    maxItems: 1

  reset-gpios:
    description:
      One entry specifying the GPIO controlling /RESET.  As defined in
      bindings/gpio.txt.  Although optional, it is strongly recommended
      to use a hardware reset.
    maxItems: 1

  clocks:
    description:
      Should reference the clocks supplied on MCLK1, MCLK2 and MCLK3.
    minItems: 1
    maxItems: 3

  clock-names:
    description: |
      May contain up to three strings:
        "mclk1" For the clock supplied on MCLK1, recommended to be a
                high quality audio reference clock.
        "mclk2" For the clock supplied on MCLK2, required to be an
                always on 32k clock.
        "mclk3" For the clock supplied on MCLK3.
    oneOf:
      - items:
          - const: mclk1
      - items:
          - const: mclk2
      - items:
          - const: mclk3
      - items:
          - const: mclk1
          - const: mclk2
      - items:
          - const: mclk1
          - const: mclk3
      - items:
          - const: mclk2
          - const: mclk3
      - items:
          - const: mclk1
          - const: mclk2
          - const: mclk3

  AVDD-supply:
    description:
      Analogue power supply.

  DBVDD1-supply:
    description:
      Databus power supply.

  CPVDD1-supply:
    description:
      Charge pump power supply.

  DCVDD-supply:
    description:
      Digital power supply, optional on CS47L85, WM1840 where it can
      be supplied internally.

  MICVDD-supply:
    description:
      Microphone power supply, normally supplied internally except on
      cs47l24, wm1831 where it is mandatory.

required:
  - compatible
  - gpio-controller
  - '#gpio-cells'
  - interrupt-controller
  - '#interrupt-cells'
  - interrupt-parent
  - interrupts
  - AVDD-supply
  - DBVDD1-supply
  - CPVDD1-supply

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/sound/madera.h>
    i2c@e0004000 {
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0xe0004000 0x1000>;

        cs47l85: codec@1a {
            compatible = "cirrus,cs47l85";
            reg = <0x1a>;

            reset-gpios = <&gpio 0>;
            wlf,ldoena = <&gpio 1>;

            interrupt-controller;
            #interrupt-cells = <2>;
            interrupts = <&host_irq1>;
            interrupt-parent = <&gic>;

            gpio-controller;
            #gpio-cells = <2>;

            AVDD-supply = <&vdd1v8>;
            DBVDD1-supply = <&vdd1v8>;
            DBVDD2-supply = <&vdd1v8>;
            DBVDD3-supply = <&vdd1v8>;
            DBVDD4-supply = <&vdd1v8>;
            CPVDD1-supply = <&vdd1v8>;
            CPVDD2-supply = <&vdd1v2>;
            SPKVDDL-supply = <&vdd5v>;
            SPKVDDR-supply = <&vdd5v>;

            clocks = <&clks 0>, <&clks 1>, <&clks 2>;
            clock-names = "mclk1", "mclk2", "mclk3";

            cirrus,dmic-ref = <0 0 MADERA_DMIC_REF_MICBIAS1>;
            cirrus,inmode = <
                MADERA_INMODE_SE   MADERA_INMODE_SE
                MADERA_INMODE_SE   MADERA_INMODE_SE
                MADERA_INMODE_DIFF MADERA_INMODE_DIFF
            >;
            cirrus,max-channels-clocked = <2 0 0>;

            pinctrl-names = "default";
            pinctrl-0 = <&pinsettings>;

            pinsettings: pin-settings {
                aif1-pins {
                    groups = "aif1";
                    function = "aif1";
                    bias-bus-hold;
                };

                aif2-pins {
                    groups = "aif2";
                    function = "aif2";
                    bias-bus-hold;
                };

                aif3-pins {
                    groups = "aif3";
                    function = "aif3";
                    bias-bus-hold;
                };
            };
        };
    };
