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