android-kernel-a71/Documentation/devicetree/bindings/sound/tacna.txt
2024-11-30 08:51:05 +01:00

67 lines
2.6 KiB
Plaintext

Cirrus Logic Tacna class audio codecs
This describes audio configuration bindings for these codecs.
See also the core bindings for the parent MFD driver:
See Documentation/devicetree/bindings/mfd/tacna.txt
and defines for values used in these bindings:
include/dt-bindings/sound/tacna.h
These properties are all contained in the parent MFD node.
Optional properties:
- cirrus,in-type : A list of input type settings for each input.
Maximum of 16 cells, with four cells per input in the order
INnL_1, INnR_1 INnL_2 INnR_2.
For non-muxed inputs the first two cells for that input set the mode for
the left and right channel and the second two cells must be 0.
For muxed inputs the first two cells for that input set the mode of the
left and right _1 inputs and the second two cells set the mode of the left
and right _2 inputs.
Valid mode values are one of the TACNA_IN_TYPE_xxx. If the array is shorter
than the number of inputs the unspecified inputs default to
TACNA_IN_TYPE_DIFF.
- cirrus,out-mono : Mono bit for each output. A non-zero value indicates the
corresponding output is mono.
Cells are:
<OUT1_HP1 OUT1_HP2> (cs47l96, cs47l97)
<OUT1 OUT2 OUT3 ...> (all other codecs)
- cirrus,max-channels-clocked : Maximum number of channels that I2S clocks
will be generated for. Useful when clock master for systems where the I2S
bus has multiple data lines.
One cell for each AIF, use a value of zero for AIFs that should be handled
normally.
- cirrus,pdm-fmt : PDM speaker data format, must contain 2 cells
(OUT5 and OUT6). One of the TACNA_PDM_FMT_MODE_x values.
The second cell is ignored for codecs that do not have OUT6.
- cirrus,pdm-mute : PDM mute format sequence, must contain 2 cells
(OUT5 and OUT6).
The second cell is ignored for codecs that do not have OUT6.
See datasheet for a description of the OUTnPDM_MUTE_SEQ field.
- cirrus,pdm-sup : Indicates how the MICBIAS pins have been externally
connected to DMICs on each input, one cell per input.
<IN1 IN2 IN3 ...>
A value of 0 indicates VOUT_MIC and is the default, other values depend on
the value of the INn_PDM_SUP field.
See the datasheet for a description of the INn_PDM_SUP field.
Example:
cs47l96@0 {
compatible = "cirrus,cs47l96";
cirrus,in-type = <
TACNA_IN_TYPE_DIFF TACNA_IN_TYPE_DIFF /* IN1[LR]_1 differential */
TACNA_IN_TYPE_SE TACNA_IN_TYPE_SE /* IN1[LR]_2 single-ended */
TACNA_IN_TYPE_DIFF TACNA_IN_TYPE_DIFF /* IN2[LR]_1 differential */
>;
cirrus,out-mono = <0 0 0 0>;
cirrus,max-channels-clocked = <2 0 0>;
};