The Cirrus Logic Madera codecs are a family of related codecs with extensive digital and analogue I/O, digital mixing and routing, signal processing and programmable DSPs.
Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com --- Changes since V1: - these bindings split out from the main source patch - some minor edits to the property descriptions to match the pdata descriptions
Documentation/devicetree/bindings/sound/madera.txt | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/madera.txt
diff --git a/Documentation/devicetree/bindings/sound/madera.txt b/Documentation/devicetree/bindings/sound/madera.txt new file mode 100644 index 0000000..b114f7b --- /dev/null +++ b/Documentation/devicetree/bindings/sound/madera.txt @@ -0,0 +1,66 @@ +Cirrus Logic Madera class audio codecs + +This is a subnode of the parent mfd node. + +See also the core bindings for the parent MFD driver: +See Documentation/devicetree/bindings/mfd/madera.txt + +Required properties: + - compatible : One of the following chip-specific strings: + "cirrus,cs47l35-codec" + "cirrus,cs47l85-codec" + "cirrus,cs47l90-codec" + +Optional properties: + - cirrus,dmic-ref : DMIC bias 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,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 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 : 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). See the PDM_SPKn_FMT field in the datasheet for a + description of this value. + The second cell is ignored for codecs that do not have OUT6. + + - cirrus,pdm-mute : PDM mute format, must contain 2 cells + (OUT5 and OUT6). See the PDM_SPKn_CTRL_1 register in the datasheet for a + description of this value. + The second cell is ignored for codecs that do not have OUT6. + +Example: + +codec: cs47l35@0 { + compatible = "cirrus,cs47l35"; + + codec { + compatible = "cirrus,cs47l35-codec"; + 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,out-mono = <0 0 0 0 0 0>; + cirrus,max-channels-clocked = <2 0 0>; + }; +};