Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs

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

Required properties:

  - compatible : One of the following chip-specific strings:
        "cirrus,cs47l24"
        "wlf,wm5102"
        "wlf,wm5110"
        "wlf,wm8280"
        "wlf,wm8997"
        "wlf,wm8998"
        "wlf,wm1814"
        "wlf,wm1831"

  - reg : I2C slave address when connected using I2C, chip select number when
    using SPI.

  - interrupts : The interrupt line the /IRQ signal for the device is
    connected to.
  - interrupt-controller : Arizona class devices contain interrupt controllers
    and may provide interrupt services to other devices.
  - interrupt-parent : The parent interrupt controller.
  - #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
    The first cell is the IRQ number.
    The second cell is the flags, encoded as the trigger masks from
    Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

  - gpio-controller : Indicates this device is a GPIO controller.
  - #gpio-cells : Must be 2. The first cell is the pin number and the
    second cell is used to specify optional parameters, see ../gpio/gpio.txt
    for details.

  - AVDD-supply, DBVDD1-supply, CPVDD-supply : Power supplies for the device,
    as covered in Documentation/devicetree/bindings/regulator/regulator.txt

  - DBVDD2-supply, DBVDD3-supply : Additional databus power supplies (wm5102,
    wm5110, wm8280, wm8998, wm1814)

  - SPKVDDL-supply, SPKVDDR-supply : Speaker driver power supplies (wm5102,
    wm5110, wm8280, wm8998, wm1814)

  - SPKVDD-supply : Speaker driver power supply (wm8997)

  - DCVDD-supply : Main power supply (cs47l24, wm1831)

  - MICVDD-supply : Microphone power supply (cs47l24, wm1831)

Optional properties:

  - wlf,reset : GPIO specifier for the GPIO controlling /RESET

  - clocks: Should reference the clocks supplied on MCLK1 and MCLK2
  - clock-names: 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

  - wlf,gpio-defaults : A list of GPIO configuration register values. Defines
    for the appropriate values can found in <dt-bindings/mfd/arizona.txt>. 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.

  - wlf,inmode : A list of INn_MODE register values, where n is the number
    of input signals. Valid values are 0 (Differential), 1 (Single-ended) and
    2 (Digital Microphone). If absent, INn_MODE registers set to 0 by default.
    If present, values must be specified less than or equal to the number of
    input signals. If values less than the number of input signals, elements
    that have not been specified are set to 0 by default. Entries are:
    <IN1, IN2, IN3, IN4> (wm5102, wm5110, wm8280, wm8997)
    <IN1A, IN2A, IN1B, IN2B> (wm8998, wm1814)
  - wlf,out-mono : A list of boolean values indicating whether each output is
    mono or stereo. Position within the list indicates the output affected
    (eg. First entry in the list corresponds to output 1). A non-zero value
    indicates a mono output. If present, the number of values should be less
    than or equal to the number of outputs, if less values are supplied the
    additional outputs will be treated as stereo.

  - wlf,dmic-ref : DMIC reference voltage source for each input, can be
    selected from either MICVDD or one of the MICBIAS's, defines
    (ARIZONA_DMIC_xxxx) are provided in <dt-bindings/mfd/arizona.txt>. If
    present, the number of values should be less than or equal to the
    number of inputs, unspecified inputs will use the chip default.

  - wlf,max-channels-clocked : The maximum number of channels to be clocked on
    each AIF, useful for I2S systems with multiple data lines being mastered.
    Specify one cell for each AIF to be configured, specify zero for AIFs that
    should be handled normally.
    If present, number of cells must be less than or equal to the number of
    AIFs. If less than the number of AIFs, for cells that have not been
    specified the corresponding AIFs will be treated as default setting.

  - wlf,spk-fmt : PDM speaker data format, must contain 2 cells (OUT5 and OUT6).
    See the datasheet for values.
    The second cell is ignored for codecs that do not have OUT6 (wm5102, wm8997,
      wm8998, wm1814)

  - wlf,spk-mute : PDM speaker mute setting, must contain 2 cells (OUT5 and OUT6).
    See the datasheet for values.
    The second cell is ignored for codecs that do not have OUT6 (wm5102, wm8997,
    wm8998, wm1814)

  - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if
    they are being externally supplied. As covered in
    Documentation/devicetree/bindings/regulator/regulator.txt
    (wm5102, wm5110, wm8280, wm8997, wm8998, wm1814)

Also see child specific device properties:
  Regulator - ../regulator/arizona-regulator.txt
  Extcon    - ../extcon/extcon-arizona.txt

Example:

codec: wm5102@1a {
	compatible = "wlf,wm5102";
	reg = <0x1a>;
	interrupts = <347>;
	interrupt-controller;
	#interrupt-cells = <2>;
        interrupt-parent = <&gic>;

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

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