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-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...
176