Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 1 | NXP Audio Mixer (AUDMIX). |
| 2 | |
| 3 | The Audio Mixer is a on-chip functional module that allows mixing of two |
| 4 | audio streams into a single audio stream. Audio Mixer has two input serial |
| 5 | audio interfaces. These are driven by two Synchronous Audio interface |
| 6 | modules (SAI). Each input serial interface carries 8 audio channels in its |
| 7 | frame in TDM manner. Mixer mixes audio samples of corresponding channels |
| 8 | from two interfaces into a single sample. Before mixing, audio samples of |
| 9 | two inputs can be attenuated based on configuration. The output of the |
| 10 | Audio Mixer is also a serial audio interface. Like input interfaces it has |
| 11 | the same TDM frame format. This output is used to drive the serial DAC TDM |
| 12 | interface of audio codec and also sent to the external pins along with the |
| 13 | receive path of normal audio SAI module for readback by the CPU. |
| 14 | |
| 15 | The 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 | |
| 20 | Mixing operation is independent of audio sample rate but the two audio |
| 21 | input streams must have same audio sample rate with same number of channels |
| 22 | in TDM frame to be eligible for mixing. |
| 23 | |
| 24 | Device 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 | |
| 41 | Device 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 | }; |