# 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'
  - 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 = <4 1 0>;

            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;
                };
            };
        };
    };
