xref: /linux/Documentation/devicetree/bindings/sound/mt8186-mt6366-da7219-max98357.yaml (revision 40ccd6aa3e2e05be93394e3cd560c718dedfcc77)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/mt8186-mt6366-da7219-max98357.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mediatek MT8186 with MT6366, DA7219 and MAX98357 ASoC sound card driver
8
9maintainers:
10  - Jiaxin Yu <jiaxin.yu@mediatek.com>
11
12description:
13  This binding describes the MT8186 sound card.
14
15allOf:
16  - $ref: sound-card-common.yaml#
17
18properties:
19  compatible:
20    enum:
21      - mediatek,mt8186-mt6366-da7219-max98357-sound
22
23  audio-routing:
24    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
25    description:
26      A list of the connections between audio components. Each entry is a
27      pair of strings, the first being the connection's sink, the second
28      being the connection's source.
29      Valid names could be the input or output widgets of audio components,
30      power supplies, MicBias of codec and the software switch.
31    minItems: 2
32    items:
33      enum:
34        # Sinks
35        - HDMI1
36        - Headphones
37        - Line Out
38        - MIC
39        - Speakers
40
41        # Sources
42        - Headset Mic
43        - HPL
44        - HPR
45        - Speaker
46        - TX
47
48  mediatek,platform:
49    $ref: /schemas/types.yaml#/definitions/phandle
50    description: The phandle of MT8186 ASoC platform.
51
52  headset-codec:
53    type: object
54    deprecated: true
55    additionalProperties: false
56    properties:
57      sound-dai:
58        maxItems: 1
59    required:
60      - sound-dai
61
62  playback-codecs:
63    type: object
64    deprecated: true
65    additionalProperties: false
66    properties:
67      sound-dai:
68        items:
69          - description: phandle of dp codec
70          - description: phandle of l channel speaker codec
71          - description: phandle of r channel speaker codec
72        minItems: 2
73    required:
74      - sound-dai
75
76  mediatek,adsp:
77    $ref: /schemas/types.yaml#/definitions/phandle
78    description: The phandle of MT8186 ADSP platform.
79
80  mediatek,dai-link:
81    $ref: /schemas/types.yaml#/definitions/string-array
82    description:
83      A list of the desired dai-links in the sound card. Each entry is a
84      name defined in the machine driver.
85
86patternProperties:
87  ".*-dai-link$":
88    type: object
89    additionalProperties: false
90    description:
91      Container for dai-link level properties and CODEC sub-nodes.
92
93    properties:
94      link-name:
95        description: Indicates dai-link name and PCM stream name
96        items:
97          enum:
98            - I2S0
99            - I2S1
100            - I2S2
101            - I2S3
102
103      codec:
104        description: Holds subnode which indicates codec dai.
105        type: object
106        additionalProperties: false
107        properties:
108          sound-dai:
109            minItems: 1
110            maxItems: 2
111        required:
112          - sound-dai
113
114      dai-format:
115        description: audio format
116        items:
117          enum:
118            - i2s
119            - right_j
120            - left_j
121            - dsp_a
122            - dsp_b
123
124      mediatek,clk-provider:
125        $ref: /schemas/types.yaml#/definitions/string
126        description: Indicates dai-link clock master.
127        items:
128          enum:
129            - cpu
130            - codec
131
132    required:
133      - link-name
134
135unevaluatedProperties: false
136
137required:
138  - compatible
139  - mediatek,platform
140
141# Disallow legacy properties if xxx-dai-link nodes are specified
142if:
143  not:
144    patternProperties:
145      ".*-dai-link$": false
146then:
147  properties:
148    headset-codec: false
149    speaker-codecs: false
150
151examples:
152  - |
153
154    sound: mt8186-sound {
155        compatible = "mediatek,mt8186-mt6366-da7219-max98357-sound";
156        model = "mt8186_da7219_m98357";
157        pinctrl-names = "aud_clk_mosi_off",
158                        "aud_clk_mosi_on";
159        pinctrl-0 = <&aud_clk_mosi_off>;
160        pinctrl-1 = <&aud_clk_mosi_on>;
161        mediatek,platform = <&afe>;
162
163        audio-routing =
164                "Headphones", "HPL",
165                "Headphones", "HPR",
166                "MIC", "Headset Mic",
167                "Speakers", "Speaker",
168                "HDMI1", "TX";
169
170        hs-playback-dai-link {
171                link-name = "I2S0";
172                dai-format = "i2s";
173                mediatek,clk-provider = "cpu";
174                codec {
175                        sound-dai = <&da7219>;
176                };
177        };
178
179        hs-capture-dai-link {
180                link-name = "I2S1";
181                dai-format = "i2s";
182                mediatek,clk-provider = "cpu";
183                codec {
184                        sound-dai = <&da7219>;
185                };
186        };
187
188        spk-dp-playback-dai-link {
189                link-name = "I2S3";
190                dai-format = "i2s";
191                mediatek,clk-provider = "cpu";
192                codec {
193                        sound-dai = <&anx_bridge_dp>, <&max98357a>;
194                };
195        };
196    };
197
198...
199