162306a36Sopenharmony_ciFreescale Enhanced Serial Audio Interface (ESAI) Controller
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciThe Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port
462306a36Sopenharmony_cifor serial communication with a variety of serial devices, including industry
562306a36Sopenharmony_cistandard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and
662306a36Sopenharmony_ciother DSPs. It has up to six transmitters and four receivers.
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciRequired properties:
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci  - compatible		: Compatible list, should contain one of the following
1162306a36Sopenharmony_ci			  compatibles:
1262306a36Sopenharmony_ci			  "fsl,imx35-esai",
1362306a36Sopenharmony_ci			  "fsl,vf610-esai",
1462306a36Sopenharmony_ci			  "fsl,imx6ull-esai",
1562306a36Sopenharmony_ci			  "fsl,imx8qm-esai",
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci  - reg			: Offset and length of the register set for the device.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  - interrupts		: Contains the spdif interrupt.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  - dmas		: Generic dma devicetree binding as described in
2262306a36Sopenharmony_ci			  Documentation/devicetree/bindings/dma/dma.txt.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  - dma-names		: Two dmas have to be defined, "tx" and "rx".
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  - clocks		: Contains an entry for each entry in clock-names.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  - clock-names		: Includes the following entries:
2962306a36Sopenharmony_ci	"core"		  The core clock used to access registers
3062306a36Sopenharmony_ci	"extal"		  The esai baud clock for esai controller used to
3162306a36Sopenharmony_ci			  derive HCK, SCK and FS.
3262306a36Sopenharmony_ci	"fsys"		  The system clock derived from ahb clock used to
3362306a36Sopenharmony_ci			  derive HCK, SCK and FS.
3462306a36Sopenharmony_ci	"spba"		  The spba clock is required when ESAI is placed as a
3562306a36Sopenharmony_ci			  bus slave of the Shared Peripheral Bus and when two
3662306a36Sopenharmony_ci			  or more bus masters (CPU, DMA or DSP) try to access
3762306a36Sopenharmony_ci			  it. This property is optional depending on the SoC
3862306a36Sopenharmony_ci			  design.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  - fsl,fifo-depth	: The number of elements in the transmit and receive
4162306a36Sopenharmony_ci			  FIFOs. This number is the maximum allowed value for
4262306a36Sopenharmony_ci			  TFCR[TFWM] or RFCR[RFWM].
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  - fsl,esai-synchronous: This is a boolean property. If present, indicating
4562306a36Sopenharmony_ci			  that ESAI would work in the synchronous mode, which
4662306a36Sopenharmony_ci			  means all the settings for Receiving would be
4762306a36Sopenharmony_ci			  duplicated from Transmission related registers.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciOptional properties:
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  - big-endian		: If this property is absent, the native endian mode
5262306a36Sopenharmony_ci			  will be in use as default, or the big endian mode
5362306a36Sopenharmony_ci			  will be in use for all the device registers.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciExample:
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciesai: esai@2024000 {
5862306a36Sopenharmony_ci	compatible = "fsl,imx35-esai";
5962306a36Sopenharmony_ci	reg = <0x02024000 0x4000>;
6062306a36Sopenharmony_ci	interrupts = <0 51 0x04>;
6162306a36Sopenharmony_ci	clocks = <&clks 208>, <&clks 118>, <&clks 208>;
6262306a36Sopenharmony_ci	clock-names = "core", "extal", "fsys";
6362306a36Sopenharmony_ci	dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
6462306a36Sopenharmony_ci	dma-names = "rx", "tx";
6562306a36Sopenharmony_ci	fsl,fifo-depth = <128>;
6662306a36Sopenharmony_ci	fsl,esai-synchronous;
6762306a36Sopenharmony_ci	big-endian;
6862306a36Sopenharmony_ci};
69