xref: /linux/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/mt8192-mt6359-rt1015-rt5682.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mediatek MT8192 with MT6359, RT1015 and RT5682 ASoC sound card driver
8
9maintainers:
10  - Jiaxin Yu <jiaxin.yu@mediatek.com>
11  - Shane Chien <shane.chien@mediatek.com>
12
13description:
14  This binding describes the MT8192 sound card.
15
16allOf:
17  - $ref: sound-card-common.yaml#
18
19properties:
20  compatible:
21    enum:
22      - mediatek,mt8192_mt6359_rt1015_rt5682
23      - mediatek,mt8192_mt6359_rt1015p_rt5682
24      - mediatek,mt8192_mt6359_rt1015p_rt5682s
25
26  audio-routing:
27    description:
28      A list of the connections between audio components. Each entry is a
29      pair of strings, the first being the connection's sink, the second
30      being the connection's source.
31      Valid names could be the input or output widgets of audio components,
32      power supplies, MicBias of codec and the software switch.
33    minItems: 2
34    items:
35      enum:
36        # Sinks
37        - Speakers
38        - Headphone Jack
39        - IN1P
40        - Left Spk
41        - Right Spk
42
43        # Sources
44        - Headset Mic
45        - HPOL
46        - HPOR
47        - Left SPO
48        - Right SPO
49        - Speaker
50
51  mediatek,platform:
52    $ref: /schemas/types.yaml#/definitions/phandle
53    description: The phandle of MT8192 ASoC platform.
54
55  mediatek,hdmi-codec:
56    $ref: /schemas/types.yaml#/definitions/phandle
57    description: The phandle of HDMI codec.
58    deprecated: true
59
60  headset-codec:
61    type: object
62    additionalProperties: false
63    deprecated: true
64
65    properties:
66      sound-dai:
67        maxItems: 1
68    required:
69      - sound-dai
70
71  speaker-codecs:
72    type: object
73    additionalProperties: false
74    deprecated: true
75
76    properties:
77      sound-dai:
78        minItems: 1
79        maxItems: 2
80        items:
81          maxItems: 1
82    required:
83      - sound-dai
84
85patternProperties:
86  ".*-dai-link$":
87    type: object
88    additionalProperties: false
89
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        enum:
97          - I2S0
98          - I2S1
99          - I2S2
100          - I2S3
101          - I2S4
102          - I2S5
103          - I2S6
104          - I2S7
105          - I2S8
106          - I2S9
107          - TDM
108
109      codec:
110        description: Holds subnode which indicates codec dai.
111        type: object
112        additionalProperties: false
113        properties:
114          sound-dai:
115            minItems: 1
116            maxItems: 2
117        required:
118          - sound-dai
119
120      dai-format:
121        description: audio format
122        enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]
123
124      mediatek,clk-provider:
125        $ref: /schemas/types.yaml#/definitions/string
126        description: Indicates dai-link clock master.
127        enum: [ cpu, codec ]
128
129    required:
130      - link-name
131
132unevaluatedProperties: false
133
134required:
135  - compatible
136  - mediatek,platform
137
138# Disallow legacy properties if xxx-dai-link nodes are specified
139if:
140  not:
141    patternProperties:
142      ".*-dai-link$": false
143then:
144  properties:
145    headset-codec: false
146    speaker-codecs: false
147    mediatek,hdmi-codec: false
148
149examples:
150  - |
151
152    sound: mt8192-sound {
153        compatible = "mediatek,mt8192_mt6359_rt1015_rt5682";
154        model = "mt8192_mt6359_rt1015_rt5682";
155        pinctrl-names = "aud_clk_mosi_off",
156                        "aud_clk_mosi_on";
157        pinctrl-0 = <&aud_clk_mosi_off>;
158        pinctrl-1 = <&aud_clk_mosi_on>;
159        mediatek,platform = <&afe>;
160
161        audio-routing =
162                "Headphone Jack", "HPOL",
163                "Headphone Jack", "HPOR",
164                "IN1P", "Headset Mic",
165                "Speakers", "Speaker";
166
167        spk-playback-dai-link {
168                link-name = "I2S3";
169                dai-format = "i2s";
170                mediatek,clk-provider = "cpu";
171                codec {
172                        sound-dai = <&rt1015p>;
173                };
174        };
175
176        hs-playback-dai-link {
177                link-name = "I2S8";
178                dai-format = "i2s";
179                mediatek,clk-provider = "cpu";
180                codec {
181                        sound-dai = <&rt5682 0>;
182                };
183        };
184
185        hs-capture-dai-link {
186                link-name = "I2S9";
187                dai-format = "i2s";
188                mediatek,clk-provider = "cpu";
189                codec {
190                        sound-dai = <&rt5682 0>;
191                };
192        };
193
194        displayport-dai-link {
195                link-name = "TDM";
196                dai-format = "dsp_a";
197                codec {
198                        sound-dai = <&anx_bridge_dp>;
199                };
200        };
201    };
202
203...
204