1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/amlogic,axg-fifo.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Amlogic AXG Audio FIFO controllers
8
9maintainers:
10  - Jerome Brunet <jbrunet@baylibre.com>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - amlogic,axg-toddr
17          - amlogic,axg-frddr
18      - items:
19          - enum:
20              - amlogic,g12a-toddr
21              - amlogic,sm1-toddr
22          - const: amlogic,axg-toddr
23      - items:
24          - enum:
25              - amlogic,g12a-frddr
26              - amlogic,sm1-frddr
27          - const: amlogic,axg-frddr
28
29  reg:
30    maxItems: 1
31
32  "#sound-dai-cells":
33    const: 0
34
35  clocks:
36    items:
37      - description: Peripheral clock
38
39  interrupts:
40    maxItems: 1
41
42  resets:
43    minItems: 1
44    maxItems: 2
45
46  reset-names:
47    minItems: 1
48    maxItems: 2
49
50  amlogic,fifo-depth:
51    $ref: /schemas/types.yaml#/definitions/uint32
52    description: Size of the controller's fifo in bytes
53
54required:
55  - compatible
56  - reg
57  - "#sound-dai-cells"
58  - clocks
59  - interrupts
60  - resets
61  - amlogic,fifo-depth
62
63allOf:
64  - $ref: dai-common.yaml#
65  - if:
66      properties:
67        compatible:
68          contains:
69            enum:
70              - amlogic,g12a-toddr
71              - amlogic,sm1-toddr
72              - amlogic,g12a-frddr
73              - amlogic,sm1-frddr
74
75    then:
76      properties:
77        resets:
78          minItems: 2
79        reset-names:
80          items:
81            - const: arb
82            - const: rst
83      required:
84        - reset-names
85
86    else:
87      properties:
88        resets:
89          maxItems: 1
90        reset-names:
91          const: arb
92
93unevaluatedProperties: false
94
95examples:
96  - |
97    #include <dt-bindings/clock/axg-audio-clkc.h>
98    #include <dt-bindings/interrupt-controller/irq.h>
99    #include <dt-bindings/interrupt-controller/arm-gic.h>
100    #include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
101    #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
102
103    audio-controller@1c0 {
104        compatible = "amlogic,g12a-frddr", "amlogic,axg-frddr";
105        reg = <0x1c0 0x1c>;
106        #sound-dai-cells = <0>;
107        clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
108        interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
109        resets = <&arb>, <&clkc_audio AUD_RESET_FRDDR_A>;
110        reset-names = "arb", "rst";
111        amlogic,fifo-depth = <512>;
112    };
113