xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunMediatek AFE PCM controller for mt2701
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired properties:
4*4882a593Smuzhiyun- compatible: should be one of the followings.
5*4882a593Smuzhiyun	      - "mediatek,mt2701-audio"
6*4882a593Smuzhiyun	      - "mediatek,mt7622-audio"
7*4882a593Smuzhiyun- interrupts: should contain AFE and ASYS interrupts
8*4882a593Smuzhiyun- interrupt-names: should be "afe" and "asys"
9*4882a593Smuzhiyun- power-domains: should define the power domain
10*4882a593Smuzhiyun- clocks: Must contain an entry for each entry in clock-names
11*4882a593Smuzhiyun  See ../clocks/clock-bindings.txt for details
12*4882a593Smuzhiyun- clock-names: should have these clock names:
13*4882a593Smuzhiyun		"infra_sys_audio_clk",
14*4882a593Smuzhiyun		"top_audio_mux1_sel",
15*4882a593Smuzhiyun		"top_audio_mux2_sel",
16*4882a593Smuzhiyun		"top_audio_a1sys_hp",
17*4882a593Smuzhiyun		"top_audio_a2sys_hp",
18*4882a593Smuzhiyun		"i2s0_src_sel",
19*4882a593Smuzhiyun		"i2s1_src_sel",
20*4882a593Smuzhiyun		"i2s2_src_sel",
21*4882a593Smuzhiyun		"i2s3_src_sel",
22*4882a593Smuzhiyun		"i2s0_src_div",
23*4882a593Smuzhiyun		"i2s1_src_div",
24*4882a593Smuzhiyun		"i2s2_src_div",
25*4882a593Smuzhiyun		"i2s3_src_div",
26*4882a593Smuzhiyun		"i2s0_mclk_en",
27*4882a593Smuzhiyun		"i2s1_mclk_en",
28*4882a593Smuzhiyun		"i2s2_mclk_en",
29*4882a593Smuzhiyun		"i2s3_mclk_en",
30*4882a593Smuzhiyun		"i2so0_hop_ck",
31*4882a593Smuzhiyun		"i2so1_hop_ck",
32*4882a593Smuzhiyun		"i2so2_hop_ck",
33*4882a593Smuzhiyun		"i2so3_hop_ck",
34*4882a593Smuzhiyun		"i2si0_hop_ck",
35*4882a593Smuzhiyun		"i2si1_hop_ck",
36*4882a593Smuzhiyun		"i2si2_hop_ck",
37*4882a593Smuzhiyun		"i2si3_hop_ck",
38*4882a593Smuzhiyun		"asrc0_out_ck",
39*4882a593Smuzhiyun		"asrc1_out_ck",
40*4882a593Smuzhiyun		"asrc2_out_ck",
41*4882a593Smuzhiyun		"asrc3_out_ck",
42*4882a593Smuzhiyun		"audio_afe_pd",
43*4882a593Smuzhiyun		"audio_afe_conn_pd",
44*4882a593Smuzhiyun		"audio_a1sys_pd",
45*4882a593Smuzhiyun		"audio_a2sys_pd",
46*4882a593Smuzhiyun		"audio_mrgif_pd";
47*4882a593Smuzhiyun- assigned-clocks: list of input clocks and dividers for the audio system.
48*4882a593Smuzhiyun		   See ../clocks/clock-bindings.txt for details.
49*4882a593Smuzhiyun- assigned-clocks-parents: parent of input clocks of assigned clocks.
50*4882a593Smuzhiyun- assigned-clock-rates: list of clock frequencies of assigned clocks.
51*4882a593Smuzhiyun
52*4882a593SmuzhiyunMust be a subnode of MediaTek audsys device tree node.
53*4882a593SmuzhiyunSee ../arm/mediatek/mediatek,audsys.txt for details about the parent node.
54*4882a593Smuzhiyun
55*4882a593SmuzhiyunExample:
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun	audsys: audio-subsystem@11220000 {
58*4882a593Smuzhiyun		compatible = "mediatek,mt2701-audsys", "syscon";
59*4882a593Smuzhiyun		...
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun		afe: audio-controller {
62*4882a593Smuzhiyun			compatible = "mediatek,mt2701-audio";
63*4882a593Smuzhiyun			interrupts =  <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
64*4882a593Smuzhiyun				      <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
65*4882a593Smuzhiyun			interrupt-names	= "afe", "asys";
66*4882a593Smuzhiyun			power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun			clocks = <&infracfg CLK_INFRA_AUDIO>,
69*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_MUX1_SEL>,
70*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_MUX2_SEL>,
71*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_48K_TIMING>,
72*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_44K_TIMING>,
73*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
74*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
75*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
76*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
77*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
78*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
79*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
80*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
81*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
82*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
83*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
84*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
85*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SO1>,
86*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SO2>,
87*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SO3>,
88*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SO4>,
89*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SIN1>,
90*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SIN2>,
91*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SIN3>,
92*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SIN4>,
93*4882a593Smuzhiyun				 <&audsys CLK_AUD_ASRCO1>,
94*4882a593Smuzhiyun				 <&audsys CLK_AUD_ASRCO2>,
95*4882a593Smuzhiyun				 <&audsys CLK_AUD_ASRCO3>,
96*4882a593Smuzhiyun				 <&audsys CLK_AUD_ASRCO4>,
97*4882a593Smuzhiyun				 <&audsys CLK_AUD_AFE>,
98*4882a593Smuzhiyun				 <&audsys CLK_AUD_AFE_CONN>,
99*4882a593Smuzhiyun				 <&audsys CLK_AUD_A1SYS>,
100*4882a593Smuzhiyun				 <&audsys CLK_AUD_A2SYS>,
101*4882a593Smuzhiyun				 <&audsys CLK_AUD_AFE_MRGIF>;
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun			clock-names = "infra_sys_audio_clk",
104*4882a593Smuzhiyun				      "top_audio_mux1_sel",
105*4882a593Smuzhiyun				      "top_audio_mux2_sel",
106*4882a593Smuzhiyun				      "top_audio_a1sys_hp",
107*4882a593Smuzhiyun				      "top_audio_a2sys_hp",
108*4882a593Smuzhiyun				      "i2s0_src_sel",
109*4882a593Smuzhiyun				      "i2s1_src_sel",
110*4882a593Smuzhiyun				      "i2s2_src_sel",
111*4882a593Smuzhiyun				      "i2s3_src_sel",
112*4882a593Smuzhiyun				      "i2s0_src_div",
113*4882a593Smuzhiyun				      "i2s1_src_div",
114*4882a593Smuzhiyun				      "i2s2_src_div",
115*4882a593Smuzhiyun				      "i2s3_src_div",
116*4882a593Smuzhiyun				      "i2s0_mclk_en",
117*4882a593Smuzhiyun				      "i2s1_mclk_en",
118*4882a593Smuzhiyun				      "i2s2_mclk_en",
119*4882a593Smuzhiyun				      "i2s3_mclk_en",
120*4882a593Smuzhiyun				      "i2so0_hop_ck",
121*4882a593Smuzhiyun				      "i2so1_hop_ck",
122*4882a593Smuzhiyun				      "i2so2_hop_ck",
123*4882a593Smuzhiyun				      "i2so3_hop_ck",
124*4882a593Smuzhiyun				      "i2si0_hop_ck",
125*4882a593Smuzhiyun				      "i2si1_hop_ck",
126*4882a593Smuzhiyun				      "i2si2_hop_ck",
127*4882a593Smuzhiyun				      "i2si3_hop_ck",
128*4882a593Smuzhiyun				      "asrc0_out_ck",
129*4882a593Smuzhiyun				      "asrc1_out_ck",
130*4882a593Smuzhiyun				      "asrc2_out_ck",
131*4882a593Smuzhiyun				      "asrc3_out_ck",
132*4882a593Smuzhiyun				      "audio_afe_pd",
133*4882a593Smuzhiyun				      "audio_afe_conn_pd",
134*4882a593Smuzhiyun				      "audio_a1sys_pd",
135*4882a593Smuzhiyun				      "audio_a2sys_pd",
136*4882a593Smuzhiyun				      "audio_mrgif_pd";
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun			assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
139*4882a593Smuzhiyun					  <&topckgen CLK_TOP_AUD_MUX2_SEL>,
140*4882a593Smuzhiyun					  <&topckgen CLK_TOP_AUD_MUX1_DIV>,
141*4882a593Smuzhiyun					  <&topckgen CLK_TOP_AUD_MUX2_DIV>;
142*4882a593Smuzhiyun			assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
143*4882a593Smuzhiyun						 <&topckgen CLK_TOP_AUD2PLL_90M>;
144*4882a593Smuzhiyun			assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
145*4882a593Smuzhiyun		};
146*4882a593Smuzhiyun	};
147