diff options
author | Vladimir Barinov <vladimir.barinov@cogentembedded.com> | 2016-09-02 12:25:29 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2016-09-08 03:35:24 -0400 |
commit | 2627d5179f2c9e0a15a7ccc257d290719efdf694 (patch) | |
tree | 8eefd6952f189b4f8e0fb9ea18c3122ba191471e | |
parent | 57094363192098bd798aab07851b702f563fb0a2 (diff) |
arm64: dts: h3ulcb: Sound SSI support
This supports SSI sound for H3ULCB board.
SSI DMA mode used. CS2000 used as AUDIO_CLK_B.
Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r-- | arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts index 44f1184e1a14..c6d4ee336740 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | |||
@@ -45,6 +45,12 @@ | |||
45 | }; | 45 | }; |
46 | }; | 46 | }; |
47 | 47 | ||
48 | x12_clk: x12 { | ||
49 | compatible = "fixed-clock"; | ||
50 | #clock-cells = <0>; | ||
51 | clock-frequency = <24576000>; | ||
52 | }; | ||
53 | |||
48 | vcc_sdhi0: regulator-vcc-sdhi0 { | 54 | vcc_sdhi0: regulator-vcc-sdhi0 { |
49 | compatible = "regulator-fixed"; | 55 | compatible = "regulator-fixed"; |
50 | 56 | ||
@@ -68,6 +74,32 @@ | |||
68 | states = <3300000 1 | 74 | states = <3300000 1 |
69 | 1800000 0>; | 75 | 1800000 0>; |
70 | }; | 76 | }; |
77 | |||
78 | audio_clkout: audio-clkout { | ||
79 | /* | ||
80 | * This is same as <&rcar_sound 0> | ||
81 | * but needed to avoid cs2000/rcar_sound probe dead-lock | ||
82 | */ | ||
83 | compatible = "fixed-clock"; | ||
84 | #clock-cells = <0>; | ||
85 | clock-frequency = <11289600>; | ||
86 | }; | ||
87 | |||
88 | rsnd_ak4613: sound { | ||
89 | compatible = "simple-audio-card"; | ||
90 | |||
91 | simple-audio-card,format = "left_j"; | ||
92 | simple-audio-card,bitclock-master = <&sndcpu>; | ||
93 | simple-audio-card,frame-master = <&sndcpu>; | ||
94 | |||
95 | sndcpu: simple-audio-card,cpu { | ||
96 | sound-dai = <&rcar_sound>; | ||
97 | }; | ||
98 | |||
99 | sndcodec: simple-audio-card,codec { | ||
100 | sound-dai = <&ak4613>; | ||
101 | }; | ||
102 | }; | ||
71 | }; | 103 | }; |
72 | 104 | ||
73 | &extal_clk { | 105 | &extal_clk { |
@@ -114,6 +146,17 @@ | |||
114 | power-source = <1800>; | 146 | power-source = <1800>; |
115 | }; | 147 | }; |
116 | 148 | ||
149 | sound_pins: sound { | ||
150 | groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; | ||
151 | function = "ssi"; | ||
152 | }; | ||
153 | |||
154 | sound_clk_pins: sound-clk { | ||
155 | groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", | ||
156 | "audio_clkout_a", "audio_clkout3_a"; | ||
157 | function = "audio_clk"; | ||
158 | }; | ||
159 | |||
117 | usb1_pins: usb1 { | 160 | usb1_pins: usb1 { |
118 | groups = "usb1"; | 161 | groups = "usb1"; |
119 | function = "usb1"; | 162 | function = "usb1"; |
@@ -137,6 +180,73 @@ | |||
137 | pinctrl-names = "default"; | 180 | pinctrl-names = "default"; |
138 | 181 | ||
139 | status = "okay"; | 182 | status = "okay"; |
183 | |||
184 | clock-frequency = <100000>; | ||
185 | |||
186 | ak4613: codec@10 { | ||
187 | compatible = "asahi-kasei,ak4613"; | ||
188 | #sound-dai-cells = <0>; | ||
189 | reg = <0x10>; | ||
190 | clocks = <&rcar_sound 3>; | ||
191 | |||
192 | asahi-kasei,in1-single-end; | ||
193 | asahi-kasei,in2-single-end; | ||
194 | asahi-kasei,out1-single-end; | ||
195 | asahi-kasei,out2-single-end; | ||
196 | asahi-kasei,out3-single-end; | ||
197 | asahi-kasei,out4-single-end; | ||
198 | asahi-kasei,out5-single-end; | ||
199 | asahi-kasei,out6-single-end; | ||
200 | }; | ||
201 | |||
202 | cs2000: clk-multiplier@4f { | ||
203 | #clock-cells = <0>; | ||
204 | compatible = "cirrus,cs2000-cp"; | ||
205 | reg = <0x4f>; | ||
206 | clocks = <&audio_clkout>, <&x12_clk>; | ||
207 | clock-names = "clk_in", "ref_clk"; | ||
208 | |||
209 | assigned-clocks = <&cs2000>; | ||
210 | assigned-clock-rates = <24576000>; /* 1/1 divide */ | ||
211 | }; | ||
212 | }; | ||
213 | |||
214 | &rcar_sound { | ||
215 | pinctrl-0 = <&sound_pins &sound_clk_pins>; | ||
216 | pinctrl-names = "default"; | ||
217 | |||
218 | /* Single DAI */ | ||
219 | #sound-dai-cells = <0>; | ||
220 | |||
221 | /* audio_clkout0/1/2/3 */ | ||
222 | #clock-cells = <1>; | ||
223 | clock-frequency = <11289600>; | ||
224 | |||
225 | status = "okay"; | ||
226 | |||
227 | /* update <audio_clk_b> to <cs2000> */ | ||
228 | clocks = <&cpg CPG_MOD 1005>, | ||
229 | <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, | ||
230 | <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, | ||
231 | <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, | ||
232 | <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, | ||
233 | <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, | ||
234 | <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, | ||
235 | <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, | ||
236 | <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, | ||
237 | <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, | ||
238 | <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, | ||
239 | <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, | ||
240 | <&audio_clk_a>, <&cs2000>, | ||
241 | <&audio_clk_c>, | ||
242 | <&cpg CPG_CORE R8A7795_CLK_S0D4>; | ||
243 | |||
244 | rcar_sound,dai { | ||
245 | dai0 { | ||
246 | playback = <&ssi0 &src0 &dvc0>; | ||
247 | capture = <&ssi1 &src1 &dvc1>; | ||
248 | }; | ||
249 | }; | ||
140 | }; | 250 | }; |
141 | 251 | ||
142 | &sdhi0 { | 252 | &sdhi0 { |
@@ -152,11 +262,19 @@ | |||
152 | status = "okay"; | 262 | status = "okay"; |
153 | }; | 263 | }; |
154 | 264 | ||
265 | &ssi1 { | ||
266 | shared-pin; | ||
267 | }; | ||
268 | |||
155 | &wdt0 { | 269 | &wdt0 { |
156 | timeout-sec = <60>; | 270 | timeout-sec = <60>; |
157 | status = "okay"; | 271 | status = "okay"; |
158 | }; | 272 | }; |
159 | 273 | ||
274 | &audio_clk_a { | ||
275 | clock-frequency = <22579200>; | ||
276 | }; | ||
277 | |||
160 | &avb { | 278 | &avb { |
161 | pinctrl-0 = <&avb_pins>; | 279 | pinctrl-0 = <&avb_pins>; |
162 | pinctrl-names = "default"; | 280 | pinctrl-names = "default"; |