xref: /freebsd/sys/contrib/device-tree/Bindings/sound/fsl,audmix.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
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