STA350 audio CODEC

The driver for this device only supports I2C.

Required properties:

  - compatible: "st,sta350"
  - reg: the I2C address of the device for I2C
  - reset-gpios: a GPIO spec for the reset pin. If specified, it will be
		 deasserted before communication to the codec starts.

  - power-down-gpios: a GPIO spec for the power down pin. If specified,
		      it will be deasserted before communication to the codec
		      starts.

  - vdd-dig-supply: regulator spec, providing 3.3V
  - vdd-pll-supply: regulator spec, providing 3.3V
  - vcc-supply: regulator spec, providing 5V - 26V

Optional properties:

  -  st,output-conf: number, Selects the output configuration:
	0: 2-channel (full-bridge) power, 2-channel data-out
	1: 2 (half-bridge). 1 (full-bridge) on-board power
	2: 2 Channel (Full-Bridge) Power, 1 Channel FFX
	3: 1 Channel Mono-Parallel
	If parameter is missing, mode 0 will be enabled.
	This property has to be specified as '/bits/ 8' value.

  -  st,ch1-output-mapping: Channel 1 output mapping
  -  st,ch2-output-mapping: Channel 2 output mapping
  -  st,ch3-output-mapping: Channel 3 output mapping
	0: Channel 1
	1: Channel 2
	2: Channel 3
	If parameter is missing, channel 1 is choosen.
	This properties have to be specified as '/bits/ 8' values.

  -  st,thermal-warning-recover:
	If present, thermal warning recovery is enabled.

  -  st,thermal-warning-adjustment:
	If present, thermal warning adjustment is enabled.

  -  st,fault-detect-recovery:
	If present, then fault recovery will be enabled.

  -  st,ffx-power-output-mode: string
	The FFX power output mode selects how the FFX output timing is
	configured. Must be one of these values:
	  -  "drop-compensation"
	  -  "tapered-compensation"
	  -  "full-power-mode"
	  -  "variable-drop-compensation" (default)

  -  st,drop-compensation-ns: number
	Only required for "st,ffx-power-output-mode" ==
	"variable-drop-compensation".
	Specifies the drop compensation in nanoseconds.
	The value must be in the range of 0..300, and only
	multiples of 20 are allowed. Default is 140ns.

  -  st,overcurrent-warning-adjustment:
	If present, overcurrent warning adjustment is enabled.

  -  st,max-power-use-mpcc:
	If present, then MPCC bits are used for MPC coefficients,
	otherwise standard MPC coefficients are used.

  -  st,max-power-corr:
	If present, power bridge correction for THD reduction near maximum
	power output is enabled.

  -  st,am-reduction-mode:
	If present, FFX mode runs in AM reduction mode, otherwise normal
	FFX mode is used.

  -  st,odd-pwm-speed-mode:
	If present, PWM speed mode run on odd speed mode (341.3 kHz) on all
	channels. If not present, normal PWM spped mode (384 kHz) will be used.

  -  st,distortion-compensation:
	If present, distortion compensation variable uses DCC coefficient.
	If not present, preset DC coefficient is used.

  -  st,invalid-input-detect-mute:
	If present, automatic invalid input detect mute is enabled.

  -  st,activate-mute-output:
	If present, a mute output will be activated in ase the volume will
	reach a value lower than -76 dBFS.

  -  st,bridge-immediate-off:
	If present, the bridge will be switched off immediately after the
	power-down-gpio goes low. Otherwise, the bridge will wait for 13
	million clock cycles to pass before shutting down.

  -  st,noise-shape-dc-cut:
	If present, the noise-shaping technique on the DC cutoff filter are
	enabled.

  -  st,powerdown-master-volume:
	If present, the power-down pin and I2C power-down functions will
	act on the master volume. Otherwise, the functions will act on the
	mute commands.

  -  st,powerdown-delay-divider:
	If present, the bridge power-down time will be divided by the provided
	value. If not specified, a divider of 1 will be used. Allowed values
	are 1, 2, 4, 8, 16, 32, 64 and 128.
	This property has to be specified as '/bits/ 8' value.

Example:

codec: sta350@38 {
	compatible = "st,sta350";
	reg = <0x1c>;
	reset-gpios = <&gpio1 19 0>;
	power-down-gpios = <&gpio1 16 0>;
	st,output-conf = /bits/ 8  <0x3>;	// set output to 2-channel
						// (full-bridge) power,
						// 2-channel data-out
	st,ch1-output-mapping = /bits/ 8 <0>;	// set channel 1 output ch 1
	st,ch2-output-mapping = /bits/ 8 <0>;	// set channel 2 output ch 1
	st,ch3-output-mapping = /bits/ 8 <0>;	// set channel 3 output ch 1
	st,max-power-correction;		// enables power bridge
						// correction for THD reduction
						// near maximum power output
	st,invalid-input-detect-mute;		// mute if no valid digital
						// audio signal is provided.
};
