Wolfson Arizona class audio SoCs

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

Required properties:

  - compatible : One of the following chip-specific strings:
        "wlf,wm5102"
        "wlf,wm5110"
        "wlf,wm8280"
        "wlf,wm8997"
  - 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/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 (currently unused).

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

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

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

Optional properties:

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


  - wlf,micd-ranges : Microphone detection level and key configuration, this
    field can be of variable length but should always be a multiple of 2 cells
    long, each two cell group represents one button configuration
    The first cell is the maximum impedance for this button in ohms
    The second cell the key that should be reported to the input layer
  - wlf,micd-configs : Headset polarity configurations, the field can be of
    variable length but should always be a multiple of 3 cells long, each two
    cell group represents one polarity configration
    The first cell is the accessory detection source as per the ACCDET_SRC bits
    in the ACCESSORY_DETECT_MODE_1 register
    The second cell represents the MICBIAS to be used as per the MICD_BIAS_SRC
    bits in the MIC_DETECT_1 register
    The third cell represents the value of the micd-pol-gpio pin, a non-zero
    value indicates this should be on

  - wlf,micd-detect-debounce : Additional software microphone detection
     debounce specified in milliseconds
  - wlf,micd-pol-gpio : GPIO specifier for the GPIO controlling the headset
    polarity if one exists
  - wlf,micd-bias-start-time : Time allowed for MICBIAS to startup prior to
    performing microphone detection, specified as per the MICD_BIAS_STARTTIME
    bits in the register MIC_DETECT_1
  - wlf,micd-rate : Delay between successive microphone detection measurements,
    specified as per the MICD_RATE bits in the register MIC_DETECT_1
  - wlf,micd-dbtime : Microphone detection hardware debounce level, specified
    as per the MICD_DBTIME bits in the register MIC_DETECT_1
  - wlf,micd-timeout : Timeout for microphone detection, specified in
    milliseconds
  - wlf,micd-force-micbias : Force MICBIAS continuously on during microphone
    detection


  - 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 singals. If values less than the number of input signals, elements
    that has not been specifed are set to 0 by default.

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

  - 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

Optional subnodes:
  - ldo1 : Initial data for the LDO1 regulator, as covered in
    Documentation/devicetree/bindings/regulator/regulator.txt
  - micvdd : Initial data for the MICVDD regulator, as covered in
    Documentation/devicetree/bindings/regulator/regulator.txt

  - wlf,gpsw : Settings for the general purpose switch, set as per the
    SW1_MODE bits in the GP Switch 1 register

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,gpsw = <0x3>;

	wlf,micd-ranges = <
		11 0x100
		28 0x101
		54 0x102
		100 0x103
		186 0x104
		430 0x105
	>;
	wlf,micd-configs = <
		0x1 1 0
		0x0 2 1
	>;

	wlf,micd-detect-debounce = <10>;
	wlf,micd-bias-start-time = <0x1>;
	wlf,micd-rate = <0x1>;
	wlf,micd-dbtime = <0x1>;
	wlf,micd-timeout = <10>;
	wlf,micd-force-micbias;

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