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:

  - reset-gpios : 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.

  - 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)

Deprecated properties:

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

Also see child specific device properties:
  Regulator - ../regulator/arizona-regulator.txt
  Extcon    - ../extcon/extcon-arizona.txt
  Sound     - ../sound/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
	>;
};
