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