# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/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.

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml
  - $ref: /schemas/sound/wlf,arizona.yaml#
  - $ref: /schemas/regulator/wlf,arizona.yaml#
  - $ref: /schemas/extcon/wlf,arizona.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - cirrus,cs47l24
              - wlf,wm1831
    then:
      required:
        - DCVDD-supply
        - MICVDD-supply
    else:
      properties:
        LDOVDD-supply:
          description:
            Digital power supply, used internally to generate DCVDD when
            internally supplied.

  - if:
      properties:
        compatible:
          contains:
            enum:
              - wlf,wm1814
              - wlf,wm5102
              - wlf,wm5110
              - wlf,wm8280
              - wlf,wm8997
              - wlf,wm8998
    then:
      properties:
        DBVDD2-supply:
          description:
            Databus power supply.

      required:
        - DBVDD2-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - wlf,wm1814
              - wlf,wm5102
              - wlf,wm5110
              - wlf,wm8280
              - wlf,wm8998
    then:
      properties:
        DBVDD3-supply:
          description:
            Databus power supply.

      required:
        - DBVDD3-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - cirrus,cs47l24
              - wlf,wm1831
              - wlf,wm8997
    then:
      properties:
        SPKVDD-supply:
          description:
            Mono speaker driver power supply.

      required:
        - SPKVDD-supply
    else:
      properties:
        SPKVDDL-supply:
          description:
            Left speaker driver power supply.

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

      required:
        - SPKVDDL-supply
        - SPKVDDR-supply

properties:
  compatible:
    enum:
      - cirrus,cs47l24
      - wlf,wm1814
      - wlf,wm1831
      - wlf,wm5102
      - wlf,wm5110
      - wlf,wm8280
      - wlf,wm8997
      - wlf,wm8998

  reg:
    maxItems: 1

  AVDD-supply:
    description:
      Analogue power supply.

  CPVDD-supply:
    description:
      Charge pump power supply.

  DBVDD1-supply:
    description:
      Databus power supply.

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

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

  gpio-controller: true

  '#gpio-cells':
    description:
      The first cell is the pin number and the second cell is used to
      specify optional parameters.
    const: 2

  wlf,gpio-defaults:
    description:
      A list of GPIO configuration register values. Defines for the
      appropriate values can found in dt-bindings/mfd/arizona.h. If
      absent, no configuration of these registers is performed. If any
      entry has a value that is out of range for a 16 bit register then the
      chip default will be used. If present exactly five values must be
      specified.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 5

  interrupt-controller: true

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

  interrupts:
    maxItems: 1

  clocks:
    description:
      Should reference the clocks supplied on MCLK1 and MCLK2.
    minItems: 1
    maxItems: 2

  clock-names:
    description:
      Should contains two strings mclk1 for the clock supplied on MCLK1,
      recommended to be a high quality audio reference clock mclk2 for the
      clock supplied on MCLK2, recommended to be an always on 32k clock.
    oneOf:
      - items:
          - const: mclk1
      - items:
          - const: mclk2
      - items:
          - const: mclk1
          - const: mclk2

  reset-gpios:
    maxItems: 1

  wlf,reset:
    description:
      GPIO specifier for the GPIO controlling RESET
    deprecated: true
    $ref: /schemas/types.yaml#/definitions/phandle-array
    maxItems: 1

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

unevaluatedProperties: false

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

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

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

            AVDD-supply = <&vdd1v8>;
            DBVDD1-supply = <&vdd1v8>;
            DBVDD2-supply = <&vdd1v8>;
            DBVDD3-supply = <&vdd1v8>;
            CPVDD-supply = <&vdd1v8>;
            LDOVDD-supply = <&vdd1v8>;
            SPKVDDL-supply = <&vdd5v>;
            SPKVDDR-supply = <&vdd5v>;

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

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

            #sound-dai-cells = <1>;

            wlf,gpio-defaults = <
                ARIZONA_GP_FN_TXLRCLK
                ARIZONA_GP_DEFAULT
                ARIZONA_GP_DEFAULT
                ARIZONA_GP_DEFAULT
                ARIZONA_GP_DEFAULT
            >;

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

            wlf,inmode = <ARIZONA_INMODE_DIFF ARIZONA_INMODE_DMIC>;
            wlf,dmic-ref = <ARIZONA_DMIC_MICBIAS1 ARIZONA_DMIC_MICBIAS3>;

            wlf,use-jd2;
            wlf,use-jd2-nopull;
            wlf,jd-invert;

            wlf,micd-software-compare;
            wlf,micd-detect-debounce = <0>;
            wlf,micd-pol-gpio = <&codec 2 0>;
            wlf,micd-rate = <ARIZONA_MICD_TIME_8MS>;
            wlf,micd-dbtime = <4>;
            wlf,micd-timeout-ms = <100>;
            wlf,micd-force-micbias;
            wlf,micd-configs = <0 ARIZONA_DMIC_MICBIAS1 0>,
                               <0x2000 ARIZONA_DMIC_MICBIAS2 1>;

            wlf,gpsw = <ARIZONA_GPSW_OPEN>;
        };
    };
