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