2013-12-17 11:24:41 +08:00
|
|
|
Freescale Synchronous Audio Interface (SAI).
|
|
|
|
|
|
|
|
The SAI is based on I2S module that used communicating with audio codecs,
|
|
|
|
which provides a synchronous audio interface that supports fullduplex
|
|
|
|
serial interfaces with frame synchronization such as I2S, AC97, TDM, and
|
|
|
|
codec/DSP interfaces.
|
|
|
|
|
|
|
|
Required properties:
|
2014-10-08 03:29:06 +08:00
|
|
|
|
2016-05-05 06:33:58 +08:00
|
|
|
- compatible : Compatible list, contains "fsl,vf610-sai",
|
|
|
|
"fsl,imx6sx-sai" or "fsl,imx6ul-sai"
|
2014-10-08 03:29:06 +08:00
|
|
|
|
|
|
|
- reg : Offset and length of the register set for the device.
|
|
|
|
|
|
|
|
- clocks : Must contain an entry for each entry in clock-names.
|
|
|
|
|
|
|
|
- clock-names : Must include the "bus" for register access and
|
|
|
|
"mclk1", "mclk2", "mclk3" for bit clock and frame
|
|
|
|
clock providing.
|
|
|
|
- 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".
|
|
|
|
|
|
|
|
- pinctrl-names : Must contain a "default" entry.
|
|
|
|
|
|
|
|
- pinctrl-NNN : One property must exist for each entry in
|
|
|
|
pinctrl-names. See ../pinctrl/pinctrl-bindings.txt
|
|
|
|
for details of the property values.
|
|
|
|
|
|
|
|
- big-endian : Boolean property, required if all the FTM_PWM
|
|
|
|
registers are big-endian rather than little-endian.
|
|
|
|
|
|
|
|
- lsb-first : Configures whether the LSB or the MSB is transmitted
|
|
|
|
first for the fifo data. If this property is absent,
|
|
|
|
the MSB is transmitted first as default, or the LSB
|
|
|
|
is transmitted first.
|
|
|
|
|
|
|
|
- fsl,sai-synchronous-rx: This is a boolean property. If present, indicating
|
|
|
|
that SAI will work in the synchronous mode (sync Tx
|
|
|
|
with Rx) which means both the transimitter and the
|
|
|
|
receiver will send and receive data by following
|
|
|
|
receiver's bit clocks and frame sync clocks.
|
|
|
|
|
|
|
|
- fsl,sai-asynchronous: This is a boolean property. If present, indicating
|
|
|
|
that SAI will work in the asynchronous mode, which
|
|
|
|
means both transimitter and receiver will send and
|
|
|
|
receive data by following their own bit clocks and
|
|
|
|
frame sync clocks separately.
|
2014-08-05 15:32:05 +08:00
|
|
|
|
2016-05-05 06:33:59 +08:00
|
|
|
Optional properties (for mx6ul):
|
|
|
|
|
|
|
|
- fsl,sai-mclk-direction-output: This is a boolean property. If present,
|
|
|
|
indicates that SAI will output the SAI MCLK clock.
|
|
|
|
|
2014-08-05 15:32:05 +08:00
|
|
|
Note:
|
|
|
|
- If both fsl,sai-asynchronous and fsl,sai-synchronous-rx are absent, the
|
|
|
|
default synchronous mode (sync Rx with Tx) will be used, which means both
|
|
|
|
transimitter and receiver will send and receive data by following clocks
|
|
|
|
of transimitter.
|
2014-08-08 18:41:19 +08:00
|
|
|
- fsl,sai-asynchronous and fsl,sai-synchronous-rx are exclusive.
|
2013-12-17 11:24:41 +08:00
|
|
|
|
|
|
|
Example:
|
|
|
|
sai2: sai@40031000 {
|
|
|
|
compatible = "fsl,vf610-sai";
|
|
|
|
reg = <0x40031000 0x1000>;
|
|
|
|
pinctrl-names = "default";
|
|
|
|
pinctrl-0 = <&pinctrl_sai2_1>;
|
2014-04-10 23:26:15 +08:00
|
|
|
clocks = <&clks VF610_CLK_PLATFORM_BUS>,
|
|
|
|
<&clks VF610_CLK_SAI2>,
|
|
|
|
<&clks 0>, <&clks 0>;
|
|
|
|
clock-names = "bus", "mclk1", "mclk2", "mclk3";
|
2013-12-17 11:24:41 +08:00
|
|
|
dma-names = "tx", "rx";
|
|
|
|
dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>,
|
|
|
|
<&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>;
|
2014-08-25 11:31:02 +08:00
|
|
|
big-endian;
|
2014-08-29 15:12:12 +08:00
|
|
|
lsb-first;
|
2013-12-17 11:24:41 +08:00
|
|
|
};
|