1*7d0873ebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*7d0873ebSEmmanuel Vadot%YAML 1.2 3*7d0873ebSEmmanuel Vadot--- 4*7d0873ebSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/fsl,audmix.yaml# 5*7d0873ebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*7d0873ebSEmmanuel Vadot 7*7d0873ebSEmmanuel Vadottitle: NXP Audio Mixer (AUDMIX). 8*7d0873ebSEmmanuel Vadot 9*7d0873ebSEmmanuel Vadotmaintainers: 10*7d0873ebSEmmanuel Vadot - Shengjiu Wang <shengjiu.wang@nxp.com> 11*7d0873ebSEmmanuel Vadot - Frank Li <Frank.Li@nxp.com> 12*7d0873ebSEmmanuel Vadot 13*7d0873ebSEmmanuel Vadotdescription: | 14*7d0873ebSEmmanuel Vadot The Audio Mixer is a on-chip functional module that allows mixing of two 15*7d0873ebSEmmanuel Vadot audio streams into a single audio stream. Audio Mixer has two input serial 16*7d0873ebSEmmanuel Vadot audio interfaces. These are driven by two Synchronous Audio interface 17*7d0873ebSEmmanuel Vadot modules (SAI). Each input serial interface carries 8 audio channels in its 18*7d0873ebSEmmanuel Vadot frame in TDM manner. Mixer mixes audio samples of corresponding channels 19*7d0873ebSEmmanuel Vadot from two interfaces into a single sample. Before mixing, audio samples of 20*7d0873ebSEmmanuel Vadot two inputs can be attenuated based on configuration. The output of the 21*7d0873ebSEmmanuel Vadot Audio Mixer is also a serial audio interface. Like input interfaces it has 22*7d0873ebSEmmanuel Vadot the same TDM frame format. This output is used to drive the serial DAC TDM 23*7d0873ebSEmmanuel Vadot interface of audio codec and also sent to the external pins along with the 24*7d0873ebSEmmanuel Vadot receive path of normal audio SAI module for readback by the CPU. 25*7d0873ebSEmmanuel Vadot 26*7d0873ebSEmmanuel Vadot The output of Audio Mixer can be selected from any of the three streams 27*7d0873ebSEmmanuel Vadot - serial audio input 1 28*7d0873ebSEmmanuel Vadot - serial audio input 2 29*7d0873ebSEmmanuel Vadot - mixed audio 30*7d0873ebSEmmanuel Vadot 31*7d0873ebSEmmanuel Vadot Mixing operation is independent of audio sample rate but the two audio 32*7d0873ebSEmmanuel Vadot input streams must have same audio sample rate with same number of channels 33*7d0873ebSEmmanuel Vadot in TDM frame to be eligible for mixing. 34*7d0873ebSEmmanuel Vadot 35*7d0873ebSEmmanuel Vadotproperties: 36*7d0873ebSEmmanuel Vadot compatible: 37*7d0873ebSEmmanuel Vadot const: fsl,imx8qm-audmix 38*7d0873ebSEmmanuel Vadot 39*7d0873ebSEmmanuel Vadot reg: 40*7d0873ebSEmmanuel Vadot maxItems: 1 41*7d0873ebSEmmanuel Vadot 42*7d0873ebSEmmanuel Vadot clocks: 43*7d0873ebSEmmanuel Vadot maxItems: 1 44*7d0873ebSEmmanuel Vadot 45*7d0873ebSEmmanuel Vadot clock-names: 46*7d0873ebSEmmanuel Vadot items: 47*7d0873ebSEmmanuel Vadot - const: ipg 48*7d0873ebSEmmanuel Vadot 49*7d0873ebSEmmanuel Vadot power-domains: 50*7d0873ebSEmmanuel Vadot maxItems: 1 51*7d0873ebSEmmanuel Vadot 52*7d0873ebSEmmanuel Vadot dais: 53*7d0873ebSEmmanuel Vadot description: contain a list of phandles to AUDMIX connected DAIs. 54*7d0873ebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 55*7d0873ebSEmmanuel Vadot minItems: 2 56*7d0873ebSEmmanuel Vadot items: 57*7d0873ebSEmmanuel Vadot - description: the AUDMIX output 58*7d0873ebSEmmanuel Vadot maxItems: 1 59*7d0873ebSEmmanuel Vadot - description: serial audio input 1 60*7d0873ebSEmmanuel Vadot maxItems: 1 61*7d0873ebSEmmanuel Vadot - description: serial audio input 2 62*7d0873ebSEmmanuel Vadot maxItems: 1 63*7d0873ebSEmmanuel Vadot 64*7d0873ebSEmmanuel Vadotrequired: 65*7d0873ebSEmmanuel Vadot - compatible 66*7d0873ebSEmmanuel Vadot - reg 67*7d0873ebSEmmanuel Vadot - clocks 68*7d0873ebSEmmanuel Vadot - clock-names 69*7d0873ebSEmmanuel Vadot - power-domains 70*7d0873ebSEmmanuel Vadot - dais 71*7d0873ebSEmmanuel Vadot 72*7d0873ebSEmmanuel VadotunevaluatedProperties: false 73*7d0873ebSEmmanuel Vadot 74*7d0873ebSEmmanuel Vadotexamples: 75*7d0873ebSEmmanuel Vadot - | 76*7d0873ebSEmmanuel Vadot audmix@59840000 { 77*7d0873ebSEmmanuel Vadot compatible = "fsl,imx8qm-audmix"; 78*7d0873ebSEmmanuel Vadot reg = <0x59840000 0x10000>; 79*7d0873ebSEmmanuel Vadot clocks = <&amix_lpcg 0>; 80*7d0873ebSEmmanuel Vadot clock-names = "ipg"; 81*7d0873ebSEmmanuel Vadot power-domains = <&pd_audmix>; 82*7d0873ebSEmmanuel Vadot dais = <&sai4>, <&sai5>; 83*7d0873ebSEmmanuel Vadot }; 84