summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/sound/fsl,qmc-audio.yaml
blob: b522ed7dcc51bf33b832c092811fa2e8cdb9615e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/fsl,qmc-audio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: QMC audio

maintainers:
  - Herve Codina <herve.codina@bootlin.com>

description: |
  The QMC audio is an ASoC component which uses QMC (QUICC Multichannel
  Controller) channels to transfer the audio data.
  It provides as many DAI as the number of QMC channel used.

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    const: fsl,qmc-audio

  '#address-cells':
    const: 1
  '#size-cells':
    const: 0
  '#sound-dai-cells':
    const: 1

patternProperties:
  '^dai@([0-9]|[1-5][0-9]|6[0-3])$':
    description:
      A DAI managed by this controller
    type: object
    additionalProperties: false

    properties:
      reg:
        minimum: 0
        maximum: 63
        description:
          The DAI number

      fsl,qmc-chan:
        $ref: /schemas/types.yaml#/definitions/phandle-array
        items:
          - items:
              - description: phandle to QMC node
              - description: Channel number
        description:
          Should be a phandle/number pair. The phandle to QMC node and the QMC
          channel to use for this DAI.

    required:
      - reg
      - fsl,qmc-chan

required:
  - compatible
  - '#address-cells'
  - '#size-cells'
  - '#sound-dai-cells'

additionalProperties: false

examples:
  - |
    audio_controller: audio-controller {
        compatible = "fsl,qmc-audio";
        #address-cells = <1>;
        #size-cells = <0>;
        #sound-dai-cells = <1>;
        dai@16 {
            reg = <16>;
            fsl,qmc-chan = <&qmc 16>;
        };
        dai@17 {
            reg = <17>;
            fsl,qmc-chan = <&qmc 17>;
        };
    };

    sound {
        compatible = "simple-audio-card";
        #address-cells = <1>;
        #size-cells = <0>;
        simple-audio-card,dai-link@0 {
            reg = <0>;
            format = "dsp_b";
            cpu {
                sound-dai = <&audio_controller 16>;
            };
            codec {
                sound-dai = <&codec1>;
                dai-tdm-slot-num = <4>;
                dai-tdm-slot-width = <8>;
                /* TS 3, 5, 7, 9 */
                dai-tdm-slot-tx-mask = <0 0 0 1 0 1 0 1 0 1>;
                dai-tdm-slot-rx-mask = <0 0 0 1 0 1 0 1 0 1>;
            };
        };
        simple-audio-card,dai-link@1 {
            reg = <1>;
            format = "dsp_b";
            cpu {
                sound-dai = <&audio_controller 17>;
            };
            codec {
                sound-dai = <&codec2>;
                dai-tdm-slot-num = <4>;
                dai-tdm-slot-width = <8>;
                /* TS 2, 4, 6, 8 */
                dai-tdm-slot-tx-mask = <0 0 1 0 1 0 1 0 1>;
                dai-tdm-slot-rx-mask = <0 0 1 0 1 0 1 0 1>;
            };
        };
    };