1# 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
12properties:
13  $nodename:
14    pattern: "^audio-controller@.*"
15
16  "#sound-dai-cells":
17    const: 2
18
19  compatible:
20    items:
21      - enum:
22          - amlogic,aiu-gxbb
23          - amlogic,aiu-gxl
24          - amlogic,aiu-meson8
25          - amlogic,aiu-meson8b
26      - const: amlogic,aiu
27
28  clocks:
29    items:
30      - description: AIU peripheral clock
31      - description: I2S peripheral clock
32      - description: I2S output clock
33      - description: I2S master clock
34      - description: I2S mixer clock
35      - description: SPDIF peripheral clock
36      - description: SPDIF output clock
37      - description: SPDIF master clock
38      - description: SPDIF master clock multiplexer
39
40  clock-names:
41    items:
42      - const: pclk
43      - const: i2s_pclk
44      - const: i2s_aoclk
45      - const: i2s_mclk
46      - const: i2s_mixer
47      - const: spdif_pclk
48      - const: spdif_aoclk
49      - const: spdif_mclk
50      - const: spdif_mclk_sel
51
52  interrupts:
53    items:
54      - description: I2S interrupt line
55      - description: SPDIF interrupt line
56
57  interrupt-names:
58    items:
59      - const: i2s
60      - const: spdif
61
62  reg:
63    maxItems: 1
64
65  resets:
66    maxItems: 1
67
68required:
69  - "#sound-dai-cells"
70  - compatible
71  - clocks
72  - clock-names
73  - interrupts
74  - interrupt-names
75  - reg
76  - resets
77
78additionalProperties: false
79
80examples:
81  - |
82    #include <dt-bindings/clock/gxbb-clkc.h>
83    #include <dt-bindings/interrupt-controller/irq.h>
84    #include <dt-bindings/interrupt-controller/arm-gic.h>
85    #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
86
87    aiu: audio-controller@5400 {
88        compatible = "amlogic,aiu-gxl", "amlogic,aiu";
89        #sound-dai-cells = <2>;
90        reg = <0x5400 0x2ac>;
91        interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
92                     <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
93        interrupt-names = "i2s", "spdif";
94        clocks = <&clkc CLKID_AIU_GLUE>,
95                 <&clkc CLKID_I2S_OUT>,
96                 <&clkc CLKID_AOCLK_GATE>,
97                 <&clkc CLKID_CTS_AMCLK>,
98                 <&clkc CLKID_MIXER_IFACE>,
99                 <&clkc CLKID_IEC958>,
100                 <&clkc CLKID_IEC958_GATE>,
101                 <&clkc CLKID_CTS_MCLK_I958>,
102                 <&clkc CLKID_CTS_I958>;
103        clock-names = "pclk",
104                      "i2s_pclk",
105                      "i2s_aoclk",
106                      "i2s_mclk",
107                      "i2s_mixer",
108                      "spdif_pclk",
109                      "spdif_aoclk",
110                      "spdif_mclk",
111                      "spdif_mclk_sel";
112        resets = <&reset RESET_AIU>;
113    };
114