xref: /linux/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.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/mt8186-mt6366-rt1019-rt5682s.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mediatek MT8186 with MT6366, RT1019 and RT5682S 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-rt1019-rt5682s-sound
22      - mediatek,mt8186-mt6366-rt5682s-max98360-sound
23      - mediatek,mt8186-mt6366-rt5650-sound
24
25  audio-routing:
26    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
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        - HDMI1
38        - Headphone
39        - IN1P
40        - IN1N
41        - Line Out
42        - Speakers
43
44        # Sources
45        - Headset Mic
46        - HPOL
47        - HPOR
48        - Speaker
49        - SPOL
50        - SPOR
51        - TX
52
53  mediatek,platform:
54    $ref: /schemas/types.yaml#/definitions/phandle
55    description: The phandle of MT8186 ASoC platform.
56
57  dmic-gpios:
58    maxItems: 1
59    description:
60      dmic-gpios optional prop for switching between two DMICs.
61      Ex, the GPIO can control a MUX HW component to select
62      dmic clk and data form a Front or Rear dmic.
63
64  headset-codec:
65    type: object
66    deprecated: true
67    additionalProperties: false
68    properties:
69      sound-dai:
70        maxItems: 1
71    required:
72      - sound-dai
73
74  playback-codecs:
75    type: object
76    deprecated: true
77    additionalProperties: false
78    properties:
79      sound-dai:
80        items:
81          - description: phandle of dp codec
82          - description: phandle of l channel speaker codec
83          - description: phandle of r channel speaker codec
84        minItems: 2
85    required:
86      - sound-dai
87
88  mediatek,adsp:
89    $ref: /schemas/types.yaml#/definitions/phandle
90    description: The phandle of MT8186 ADSP platform.
91
92  mediatek,dai-link:
93    $ref: /schemas/types.yaml#/definitions/string-array
94    description:
95      A list of the desired dai-links in the sound card. Each entry is a
96      name defined in the machine driver.
97
98patternProperties:
99  ".*-dai-link$":
100    type: object
101    additionalProperties: false
102    description:
103      Container for dai-link level properties and CODEC sub-nodes.
104
105    properties:
106      link-name:
107        description: Indicates dai-link name and PCM stream name
108        enum: [ I2S0, I2S1, I2S2, I2S3 ]
109
110      codec:
111        description: Holds subnode which indicates codec dai.
112        type: object
113        additionalProperties: false
114        properties:
115          sound-dai:
116            minItems: 1
117            maxItems: 2
118        required:
119          - sound-dai
120
121      dai-format:
122        description: audio format
123        enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]
124
125      mediatek,clk-provider:
126        $ref: /schemas/types.yaml#/definitions/string
127        description: Indicates dai-link clock master.
128        enum: [ cpu, codec ]
129
130    required:
131      - link-name
132
133unevaluatedProperties: false
134
135required:
136  - compatible
137  - mediatek,platform
138
139# Disallow legacy properties if xxx-dai-link nodes are specified
140if:
141  not:
142    patternProperties:
143      ".*-dai-link$": false
144then:
145  properties:
146    headset-codec: false
147    speaker-codecs: false
148
149examples:
150  - |
151    #include <dt-bindings/gpio/gpio.h>
152
153    sound: mt8186-sound {
154        compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound";
155        model = "mt8186_rt1019_rt5682s";
156        pinctrl-names = "aud_clk_mosi_off",
157                        "aud_clk_mosi_on",
158                        "aud_gpio_dmic_sec";
159        pinctrl-0 = <&aud_clk_mosi_off>;
160        pinctrl-1 = <&aud_clk_mosi_on>;
161        pinctrl-2 = <&aud_gpio_dmic_sec>;
162        mediatek,platform = <&afe>;
163
164        dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
165
166        audio-routing =
167                "Headphone", "HPOL",
168                "Headphone", "HPOR",
169                "IN1P", "Headset Mic",
170                "Speakers", "Speaker",
171                "HDMI1", "TX";
172
173        hs-playback-dai-link {
174                link-name = "I2S0";
175                dai-format = "i2s";
176                mediatek,clk-provider = "cpu";
177                codec {
178                        sound-dai = <&rt5682s 0>;
179                };
180        };
181
182        hs-capture-dai-link {
183                link-name = "I2S1";
184                dai-format = "i2s";
185                mediatek,clk-provider = "cpu";
186                codec {
187                        sound-dai = <&rt5682s 0>;
188                };
189        };
190
191        spk-hdmi-playback-dai-link {
192                link-name = "I2S3";
193                dai-format = "i2s";
194                mediatek,clk-provider = "cpu";
195                codec {
196                        sound-dai = <&it6505dptx>, <&rt1019p>;
197                };
198        };
199    };
200
201...
202