blob: ed93f18ef985cfe9b3ba5884af4679510a4bdaaf [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
Tom Rini762f85b2024-07-20 11:15:10 -060015allOf:
16 - $ref: sound-card-common.yaml#
17
Tom Rini53633a82024-02-29 12:33:36 -050018properties:
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
Tom Rini762f85b2024-07-20 11:15:10 -060025 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
Tom Rini53633a82024-02-29 12:33:36 -050053 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
Tom Rini762f85b2024-07-20 11:15:10 -060066 deprecated: true
Tom Rini53633a82024-02-29 12:33:36 -050067 additionalProperties: false
68 properties:
69 sound-dai:
70 maxItems: 1
71 required:
72 - sound-dai
73
74 playback-codecs:
75 type: object
Tom Rini762f85b2024-07-20 11:15:10 -060076 deprecated: true
Tom Rini53633a82024-02-29 12:33:36 -050077 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
Tom Rini762f85b2024-07-20 11:15:10 -060098patternProperties:
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
Tom Rini53633a82024-02-29 12:33:36 -0500134
135required:
136 - compatible
137 - mediatek,platform
Tom Rini762f85b2024-07-20 11:15:10 -0600138
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
Tom Rini53633a82024-02-29 12:33:36 -0500148
149examples:
150 - |
151 #include <dt-bindings/gpio/gpio.h>
152
153 sound: mt8186-sound {
154 compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound";
Tom Rini762f85b2024-07-20 11:15:10 -0600155 model = "mt8186_rt1019_rt5682s";
Tom Rini53633a82024-02-29 12:33:36 -0500156 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>;
Tom Rini762f85b2024-07-20 11:15:10 -0600162 mediatek,platform = <&afe>;
Tom Rini53633a82024-02-29 12:33:36 -0500163
164 dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
165
Tom Rini762f85b2024-07-20 11:15:10 -0600166 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 };
Tom Rini53633a82024-02-29 12:33:36 -0500180 };
181
Tom Rini762f85b2024-07-20 11:15:10 -0600182 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 };
Tom Rini53633a82024-02-29 12:33:36 -0500198 };
199 };
200
201...