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