-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ASoC: fsl_esai: Add ESAI CPU DAI driver
This patch implements a device-tree-only CPU DAI driver for Freescale ESAI controller that supports: - 12 channels playback and 8 channels record. [ Some of the inner transmitters and receivers are sharing same group of pins. So the maxmium 12 output or 8 input channels are only valid if there is no pin conflict occurring to it. ] - Independent (asynchronous mode) or shared (synchronous mode) transmit and receive sections with separate or shared internal/external clocks and frame syncs, operating in Master or Slave mode. [ Current ALSA seems not to allow CPU DAI drivers to configure DAI format separately for PLAYBACK and CAPTURE. So this first version only supports the case that uses the same DAI format for both directions. ] - Various DAI formats: I2S, Left-Justified, Right-Justified, DSP-A and DSP-B. - Programmable word length (8, 16, 20 or 24bits) - Flexible selection between system clock or external oscillator as input clock source, programmable internal clock divider and frame sync generation. Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
- Loading branch information
Nicolin Chen
authored and
Mark Brown
committed
Jan 10, 2014
1 parent
633ff8f
commit 43d24e7
Showing
5 changed files
with
1,224 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
Freescale Enhanced Serial Audio Interface (ESAI) Controller | ||
|
||
The Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port | ||
for serial communication with a variety of serial devices, including industry | ||
standard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and | ||
other DSPs. It has up to six transmitters and four receivers. | ||
|
||
Required properties: | ||
|
||
- compatible : Compatible list, must contain "fsl,imx35-esai". | ||
|
||
- reg : Offset and length of the register set for the device. | ||
|
||
- interrupts : Contains the spdif interrupt. | ||
|
||
- dmas : Generic dma devicetree binding as described in | ||
Documentation/devicetree/bindings/dma/dma.txt. | ||
|
||
- dma-names : Two dmas have to be defined, "tx" and "rx". | ||
|
||
- clocks: Contains an entry for each entry in clock-names. | ||
|
||
- clock-names : Includes the following entries: | ||
"core" The core clock used to access registers | ||
"extal" The esai baud clock for esai controller used to derive | ||
HCK, SCK and FS. | ||
"fsys" The system clock derived from ahb clock used to derive | ||
HCK, SCK and FS. | ||
|
||
- fsl,fifo-depth: The number of elements in the transmit and receive FIFOs. | ||
This number is the maximum allowed value for TFCR[TFWM] or RFCR[RFWM]. | ||
|
||
- fsl,esai-synchronous: This is a boolean property. If present, indicating | ||
that ESAI would work in the synchronous mode, which means all the settings | ||
for Receiving would be duplicated from Transmition related registers. | ||
|
||
Example: | ||
|
||
esai: esai@02024000 { | ||
compatible = "fsl,imx35-esai"; | ||
reg = <0x02024000 0x4000>; | ||
interrupts = <0 51 0x04>; | ||
clocks = <&clks 208>, <&clks 118>, <&clks 208>; | ||
clock-names = "core", "extal", "fsys"; | ||
dmas = <&sdma 23 21 0>, <&sdma 24 21 0>; | ||
dma-names = "rx", "tx"; | ||
fsl,fifo-depth = <128>; | ||
fsl,esai-synchronous; | ||
status = "disabled"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.