1NXP Audio Mixer (AUDMIX).
2
3The Audio Mixer is a on-chip functional module that allows mixing of two
4audio streams into a single audio stream. Audio Mixer has two input serial
5audio interfaces. These are driven by two Synchronous Audio interface
6modules (SAI). Each input serial interface carries 8 audio channels in its
7frame in TDM manner. Mixer mixes audio samples of corresponding channels
8from two interfaces into a single sample. Before mixing, audio samples of
9two inputs can be attenuated based on configuration. The output of the
10Audio Mixer is also a serial audio interface. Like input interfaces it has
11the same TDM frame format. This output is used to drive the serial DAC TDM
12interface of audio codec and also sent to the external pins along with the
13receive path of normal audio SAI module for readback by the CPU.
14
15The output of Audio Mixer can be selected from any of the three streams
16 - serial audio input 1
17 - serial audio input 2
18 - mixed audio
19
20Mixing operation is independent of audio sample rate but the two audio
21input streams must have same audio sample rate with same number of channels
22in TDM frame to be eligible for mixing.
23
24Device driver required properties:
25=================================
26  - compatible		: Compatible list, contains "fsl,imx8qm-audmix"
27
28  - reg			: Offset and length of the register set for the device.
29
30  - clocks		: Must contain an entry for each entry in clock-names.
31
32  - clock-names		: Must include the "ipg" for register access.
33
34  - power-domains	: Must contain the phandle to AUDMIX power domain node
35
36  - dais		: Must contain a list of phandles to AUDMIX connected
37			  DAIs. The current implementation requires two phandles
38			  to SAI interfaces to be provided, the first SAI in the
39			  list being used to route the AUDMIX output.
40
41Device driver configuration example:
42======================================
43  audmix: audmix@59840000 {
44    compatible = "fsl,imx8qm-audmix";
45    reg = <0x0 0x59840000 0x0 0x10000>;
46    clocks = <&clk IMX8QXP_AUD_AUDMIX_IPG>;
47    clock-names = "ipg";
48    power-domains = <&pd_audmix>;
49    dais = <&sai4>, <&sai5>;
50  };
51