blob: 7fe85b08f9dfa03caf4cf1e81f831b02a28cc05c [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-afe-pcm.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mediatek AFE PCM controller for mt8186
8
9maintainers:
10 - Jiaxin Yu <jiaxin.yu@mediatek.com>
11
12properties:
13 compatible:
14 const: mediatek,mt8186-sound
15
16 reg:
17 maxItems: 1
18
19 interrupts:
20 maxItems: 1
21
22 resets:
23 maxItems: 1
24
25 reset-names:
26 const: audiosys
27
28 mediatek,apmixedsys:
29 $ref: /schemas/types.yaml#/definitions/phandle
30 description: The phandle of the mediatek apmixedsys controller
31
32 mediatek,infracfg:
33 $ref: /schemas/types.yaml#/definitions/phandle
34 description: The phandle of the mediatek infracfg controller
35
36 mediatek,topckgen:
37 $ref: /schemas/types.yaml#/definitions/phandle
38 description: The phandle of the mediatek topckgen controller
39
40 clocks:
41 items:
42 - description: audio infra sys clock
43 - description: audio infra 26M clock
44 - description: audio top mux
45 - description: audio intbus mux
46 - description: mainpll 136.5M clock
47 - description: faud1 mux
48 - description: apll1 clock
49 - description: faud2 mux
50 - description: apll2 clock
51 - description: audio engen1 mux
52 - description: apll1_d8 22.5792M clock
53 - description: audio engen2 mux
54 - description: apll2_d8 24.576M clock
55 - description: i2s0 mclk mux
56 - description: i2s1 mclk mux
57 - description: i2s2 mclk mux
58 - description: i2s4 mclk mux
59 - description: tdm mclk mux
60 - description: i2s0_mck divider
61 - description: i2s1_mck divider
62 - description: i2s2_mck divider
63 - description: i2s4_mck divider
64 - description: tdm_mck divider
65 - description: audio hires mux
66 - description: 26M clock
67
68 clock-names:
69 items:
70 - const: aud_infra_clk
71 - const: mtkaif_26m_clk
72 - const: top_mux_audio
73 - const: top_mux_audio_int
74 - const: top_mainpll_d2_d4
75 - const: top_mux_aud_1
76 - const: top_apll1_ck
77 - const: top_mux_aud_2
78 - const: top_apll2_ck
79 - const: top_mux_aud_eng1
80 - const: top_apll1_d8
81 - const: top_mux_aud_eng2
82 - const: top_apll2_d8
83 - const: top_i2s0_m_sel
84 - const: top_i2s1_m_sel
85 - const: top_i2s2_m_sel
86 - const: top_i2s4_m_sel
87 - const: top_tdm_m_sel
88 - const: top_apll12_div0
89 - const: top_apll12_div1
90 - const: top_apll12_div2
91 - const: top_apll12_div4
92 - const: top_apll12_div_tdm
93 - const: top_mux_audio_h
94 - const: top_clk26m_clk
95
96required:
97 - compatible
98 - interrupts
99 - resets
100 - reset-names
101 - mediatek,apmixedsys
102 - mediatek,infracfg
103 - mediatek,topckgen
104 - clocks
105 - clock-names
106
107additionalProperties: false
108
109examples:
110 - |
111 #include <dt-bindings/interrupt-controller/arm-gic.h>
112 #include <dt-bindings/interrupt-controller/irq.h>
113
114 afe: mt8186-afe-pcm@11210000 {
115 compatible = "mediatek,mt8186-sound";
116 reg = <0x11210000 0x2000>;
117 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
118 resets = <&watchdog 17>; //MT8186_TOPRGU_AUDIO_SW_RST
119 reset-names = "audiosys";
120 mediatek,apmixedsys = <&apmixedsys>;
121 mediatek,infracfg = <&infracfg>;
122 mediatek,topckgen = <&topckgen>;
123 clocks = <&infracfg_ao 44>, //CLK_INFRA_AO_AUDIO
124 <&infracfg_ao 54>, //CLK_INFRA_AO_AUDIO_26M_BCLK
125 <&topckgen 15>, //CLK_TOP_AUDIO
126 <&topckgen 16>, //CLK_TOP_AUD_INTBUS
127 <&topckgen 70>, //CLK_TOP_MAINPLL_D2_D4
128 <&topckgen 17>, //CLK_TOP_AUD_1
129 <&apmixedsys 12>, //CLK_APMIXED_APLL1
130 <&topckgen 18>, //CLK_TOP_AUD_2
131 <&apmixedsys 13>, //CLK_APMIXED_APLL2
132 <&topckgen 19>, //CLK_TOP_AUD_ENGEN1
133 <&topckgen 101>, //CLK_TOP_APLL1_D8
134 <&topckgen 20>, //CLK_TOP_AUD_ENGEN2
135 <&topckgen 104>, //CLK_TOP_APLL2_D8
136 <&topckgen 63>, //CLK_TOP_APLL_I2S0_MCK_SEL
137 <&topckgen 64>, //CLK_TOP_APLL_I2S1_MCK_SEL
138 <&topckgen 65>, //CLK_TOP_APLL_I2S2_MCK_SEL
139 <&topckgen 66>, //CLK_TOP_APLL_I2S4_MCK_SEL
140 <&topckgen 67>, //CLK_TOP_APLL_TDMOUT_MCK_SEL
141 <&topckgen 131>, //CLK_TOP_APLL12_CK_DIV0
142 <&topckgen 132>, //CLK_TOP_APLL12_CK_DIV1
143 <&topckgen 133>, //CLK_TOP_APLL12_CK_DIV2
144 <&topckgen 134>, //CLK_TOP_APLL12_CK_DIV4
145 <&topckgen 135>, //CLK_TOP_APLL12_CK_DIV_TDMOUT_M
146 <&topckgen 44>, //CLK_TOP_AUDIO_H
147 <&clk26m>;
148 clock-names = "aud_infra_clk",
149 "mtkaif_26m_clk",
150 "top_mux_audio",
151 "top_mux_audio_int",
152 "top_mainpll_d2_d4",
153 "top_mux_aud_1",
154 "top_apll1_ck",
155 "top_mux_aud_2",
156 "top_apll2_ck",
157 "top_mux_aud_eng1",
158 "top_apll1_d8",
159 "top_mux_aud_eng2",
160 "top_apll2_d8",
161 "top_i2s0_m_sel",
162 "top_i2s1_m_sel",
163 "top_i2s2_m_sel",
164 "top_i2s4_m_sel",
165 "top_tdm_m_sel",
166 "top_apll12_div0",
167 "top_apll12_div1",
168 "top_apll12_div2",
169 "top_apll12_div4",
170 "top_apll12_div_tdm",
171 "top_mux_audio_h",
172 "top_clk26m_clk";
173 };
174
175...