Merge tag 'block-6.13-20242901' of git://git.kernel.dk/linux
[drm/drm-misc.git] / Documentation / devicetree / bindings / sound / mt8186-mt6366-rt1019-rt5682s.yaml
blobed93f18ef985cfe9b3ba5884af4679510a4bdaaf
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#
7 title: Mediatek MT8186 with MT6366, RT1019 and RT5682S ASoC sound card driver
9 maintainers:
10   - Jiaxin Yu <jiaxin.yu@mediatek.com>
12 description:
13   This binding describes the MT8186 sound card.
15 allOf:
16   - $ref: sound-card-common.yaml#
18 properties:
19   compatible:
20     enum:
21       - mediatek,mt8186-mt6366-rt1019-rt5682s-sound
22       - mediatek,mt8186-mt6366-rt5682s-max98360-sound
23       - mediatek,mt8186-mt6366-rt5650-sound
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
44         # Sources
45         - Headset Mic
46         - HPOL
47         - HPOR
48         - Speaker
49         - SPOL
50         - SPOR
51         - TX
53   mediatek,platform:
54     $ref: /schemas/types.yaml#/definitions/phandle
55     description: The phandle of MT8186 ASoC platform.
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.
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
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
88   mediatek,adsp:
89     $ref: /schemas/types.yaml#/definitions/phandle
90     description: The phandle of MT8186 ADSP platform.
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.
98 patternProperties:
99   ".*-dai-link$":
100     type: object
101     additionalProperties: false
102     description:
103       Container for dai-link level properties and CODEC sub-nodes.
105     properties:
106       link-name:
107         description: Indicates dai-link name and PCM stream name
108         enum: [ I2S0, I2S1, I2S2, I2S3 ]
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
121       dai-format:
122         description: audio format
123         enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]
125       mediatek,clk-provider:
126         $ref: /schemas/types.yaml#/definitions/string
127         description: Indicates dai-link clock master.
128         enum: [ cpu, codec ]
130     required:
131       - link-name
133 unevaluatedProperties: false
135 required:
136   - compatible
137   - mediatek,platform
139 # Disallow legacy properties if xxx-dai-link nodes are specified
141   not:
142     patternProperties:
143       ".*-dai-link$": false
144 then:
145   properties:
146     headset-codec: false
147     speaker-codecs: false
149 examples:
150   - |
151     #include <dt-bindings/gpio/gpio.h>
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>;
164         dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
166         audio-routing =
167                 "Headphone", "HPOL",
168                 "Headphone", "HPOR",
169                 "IN1P", "Headset Mic",
170                 "Speakers", "Speaker",
171                 "HDMI1", "TX";
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         };
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         };
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     };