forked from Minki/linux
fce9ec954a
The STA32x chips feature an XTI clock input that needs to be stable before the reset signal is released. Therefore, the chip driver needs to get a handle to the clock. Instead of relying on other parts of the system to enable the clock, let the codec driver grab a handle itself. In order to keep existing boards working, clock support is made optional. Signed-off-by: Daniel Mack <daniel@zonque.org> Signed-off-by: Mark Brown <broonie@kernel.org>
102 lines
3.4 KiB
Plaintext
102 lines
3.4 KiB
Plaintext
STA32X audio CODEC
|
|
|
|
The driver for this device only supports I2C.
|
|
|
|
Required properties:
|
|
|
|
- compatible: "st,sta32x"
|
|
- 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.
|
|
|
|
- Vdda-supply: regulator spec, providing 3.3V
|
|
- Vdd3-supply: regulator spec, providing 3.3V
|
|
- Vcc-supply: regulator spec, providing 5V - 26V
|
|
|
|
Optional properties:
|
|
|
|
- clocks, clock-names: Clock specifier for XTI input clock.
|
|
If specified, the clock will be enabled when the codec is probed,
|
|
and disabled when it is removed. The 'clock-names' must be set to 'xti'.
|
|
|
|
- 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 chosen.
|
|
This properties have to be specified as '/bits/ 8' values.
|
|
|
|
- st,thermal-warning-recover:
|
|
If present, thermal warning recovery is enabled.
|
|
|
|
- st,fault-detect-recovery:
|
|
If present, fault detect 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,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,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,invalid-input-detect-mute:
|
|
If present, automatic invalid input detect mute is enabled.
|
|
|
|
Example:
|
|
|
|
codec: sta32x@38 {
|
|
compatible = "st,sta32x";
|
|
reg = <0x1c>;
|
|
clocks = <&clock>;
|
|
clock-names = "xti";
|
|
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.
|
|
};
|