ASoC: madera: Add DT bindings for Cirrus Logic Madera codecs
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.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
1e7f6e1c69
commit
f0b1f5f08d
|
@ -0,0 +1,67 @@
|
|||
Cirrus Logic Madera 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/madera.txt
|
||||
|
||||
and defines for values used in these bindings:
|
||||
include/dt-bindings/sound/madera.h
|
||||
|
||||
These properties are all contained in the parent MFD node.
|
||||
|
||||
Optional properties:
|
||||
- cirrus,dmic-ref : 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 MICVDD and is the default, other values depend on the
|
||||
codec:
|
||||
For CS47L35 one of the CS47L35_DMIC_REF_xxx values
|
||||
For all other codecs one of the MADERA_DMIC_REF_xxx values
|
||||
Also see the datasheet for a description of 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. 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, maximum of six cells if the
|
||||
array is shorter outputs will be set to stereo.
|
||||
|
||||
- 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:
|
||||
|
||||
cs47l35@0 {
|
||||
compatible = "cirrus,cs47l35";
|
||||
|
||||
cirrus,dmic-ref = <0 0 CS47L35_DMIC_REF_MICBIAS1B 0>;
|
||||
cirrus,inmode = <
|
||||
MADERA_INMODE_DMIC MADERA_INMODE_DMIC /* IN1A digital */
|
||||
MADERA_INMODE_SE MADERA_INMODE_SE /* IN1B single-ended */
|
||||
MADERA_INMODE_DIFF MADERA_INMODE_DIFF /* IN2 differential */
|
||||
0 0 /* not used on this codec */
|
||||
>;
|
||||
cirrus,out-mono = <0 0 0 0 0 0>;
|
||||
cirrus,max-channels-clocked = <2 0 0>;
|
||||
};
|
|
@ -3915,6 +3915,7 @@ W: https://github.com/CirrusLogic/linux-drivers/wiki
|
|||
S: Supported
|
||||
F: Documentation/devicetree/bindings/mfd/madera.txt
|
||||
F: Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt
|
||||
F: include/dt-bindings/sound/madera*
|
||||
F: include/linux/irqchip/irq-madera*
|
||||
F: include/linux/mfd/madera/*
|
||||
F: drivers/gpio/gpio-madera*
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Device Tree defines for Madera codecs
|
||||
*
|
||||
* Copyright (C) 2016-2017 Cirrus Logic, Inc. and
|
||||
* Cirrus Logic International Semiconductor Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef DT_BINDINGS_SOUND_MADERA_H
|
||||
#define DT_BINDINGS_SOUND_MADERA_H
|
||||
|
||||
#define MADERA_INMODE_DIFF 0
|
||||
#define MADERA_INMODE_SE 1
|
||||
#define MADERA_INMODE_DMIC 2
|
||||
|
||||
#define MADERA_DMIC_REF_MICVDD 0
|
||||
#define MADERA_DMIC_REF_MICBIAS1 1
|
||||
#define MADERA_DMIC_REF_MICBIAS2 2
|
||||
#define MADERA_DMIC_REF_MICBIAS3 3
|
||||
|
||||
#define CS47L35_DMIC_REF_MICBIAS1B 1
|
||||
#define CS47L35_DMIC_REF_MICBIAS2A 2
|
||||
#define CS47L35_DMIC_REF_MICBIAS2B 3
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue