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