blob: e862b1b565931bcf5b4fc1917623a67de1378886 [file] [log] [blame] [edit]
Cirrus Logic Madera class audio codecs
See also the core bindings for the parent MFD driver:
See Documentation/devicetree/bindinge/mfd/madera.txt
Optional properties:
- cirrus,dmic-ref : DMIC reference for each input, one cell per input
<IN1 IN2 IN3 ...>
A value of 0 indicates MICVDD and is the default, other
values depend on the codec - see the datasheet for the INn_DMIC_SUP field
- cirrus,dmic-clksrc : DMIC clock source for each input (CS47L90, CS47L91).
One cell per input. A value of 0 will source DMIC from the internally
generated clock within the ADC subsystem and a value of 1 will source DMIC
and External digital speakers with same clock
- cirrus,inmode : A list of input mode settings for each input. A maximum
of 16 cells, with four cells per input in the order INnAL, INnAR INnBL INnBR.
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 (cs47l35 IN1, cs47l85 IN1 and IN2) the first two cells for
that input set the mode of the left and right A inputs and the second two
cells set the mode of the left and right B inputs.
Valid mode values are one of the MADERA_INMODE_xxx (see
include/dt-bindings/sound/madera.h). If the array is shorter than the number
of inputs the unspecified inputs default to MADERA_INMODE_DIFF.
- cirrus,out-mono : Mono bit for each output, must contain six cells if
specified. A non-zero value indicates the corresponding output is mono.
- cirrus,max-channels-clocked : The maximum number of channels to be clocked
on each AIF, useful for I2S systems with multiple data lines being mastered.
One cell for each AIF, use a value of zero for AIFs that should be handled
normally.
Example:
codec: cs47l35@0 {
compatible = "cirrus,cs47l35";
cirrus,dmic-ref = <0 0 1 0>;
cirrus,dmic-clksrc = <0 0 0 0>;
cirrus,inmode = <
2 2 1 1 /* IN1A digital, IN1B single-ended */
0 0 0 0 /* IN2 differential */
>;
cirrus,outmono = <0 0 0 0 0 0>;
cirrus,max-channels-clocked = <2 0 0>;
};