1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/soc/aspeed/xdma.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Aspeed AST25XX and AST26XX XDMA Engine
8
9maintainers:
10  - Eddie James <eajames@linux.ibm.com>
11
12description: |
13  This binding describes the XDMA Engine embedded in the AST2500 and AST2600
14  SOCs. The XDMA engine can perform automatic DMA operations over PCI between
15  the SOC (acting as a BMC) and a host processor.
16
17properties:
18  compatible:
19    enum:
20      - aspeed,ast2500-xdma
21      - aspeed,ast2600-xdma
22
23  reg:
24    maxItems: 1
25
26  clocks:
27    maxItems: 1
28
29  resets:
30    minItems: 1
31    maxItems: 2
32
33  reset-names:
34    items:
35      - const: device
36      - const: root-complex
37
38  interrupts:
39    items:
40      - description: global interrupt for the XDMA engine
41      - description: PCI-E reset or PERST interrupt
42
43  aspeed,scu:
44    description: a reference to the System Control Unit node of the Aspeed SOC.
45    allOf:
46      - $ref: /schemas/types.yaml#/definitions/phandle
47
48  aspeed,pcie-device:
49    description: describes which PCI-E device the XDMA engine should use
50    allOf:
51      - $ref: /schemas/types.yaml#/definitions/string
52      - enum: [ bmc, vga ]
53
54required:
55  - compatible
56  - reg
57  - clocks
58  - resets
59  - interrupts-extended
60  - aspeed,scu
61  - memory-region
62
63if:
64  properties:
65    compatible:
66      contains:
67        const: aspeed,ast2600-xdma
68then:
69  required:
70    - reset-names
71
72additionalProperties: false
73
74examples:
75  - |
76    #include <dt-bindings/clock/ast2600-clock.h>
77    #include <dt-bindings/interrupt-controller/arm-gic.h>
78    #include <dt-bindings/interrupt-controller/aspeed-scu-ic.h>
79    syscon: syscon@1e6e2000 {
80        reg = <0x1e6e2000 0x1000>;
81        ranges = <0 0x1e6e2000 0x1000>;
82        #address-cells = <1>;
83        #size-cells = <1>;
84        #clock-cells = <1>;
85        #reset-cells = <1>;
86        scu_ic0: interrupt-controller@560 {
87            reg = <0x560 0x4>;
88            interrupt-controller;
89            #interrupt-cells = <1>;
90        };
91    };
92    xdma@1e6e7000 {
93        compatible = "aspeed,ast2600-xdma";
94        reg = <0x1e6e7000 0x100>;
95        clocks = <&syscon ASPEED_CLK_GATE_BCLK>;
96        resets = <&syscon ASPEED_RESET_DEV_XDMA>, <&syscon ASPEED_RESET_RC_XDMA>;
97        reset-names = "device", "root-complex";
98        interrupts-extended = <&gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
99                              <&scu_ic0 ASPEED_AST2600_SCU_IC0_PCIE_PERST_LO_TO_HI>;
100        aspeed,scu = <&syscon>;
101        aspeed,pcie-device = "bmc";
102        memory-region = <&vga_memory>;
103    };
104