162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/sound/amlogic,aiu.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Amlogic AIU audio output controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Jerome Brunet <jbrunet@baylibre.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciallOf:
1362306a36Sopenharmony_ci  - $ref: dai-common.yaml#
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  $nodename:
1762306a36Sopenharmony_ci    pattern: "^audio-controller@.*"
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  "#sound-dai-cells":
2062306a36Sopenharmony_ci    const: 2
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  compatible:
2362306a36Sopenharmony_ci    items:
2462306a36Sopenharmony_ci      - enum:
2562306a36Sopenharmony_ci          - amlogic,aiu-gxbb
2662306a36Sopenharmony_ci          - amlogic,aiu-gxl
2762306a36Sopenharmony_ci          - amlogic,aiu-meson8
2862306a36Sopenharmony_ci          - amlogic,aiu-meson8b
2962306a36Sopenharmony_ci      - const: amlogic,aiu
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  clocks:
3262306a36Sopenharmony_ci    items:
3362306a36Sopenharmony_ci      - description: AIU peripheral clock
3462306a36Sopenharmony_ci      - description: I2S peripheral clock
3562306a36Sopenharmony_ci      - description: I2S output clock
3662306a36Sopenharmony_ci      - description: I2S master clock
3762306a36Sopenharmony_ci      - description: I2S mixer clock
3862306a36Sopenharmony_ci      - description: SPDIF peripheral clock
3962306a36Sopenharmony_ci      - description: SPDIF output clock
4062306a36Sopenharmony_ci      - description: SPDIF master clock
4162306a36Sopenharmony_ci      - description: SPDIF master clock multiplexer
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  clock-names:
4462306a36Sopenharmony_ci    items:
4562306a36Sopenharmony_ci      - const: pclk
4662306a36Sopenharmony_ci      - const: i2s_pclk
4762306a36Sopenharmony_ci      - const: i2s_aoclk
4862306a36Sopenharmony_ci      - const: i2s_mclk
4962306a36Sopenharmony_ci      - const: i2s_mixer
5062306a36Sopenharmony_ci      - const: spdif_pclk
5162306a36Sopenharmony_ci      - const: spdif_aoclk
5262306a36Sopenharmony_ci      - const: spdif_mclk
5362306a36Sopenharmony_ci      - const: spdif_mclk_sel
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  interrupts:
5662306a36Sopenharmony_ci    items:
5762306a36Sopenharmony_ci      - description: I2S interrupt line
5862306a36Sopenharmony_ci      - description: SPDIF interrupt line
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci  interrupt-names:
6162306a36Sopenharmony_ci    items:
6262306a36Sopenharmony_ci      - const: i2s
6362306a36Sopenharmony_ci      - const: spdif
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci  reg:
6662306a36Sopenharmony_ci    maxItems: 1
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  resets:
6962306a36Sopenharmony_ci    maxItems: 1
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci  sound-name-prefix: true
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_cirequired:
7462306a36Sopenharmony_ci  - "#sound-dai-cells"
7562306a36Sopenharmony_ci  - compatible
7662306a36Sopenharmony_ci  - clocks
7762306a36Sopenharmony_ci  - clock-names
7862306a36Sopenharmony_ci  - interrupts
7962306a36Sopenharmony_ci  - interrupt-names
8062306a36Sopenharmony_ci  - reg
8162306a36Sopenharmony_ci  - resets
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciadditionalProperties: false
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciexamples:
8662306a36Sopenharmony_ci  - |
8762306a36Sopenharmony_ci    #include <dt-bindings/clock/gxbb-clkc.h>
8862306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
8962306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
9062306a36Sopenharmony_ci    #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci    aiu: audio-controller@5400 {
9362306a36Sopenharmony_ci        compatible = "amlogic,aiu-gxl", "amlogic,aiu";
9462306a36Sopenharmony_ci        #sound-dai-cells = <2>;
9562306a36Sopenharmony_ci        reg = <0x5400 0x2ac>;
9662306a36Sopenharmony_ci        interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
9762306a36Sopenharmony_ci                     <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
9862306a36Sopenharmony_ci        interrupt-names = "i2s", "spdif";
9962306a36Sopenharmony_ci        clocks = <&clkc CLKID_AIU_GLUE>,
10062306a36Sopenharmony_ci                 <&clkc CLKID_I2S_OUT>,
10162306a36Sopenharmony_ci                 <&clkc CLKID_AOCLK_GATE>,
10262306a36Sopenharmony_ci                 <&clkc CLKID_CTS_AMCLK>,
10362306a36Sopenharmony_ci                 <&clkc CLKID_MIXER_IFACE>,
10462306a36Sopenharmony_ci                 <&clkc CLKID_IEC958>,
10562306a36Sopenharmony_ci                 <&clkc CLKID_IEC958_GATE>,
10662306a36Sopenharmony_ci                 <&clkc CLKID_CTS_MCLK_I958>,
10762306a36Sopenharmony_ci                 <&clkc CLKID_CTS_I958>;
10862306a36Sopenharmony_ci        clock-names = "pclk",
10962306a36Sopenharmony_ci                      "i2s_pclk",
11062306a36Sopenharmony_ci                      "i2s_aoclk",
11162306a36Sopenharmony_ci                      "i2s_mclk",
11262306a36Sopenharmony_ci                      "i2s_mixer",
11362306a36Sopenharmony_ci                      "spdif_pclk",
11462306a36Sopenharmony_ci                      "spdif_aoclk",
11562306a36Sopenharmony_ci                      "spdif_mclk",
11662306a36Sopenharmony_ci                      "spdif_mclk_sel";
11762306a36Sopenharmony_ci        resets = <&reset RESET_AIU>;
11862306a36Sopenharmony_ci    };
119