xref: /freebsd/sys/contrib/device-tree/Bindings/sound/fsl,qmc-audio.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2fac71e4eSEmmanuel Vadot%YAML 1.2
3fac71e4eSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/fsl,qmc-audio.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6fac71e4eSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: QMC audio
8fac71e4eSEmmanuel Vadot
9fac71e4eSEmmanuel Vadotmaintainers:
10fac71e4eSEmmanuel Vadot  - Herve Codina <herve.codina@bootlin.com>
11fac71e4eSEmmanuel Vadot
12fac71e4eSEmmanuel Vadotdescription: |
13fac71e4eSEmmanuel Vadot  The QMC audio is an ASoC component which uses QMC (QUICC Multichannel
14fac71e4eSEmmanuel Vadot  Controller) channels to transfer the audio data.
15fac71e4eSEmmanuel Vadot  It provides as many DAI as the number of QMC channel used.
16fac71e4eSEmmanuel Vadot
17fac71e4eSEmmanuel VadotallOf:
18fac71e4eSEmmanuel Vadot  - $ref: dai-common.yaml#
19fac71e4eSEmmanuel Vadot
20fac71e4eSEmmanuel Vadotproperties:
21fac71e4eSEmmanuel Vadot  compatible:
22fac71e4eSEmmanuel Vadot    const: fsl,qmc-audio
23fac71e4eSEmmanuel Vadot
24fac71e4eSEmmanuel Vadot  '#address-cells':
25fac71e4eSEmmanuel Vadot    const: 1
26fac71e4eSEmmanuel Vadot  '#size-cells':
27fac71e4eSEmmanuel Vadot    const: 0
28fac71e4eSEmmanuel Vadot  '#sound-dai-cells':
29fac71e4eSEmmanuel Vadot    const: 1
30fac71e4eSEmmanuel Vadot
31fac71e4eSEmmanuel VadotpatternProperties:
32fac71e4eSEmmanuel Vadot  '^dai@([0-9]|[1-5][0-9]|6[0-3])$':
33fac71e4eSEmmanuel Vadot    description:
34fac71e4eSEmmanuel Vadot      A DAI managed by this controller
35fac71e4eSEmmanuel Vadot    type: object
36*84943d6fSEmmanuel Vadot    additionalProperties: false
37fac71e4eSEmmanuel Vadot
38fac71e4eSEmmanuel Vadot    properties:
39fac71e4eSEmmanuel Vadot      reg:
40fac71e4eSEmmanuel Vadot        minimum: 0
41fac71e4eSEmmanuel Vadot        maximum: 63
42fac71e4eSEmmanuel Vadot        description:
43fac71e4eSEmmanuel Vadot          The DAI number
44fac71e4eSEmmanuel Vadot
45fac71e4eSEmmanuel Vadot      fsl,qmc-chan:
46fac71e4eSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/phandle-array
47fac71e4eSEmmanuel Vadot        items:
48fac71e4eSEmmanuel Vadot          - items:
49fac71e4eSEmmanuel Vadot              - description: phandle to QMC node
50fac71e4eSEmmanuel Vadot              - description: Channel number
51fac71e4eSEmmanuel Vadot        description:
52fac71e4eSEmmanuel Vadot          Should be a phandle/number pair. The phandle to QMC node and the QMC
53fac71e4eSEmmanuel Vadot          channel to use for this DAI.
54fac71e4eSEmmanuel Vadot
55fac71e4eSEmmanuel Vadot    required:
56fac71e4eSEmmanuel Vadot      - reg
57fac71e4eSEmmanuel Vadot      - fsl,qmc-chan
58fac71e4eSEmmanuel Vadot
59fac71e4eSEmmanuel Vadotrequired:
60fac71e4eSEmmanuel Vadot  - compatible
61fac71e4eSEmmanuel Vadot  - '#address-cells'
62fac71e4eSEmmanuel Vadot  - '#size-cells'
63fac71e4eSEmmanuel Vadot  - '#sound-dai-cells'
64fac71e4eSEmmanuel Vadot
65fac71e4eSEmmanuel VadotadditionalProperties: false
66fac71e4eSEmmanuel Vadot
67fac71e4eSEmmanuel Vadotexamples:
68fac71e4eSEmmanuel Vadot  - |
69fac71e4eSEmmanuel Vadot    audio_controller: audio-controller {
70fac71e4eSEmmanuel Vadot        compatible = "fsl,qmc-audio";
71fac71e4eSEmmanuel Vadot        #address-cells = <1>;
72fac71e4eSEmmanuel Vadot        #size-cells = <0>;
73fac71e4eSEmmanuel Vadot        #sound-dai-cells = <1>;
74fac71e4eSEmmanuel Vadot        dai@16 {
75fac71e4eSEmmanuel Vadot            reg = <16>;
76fac71e4eSEmmanuel Vadot            fsl,qmc-chan = <&qmc 16>;
77fac71e4eSEmmanuel Vadot        };
78fac71e4eSEmmanuel Vadot        dai@17 {
79fac71e4eSEmmanuel Vadot            reg = <17>;
80fac71e4eSEmmanuel Vadot            fsl,qmc-chan = <&qmc 17>;
81fac71e4eSEmmanuel Vadot        };
82fac71e4eSEmmanuel Vadot    };
83fac71e4eSEmmanuel Vadot
84fac71e4eSEmmanuel Vadot    sound {
85fac71e4eSEmmanuel Vadot        compatible = "simple-audio-card";
86fac71e4eSEmmanuel Vadot        #address-cells = <1>;
87fac71e4eSEmmanuel Vadot        #size-cells = <0>;
88fac71e4eSEmmanuel Vadot        simple-audio-card,dai-link@0 {
89fac71e4eSEmmanuel Vadot            reg = <0>;
90fac71e4eSEmmanuel Vadot            format = "dsp_b";
91fac71e4eSEmmanuel Vadot            cpu {
92fac71e4eSEmmanuel Vadot                sound-dai = <&audio_controller 16>;
93fac71e4eSEmmanuel Vadot            };
94fac71e4eSEmmanuel Vadot            codec {
95fac71e4eSEmmanuel Vadot                sound-dai = <&codec1>;
96fac71e4eSEmmanuel Vadot                dai-tdm-slot-num = <4>;
97fac71e4eSEmmanuel Vadot                dai-tdm-slot-width = <8>;
98fac71e4eSEmmanuel Vadot                /* TS 3, 5, 7, 9 */
99fac71e4eSEmmanuel Vadot                dai-tdm-slot-tx-mask = <0 0 0 1 0 1 0 1 0 1>;
100fac71e4eSEmmanuel Vadot                dai-tdm-slot-rx-mask = <0 0 0 1 0 1 0 1 0 1>;
101fac71e4eSEmmanuel Vadot            };
102fac71e4eSEmmanuel Vadot        };
103fac71e4eSEmmanuel Vadot        simple-audio-card,dai-link@1 {
104fac71e4eSEmmanuel Vadot            reg = <1>;
105fac71e4eSEmmanuel Vadot            format = "dsp_b";
106fac71e4eSEmmanuel Vadot            cpu {
107fac71e4eSEmmanuel Vadot                sound-dai = <&audio_controller 17>;
108fac71e4eSEmmanuel Vadot            };
109fac71e4eSEmmanuel Vadot            codec {
110fac71e4eSEmmanuel Vadot                sound-dai = <&codec2>;
111fac71e4eSEmmanuel Vadot                dai-tdm-slot-num = <4>;
112fac71e4eSEmmanuel Vadot                dai-tdm-slot-width = <8>;
113fac71e4eSEmmanuel Vadot                /* TS 2, 4, 6, 8 */
114fac71e4eSEmmanuel Vadot                dai-tdm-slot-tx-mask = <0 0 1 0 1 0 1 0 1>;
115fac71e4eSEmmanuel Vadot                dai-tdm-slot-rx-mask = <0 0 1 0 1 0 1 0 1>;
116fac71e4eSEmmanuel Vadot            };
117fac71e4eSEmmanuel Vadot        };
118fac71e4eSEmmanuel Vadot    };
119