diff options
author | Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com> | 2018-02-13 08:01:54 -0500 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2018-03-15 10:17:39 -0400 |
commit | fb21a0acaa2b7f6ac76d4b3b33aa6b0312a09a49 (patch) | |
tree | dc37506ac2484e8ea34cb6aadf5a43027ecabdb7 | |
parent | 606c18372d539d194df2b2d181d3b1b790ad72f9 (diff) |
arm64: dts: uniphier: add sound node
This patch adds audio controller, codec and simple card node of
UniPhier AIO sound system for LD11/20 SoCs.
Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
-rw-r--r-- | arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts | 24 | ||||
-rw-r--r-- | arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi | 94 | ||||
-rw-r--r-- | arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts | 24 | ||||
-rw-r--r-- | arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | 103 |
4 files changed, 245 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts b/arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts index 2452b2243f42..264aae10734b 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts +++ b/arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts | |||
@@ -37,6 +37,26 @@ | |||
37 | device_type = "memory"; | 37 | device_type = "memory"; |
38 | reg = <0 0x80000000 0 0x40000000>; | 38 | reg = <0 0x80000000 0 0x40000000>; |
39 | }; | 39 | }; |
40 | |||
41 | sound { | ||
42 | compatible = "audio-graph-card"; | ||
43 | label = "UniPhier LD11"; | ||
44 | widgets = "Headphone", "Headphone Jack"; | ||
45 | dais = <&i2s_port2 | ||
46 | &i2s_port4 | ||
47 | &spdif_port0>; | ||
48 | }; | ||
49 | |||
50 | spdif-out { | ||
51 | compatible = "linux,spdif-dit"; | ||
52 | #sound-dai-cells = <0>; | ||
53 | |||
54 | port@0 { | ||
55 | spdif_tx: endpoint { | ||
56 | remote-endpoint = <&spdif_hiecout1>; | ||
57 | }; | ||
58 | }; | ||
59 | }; | ||
40 | }; | 60 | }; |
41 | 61 | ||
42 | &serial0 { | 62 | &serial0 { |
@@ -47,6 +67,10 @@ | |||
47 | status = "okay"; | 67 | status = "okay"; |
48 | }; | 68 | }; |
49 | 69 | ||
70 | &spdif_hiecout1 { | ||
71 | remote-endpoint = <&spdif_tx>; | ||
72 | }; | ||
73 | |||
50 | &i2c0 { | 74 | &i2c0 { |
51 | status = "okay"; | 75 | status = "okay"; |
52 | 76 | ||
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi index cd7c2d0a1f64..7e568f5b5a80 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi | |||
@@ -187,6 +187,91 @@ | |||
187 | <21 217 3>; | 187 | <21 217 3>; |
188 | }; | 188 | }; |
189 | 189 | ||
190 | audio@56000000 { | ||
191 | compatible = "socionext,uniphier-ld11-aio"; | ||
192 | reg = <0x56000000 0x80000>; | ||
193 | interrupts = <0 144 4>; | ||
194 | pinctrl-names = "default"; | ||
195 | pinctrl-0 = <&pinctrl_aout1>, | ||
196 | <&pinctrl_aoutiec1>; | ||
197 | clock-names = "aio"; | ||
198 | clocks = <&sys_clk 40>; | ||
199 | reset-names = "aio"; | ||
200 | resets = <&sys_rst 40>; | ||
201 | #sound-dai-cells = <1>; | ||
202 | |||
203 | i2s_port0: port@0 { | ||
204 | i2s_hdmi: endpoint { | ||
205 | }; | ||
206 | }; | ||
207 | |||
208 | i2s_port1: port@1 { | ||
209 | i2s_pcmin2: endpoint { | ||
210 | }; | ||
211 | }; | ||
212 | |||
213 | i2s_port2: port@2 { | ||
214 | i2s_line: endpoint { | ||
215 | dai-format = "i2s"; | ||
216 | remote-endpoint = <&evea_line>; | ||
217 | }; | ||
218 | }; | ||
219 | |||
220 | i2s_port3: port@3 { | ||
221 | i2s_hpcmout1: endpoint { | ||
222 | }; | ||
223 | }; | ||
224 | |||
225 | i2s_port4: port@4 { | ||
226 | i2s_hp: endpoint { | ||
227 | dai-format = "i2s"; | ||
228 | remote-endpoint = <&evea_hp>; | ||
229 | }; | ||
230 | }; | ||
231 | |||
232 | spdif_port0: port@5 { | ||
233 | spdif_hiecout1: endpoint { | ||
234 | }; | ||
235 | }; | ||
236 | |||
237 | src_port0: port@6 { | ||
238 | i2s_epcmout2: endpoint { | ||
239 | }; | ||
240 | }; | ||
241 | |||
242 | src_port1: port@7 { | ||
243 | i2s_epcmout3: endpoint { | ||
244 | }; | ||
245 | }; | ||
246 | |||
247 | comp_spdif_port0: port@8 { | ||
248 | comp_spdif_hiecout1: endpoint { | ||
249 | }; | ||
250 | }; | ||
251 | }; | ||
252 | |||
253 | codec@57900000 { | ||
254 | compatible = "socionext,uniphier-evea"; | ||
255 | reg = <0x57900000 0x1000>; | ||
256 | clock-names = "evea", "exiv"; | ||
257 | clocks = <&sys_clk 41>, <&sys_clk 42>; | ||
258 | reset-names = "evea", "exiv", "adamv"; | ||
259 | resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>; | ||
260 | #sound-dai-cells = <1>; | ||
261 | |||
262 | port@0 { | ||
263 | evea_line: endpoint { | ||
264 | remote-endpoint = <&i2s_line>; | ||
265 | }; | ||
266 | }; | ||
267 | |||
268 | port@1 { | ||
269 | evea_hp: endpoint { | ||
270 | remote-endpoint = <&i2s_hp>; | ||
271 | }; | ||
272 | }; | ||
273 | }; | ||
274 | |||
190 | adamv@57920000 { | 275 | adamv@57920000 { |
191 | compatible = "socionext,uniphier-ld11-adamv", | 276 | compatible = "socionext,uniphier-ld11-adamv", |
192 | "simple-mfd", "syscon"; | 277 | "simple-mfd", "syscon"; |
@@ -475,3 +560,12 @@ | |||
475 | }; | 560 | }; |
476 | 561 | ||
477 | #include "uniphier-pinctrl.dtsi" | 562 | #include "uniphier-pinctrl.dtsi" |
563 | |||
564 | &pinctrl_aoutiec1 { | ||
565 | drive-strength = <4>; /* default: 4mA */ | ||
566 | |||
567 | ao1arc { | ||
568 | pins = "AO1ARC"; | ||
569 | drive-strength = <8>; /* 8mA */ | ||
570 | }; | ||
571 | }; | ||
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts b/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts index fc2bc9d75d35..93ae4c909783 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts +++ b/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts | |||
@@ -37,6 +37,26 @@ | |||
37 | device_type = "memory"; | 37 | device_type = "memory"; |
38 | reg = <0 0x80000000 0 0xc0000000>; | 38 | reg = <0 0x80000000 0 0xc0000000>; |
39 | }; | 39 | }; |
40 | |||
41 | sound { | ||
42 | compatible = "audio-graph-card"; | ||
43 | label = "UniPhier LD20"; | ||
44 | widgets = "Headphone", "Headphone Jack"; | ||
45 | dais = <&i2s_port2 | ||
46 | &i2s_port4 | ||
47 | &spdif_port0>; | ||
48 | }; | ||
49 | |||
50 | spdif-out { | ||
51 | compatible = "linux,spdif-dit"; | ||
52 | #sound-dai-cells = <0>; | ||
53 | |||
54 | port@0 { | ||
55 | spdif_tx: endpoint { | ||
56 | remote-endpoint = <&spdif_hiecout1>; | ||
57 | }; | ||
58 | }; | ||
59 | }; | ||
40 | }; | 60 | }; |
41 | 61 | ||
42 | &serial0 { | 62 | &serial0 { |
@@ -47,6 +67,10 @@ | |||
47 | status = "okay"; | 67 | status = "okay"; |
48 | }; | 68 | }; |
49 | 69 | ||
70 | &spdif_hiecout1 { | ||
71 | remote-endpoint = <&spdif_tx>; | ||
72 | }; | ||
73 | |||
50 | &i2c0 { | 74 | &i2c0 { |
51 | status = "okay"; | 75 | status = "okay"; |
52 | }; | 76 | }; |
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi index 8a3276ba2da1..b17f2ec2e001 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | |||
@@ -287,6 +287,91 @@ | |||
287 | <21 217 3>; | 287 | <21 217 3>; |
288 | }; | 288 | }; |
289 | 289 | ||
290 | audio@56000000 { | ||
291 | compatible = "socionext,uniphier-ld20-aio"; | ||
292 | reg = <0x56000000 0x80000>; | ||
293 | interrupts = <0 144 4>; | ||
294 | pinctrl-names = "default"; | ||
295 | pinctrl-0 = <&pinctrl_aout1>, | ||
296 | <&pinctrl_aoutiec1>; | ||
297 | clock-names = "aio"; | ||
298 | clocks = <&sys_clk 40>; | ||
299 | reset-names = "aio"; | ||
300 | resets = <&sys_rst 40>; | ||
301 | #sound-dai-cells = <1>; | ||
302 | |||
303 | i2s_port0: port@0 { | ||
304 | i2s_hdmi: endpoint { | ||
305 | }; | ||
306 | }; | ||
307 | |||
308 | i2s_port1: port@1 { | ||
309 | i2s_pcmin2: endpoint { | ||
310 | }; | ||
311 | }; | ||
312 | |||
313 | i2s_port2: port@2 { | ||
314 | i2s_line: endpoint { | ||
315 | dai-format = "i2s"; | ||
316 | remote-endpoint = <&evea_line>; | ||
317 | }; | ||
318 | }; | ||
319 | |||
320 | i2s_port3: port@3 { | ||
321 | i2s_hpcmout1: endpoint { | ||
322 | }; | ||
323 | }; | ||
324 | |||
325 | i2s_port4: port@4 { | ||
326 | i2s_hp: endpoint { | ||
327 | dai-format = "i2s"; | ||
328 | remote-endpoint = <&evea_hp>; | ||
329 | }; | ||
330 | }; | ||
331 | |||
332 | spdif_port0: port@5 { | ||
333 | spdif_hiecout1: endpoint { | ||
334 | }; | ||
335 | }; | ||
336 | |||
337 | src_port0: port@6 { | ||
338 | i2s_epcmout2: endpoint { | ||
339 | }; | ||
340 | }; | ||
341 | |||
342 | src_port1: port@7 { | ||
343 | i2s_epcmout3: endpoint { | ||
344 | }; | ||
345 | }; | ||
346 | |||
347 | comp_spdif_port0: port@8 { | ||
348 | comp_spdif_hiecout1: endpoint { | ||
349 | }; | ||
350 | }; | ||
351 | }; | ||
352 | |||
353 | codec@57900000 { | ||
354 | compatible = "socionext,uniphier-evea"; | ||
355 | reg = <0x57900000 0x1000>; | ||
356 | clock-names = "evea", "exiv"; | ||
357 | clocks = <&sys_clk 41>, <&sys_clk 42>; | ||
358 | reset-names = "evea", "exiv", "adamv"; | ||
359 | resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>; | ||
360 | #sound-dai-cells = <1>; | ||
361 | |||
362 | port@0 { | ||
363 | evea_line: endpoint { | ||
364 | remote-endpoint = <&i2s_line>; | ||
365 | }; | ||
366 | }; | ||
367 | |||
368 | port@1 { | ||
369 | evea_hp: endpoint { | ||
370 | remote-endpoint = <&i2s_hp>; | ||
371 | }; | ||
372 | }; | ||
373 | }; | ||
374 | |||
290 | adamv@57920000 { | 375 | adamv@57920000 { |
291 | compatible = "socionext,uniphier-ld20-adamv", | 376 | compatible = "socionext,uniphier-ld20-adamv", |
292 | "simple-mfd", "syscon"; | 377 | "simple-mfd", "syscon"; |
@@ -528,3 +613,21 @@ | |||
528 | }; | 613 | }; |
529 | 614 | ||
530 | #include "uniphier-pinctrl.dtsi" | 615 | #include "uniphier-pinctrl.dtsi" |
616 | |||
617 | &pinctrl_aout1 { | ||
618 | drive-strength = <4>; /* default: 3.5mA */ | ||
619 | |||
620 | ao1dacck { | ||
621 | pins = "AO1DACCK"; | ||
622 | drive-strength = <5>; /* 5mA */ | ||
623 | }; | ||
624 | }; | ||
625 | |||
626 | &pinctrl_aoutiec1 { | ||
627 | drive-strength = <4>; /* default: 3.5mA */ | ||
628 | |||
629 | ao1arc { | ||
630 | pins = "AO1ARC"; | ||
631 | drive-strength = <11>; /* 11mA */ | ||
632 | }; | ||
633 | }; | ||