blob: 6350dfc0a92603639cbf77205edd9b3fabebd333 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/amlogic,aiu.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Amlogic AIU audio output controller
8
9maintainers:
10 - Jerome Brunet <jbrunet@baylibre.com>
11
12allOf:
13 - $ref: dai-common.yaml#
14
15properties:
16 $nodename:
17 pattern: "^audio-controller@.*"
18
19 "#sound-dai-cells":
20 const: 2
21
22 compatible:
23 items:
24 - enum:
25 - amlogic,aiu-gxbb
26 - amlogic,aiu-gxl
27 - amlogic,aiu-meson8
28 - amlogic,aiu-meson8b
29 - const: amlogic,aiu
30
31 clocks:
32 items:
33 - description: AIU peripheral clock
34 - description: I2S peripheral clock
35 - description: I2S output clock
36 - description: I2S master clock
37 - description: I2S mixer clock
38 - description: SPDIF peripheral clock
39 - description: SPDIF output clock
40 - description: SPDIF master clock
41 - description: SPDIF master clock multiplexer
42
43 clock-names:
44 items:
45 - const: pclk
46 - const: i2s_pclk
47 - const: i2s_aoclk
48 - const: i2s_mclk
49 - const: i2s_mixer
50 - const: spdif_pclk
51 - const: spdif_aoclk
52 - const: spdif_mclk
53 - const: spdif_mclk_sel
54
55 interrupts:
56 items:
57 - description: I2S interrupt line
58 - description: SPDIF interrupt line
59
60 interrupt-names:
61 items:
62 - const: i2s
63 - const: spdif
64
65 reg:
66 maxItems: 1
67
68 resets:
69 maxItems: 1
70
71 sound-name-prefix: true
72
73required:
74 - "#sound-dai-cells"
75 - compatible
76 - clocks
77 - clock-names
78 - interrupts
79 - interrupt-names
80 - reg
81 - resets
82
83additionalProperties: false
84
85examples:
86 - |
87 #include <dt-bindings/clock/gxbb-clkc.h>
88 #include <dt-bindings/interrupt-controller/irq.h>
89 #include <dt-bindings/interrupt-controller/arm-gic.h>
90 #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
91
92 aiu: audio-controller@5400 {
93 compatible = "amlogic,aiu-gxl", "amlogic,aiu";
94 #sound-dai-cells = <2>;
95 reg = <0x5400 0x2ac>;
96 interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
97 <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
98 interrupt-names = "i2s", "spdif";
99 clocks = <&clkc CLKID_AIU_GLUE>,
100 <&clkc CLKID_I2S_OUT>,
101 <&clkc CLKID_AOCLK_GATE>,
102 <&clkc CLKID_CTS_AMCLK>,
103 <&clkc CLKID_MIXER_IFACE>,
104 <&clkc CLKID_IEC958>,
105 <&clkc CLKID_IEC958_GATE>,
106 <&clkc CLKID_CTS_MCLK_I958>,
107 <&clkc CLKID_CTS_I958>;
108 clock-names = "pclk",
109 "i2s_pclk",
110 "i2s_aoclk",
111 "i2s_mclk",
112 "i2s_mixer",
113 "spdif_pclk",
114 "spdif_aoclk",
115 "spdif_mclk",
116 "spdif_mclk_sel";
117 resets = <&reset RESET_AIU>;
118 };