18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/sound/amlogic,aiu.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Amlogic AIU audio output controller
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Jerome Brunet <jbrunet@baylibre.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciproperties:
138c2ecf20Sopenharmony_ci  $nodename:
148c2ecf20Sopenharmony_ci    pattern: "^audio-controller@.*"
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci  "#sound-dai-cells":
178c2ecf20Sopenharmony_ci    const: 2
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci  compatible:
208c2ecf20Sopenharmony_ci    items:
218c2ecf20Sopenharmony_ci      - enum:
228c2ecf20Sopenharmony_ci          - amlogic,aiu-gxbb
238c2ecf20Sopenharmony_ci          - amlogic,aiu-gxl
248c2ecf20Sopenharmony_ci          - amlogic,aiu-meson8
258c2ecf20Sopenharmony_ci          - amlogic,aiu-meson8b
268c2ecf20Sopenharmony_ci      - const: amlogic,aiu
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci  clocks:
298c2ecf20Sopenharmony_ci    items:
308c2ecf20Sopenharmony_ci      - description: AIU peripheral clock
318c2ecf20Sopenharmony_ci      - description: I2S peripheral clock
328c2ecf20Sopenharmony_ci      - description: I2S output clock
338c2ecf20Sopenharmony_ci      - description: I2S master clock
348c2ecf20Sopenharmony_ci      - description: I2S mixer clock
358c2ecf20Sopenharmony_ci      - description: SPDIF peripheral clock
368c2ecf20Sopenharmony_ci      - description: SPDIF output clock
378c2ecf20Sopenharmony_ci      - description: SPDIF master clock
388c2ecf20Sopenharmony_ci      - description: SPDIF master clock multiplexer
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  clock-names:
418c2ecf20Sopenharmony_ci    items:
428c2ecf20Sopenharmony_ci      - const: pclk
438c2ecf20Sopenharmony_ci      - const: i2s_pclk
448c2ecf20Sopenharmony_ci      - const: i2s_aoclk
458c2ecf20Sopenharmony_ci      - const: i2s_mclk
468c2ecf20Sopenharmony_ci      - const: i2s_mixer
478c2ecf20Sopenharmony_ci      - const: spdif_pclk
488c2ecf20Sopenharmony_ci      - const: spdif_aoclk
498c2ecf20Sopenharmony_ci      - const: spdif_mclk
508c2ecf20Sopenharmony_ci      - const: spdif_mclk_sel
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci  interrupts:
538c2ecf20Sopenharmony_ci    items:
548c2ecf20Sopenharmony_ci      - description: I2S interrupt line
558c2ecf20Sopenharmony_ci      - description: SPDIF interrupt line
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci  interrupt-names:
588c2ecf20Sopenharmony_ci    items:
598c2ecf20Sopenharmony_ci      - const: i2s
608c2ecf20Sopenharmony_ci      - const: spdif
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci  reg:
638c2ecf20Sopenharmony_ci    maxItems: 1
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci  resets:
668c2ecf20Sopenharmony_ci    maxItems: 1
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_cirequired:
698c2ecf20Sopenharmony_ci  - "#sound-dai-cells"
708c2ecf20Sopenharmony_ci  - compatible
718c2ecf20Sopenharmony_ci  - clocks
728c2ecf20Sopenharmony_ci  - clock-names
738c2ecf20Sopenharmony_ci  - interrupts
748c2ecf20Sopenharmony_ci  - interrupt-names
758c2ecf20Sopenharmony_ci  - reg
768c2ecf20Sopenharmony_ci  - resets
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciadditionalProperties: false
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciexamples:
818c2ecf20Sopenharmony_ci  - |
828c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/gxbb-clkc.h>
838c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
848c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
858c2ecf20Sopenharmony_ci    #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci    aiu: audio-controller@5400 {
888c2ecf20Sopenharmony_ci        compatible = "amlogic,aiu-gxl", "amlogic,aiu";
898c2ecf20Sopenharmony_ci        #sound-dai-cells = <2>;
908c2ecf20Sopenharmony_ci        reg = <0x5400 0x2ac>;
918c2ecf20Sopenharmony_ci        interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
928c2ecf20Sopenharmony_ci                     <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
938c2ecf20Sopenharmony_ci        interrupt-names = "i2s", "spdif";
948c2ecf20Sopenharmony_ci        clocks = <&clkc CLKID_AIU_GLUE>,
958c2ecf20Sopenharmony_ci                 <&clkc CLKID_I2S_OUT>,
968c2ecf20Sopenharmony_ci                 <&clkc CLKID_AOCLK_GATE>,
978c2ecf20Sopenharmony_ci                 <&clkc CLKID_CTS_AMCLK>,
988c2ecf20Sopenharmony_ci                 <&clkc CLKID_MIXER_IFACE>,
998c2ecf20Sopenharmony_ci                 <&clkc CLKID_IEC958>,
1008c2ecf20Sopenharmony_ci                 <&clkc CLKID_IEC958_GATE>,
1018c2ecf20Sopenharmony_ci                 <&clkc CLKID_CTS_MCLK_I958>,
1028c2ecf20Sopenharmony_ci                 <&clkc CLKID_CTS_I958>;
1038c2ecf20Sopenharmony_ci        clock-names = "pclk",
1048c2ecf20Sopenharmony_ci                      "i2s_pclk",
1058c2ecf20Sopenharmony_ci                      "i2s_aoclk",
1068c2ecf20Sopenharmony_ci                      "i2s_mclk",
1078c2ecf20Sopenharmony_ci                      "i2s_mixer",
1088c2ecf20Sopenharmony_ci                      "spdif_pclk",
1098c2ecf20Sopenharmony_ci                      "spdif_aoclk",
1108c2ecf20Sopenharmony_ci                      "spdif_mclk",
1118c2ecf20Sopenharmony_ci                      "spdif_mclk_sel";
1128c2ecf20Sopenharmony_ci        resets = <&reset RESET_AIU>;
1138c2ecf20Sopenharmony_ci    };
114