xref: /freebsd/sys/contrib/device-tree/Bindings/pci/xlnx,xdma-host.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
184943d6fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
284943d6fSEmmanuel Vadot%YAML 1.2
384943d6fSEmmanuel Vadot---
484943d6fSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/xlnx,xdma-host.yaml#
584943d6fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
684943d6fSEmmanuel Vadot
784943d6fSEmmanuel Vadottitle: Xilinx XDMA PL PCIe Root Port Bridge
884943d6fSEmmanuel Vadot
984943d6fSEmmanuel Vadotmaintainers:
1084943d6fSEmmanuel Vadot  - Thippeswamy Havalige <thippeswamy.havalige@amd.com>
1184943d6fSEmmanuel Vadot
1284943d6fSEmmanuel VadotallOf:
137d0873ebSEmmanuel Vadot  - $ref: /schemas/pci/pci-host-bridge.yaml#
1484943d6fSEmmanuel Vadot
1584943d6fSEmmanuel Vadotproperties:
1684943d6fSEmmanuel Vadot  compatible:
17*b2d2a78aSEmmanuel Vadot    enum:
18*b2d2a78aSEmmanuel Vadot      - xlnx,xdma-host-3.00
19*b2d2a78aSEmmanuel Vadot      - xlnx,qdma-host-3.00
2084943d6fSEmmanuel Vadot
2184943d6fSEmmanuel Vadot  reg:
22*b2d2a78aSEmmanuel Vadot    items:
23*b2d2a78aSEmmanuel Vadot      - description: configuration region and XDMA bridge register.
24*b2d2a78aSEmmanuel Vadot      - description: QDMA bridge register.
25*b2d2a78aSEmmanuel Vadot    minItems: 1
26*b2d2a78aSEmmanuel Vadot
27*b2d2a78aSEmmanuel Vadot  reg-names:
28*b2d2a78aSEmmanuel Vadot    items:
29*b2d2a78aSEmmanuel Vadot      - const: cfg
30*b2d2a78aSEmmanuel Vadot      - const: breg
31*b2d2a78aSEmmanuel Vadot    minItems: 1
3284943d6fSEmmanuel Vadot
3384943d6fSEmmanuel Vadot  ranges:
3484943d6fSEmmanuel Vadot    maxItems: 2
3584943d6fSEmmanuel Vadot
3684943d6fSEmmanuel Vadot  interrupts:
3784943d6fSEmmanuel Vadot    items:
3884943d6fSEmmanuel Vadot      - description: interrupt asserted when miscellaneous interrupt is received.
3984943d6fSEmmanuel Vadot      - description: msi0 interrupt asserted when an MSI is received.
4084943d6fSEmmanuel Vadot      - description: msi1 interrupt asserted when an MSI is received.
4184943d6fSEmmanuel Vadot
4284943d6fSEmmanuel Vadot  interrupt-names:
4384943d6fSEmmanuel Vadot    items:
4484943d6fSEmmanuel Vadot      - const: misc
4584943d6fSEmmanuel Vadot      - const: msi0
4684943d6fSEmmanuel Vadot      - const: msi1
4784943d6fSEmmanuel Vadot
4884943d6fSEmmanuel Vadot  interrupt-map-mask:
4984943d6fSEmmanuel Vadot    items:
5084943d6fSEmmanuel Vadot      - const: 0
5184943d6fSEmmanuel Vadot      - const: 0
5284943d6fSEmmanuel Vadot      - const: 0
5384943d6fSEmmanuel Vadot      - const: 7
5484943d6fSEmmanuel Vadot
5584943d6fSEmmanuel Vadot  interrupt-map:
5684943d6fSEmmanuel Vadot    maxItems: 4
5784943d6fSEmmanuel Vadot
5884943d6fSEmmanuel Vadot  "#interrupt-cells":
5984943d6fSEmmanuel Vadot    const: 1
6084943d6fSEmmanuel Vadot
6184943d6fSEmmanuel Vadot  interrupt-controller:
6284943d6fSEmmanuel Vadot    description: identifies the node as an interrupt controller
6384943d6fSEmmanuel Vadot    type: object
6484943d6fSEmmanuel Vadot    properties:
6584943d6fSEmmanuel Vadot      interrupt-controller: true
6684943d6fSEmmanuel Vadot
6784943d6fSEmmanuel Vadot      "#address-cells":
6884943d6fSEmmanuel Vadot        const: 0
6984943d6fSEmmanuel Vadot
7084943d6fSEmmanuel Vadot      "#interrupt-cells":
7184943d6fSEmmanuel Vadot        const: 1
7284943d6fSEmmanuel Vadot
7384943d6fSEmmanuel Vadot    required:
7484943d6fSEmmanuel Vadot      - interrupt-controller
7584943d6fSEmmanuel Vadot      - "#address-cells"
7684943d6fSEmmanuel Vadot      - "#interrupt-cells"
7784943d6fSEmmanuel Vadot
7884943d6fSEmmanuel Vadot    additionalProperties: false
7984943d6fSEmmanuel Vadot
8084943d6fSEmmanuel Vadotrequired:
8184943d6fSEmmanuel Vadot  - compatible
8284943d6fSEmmanuel Vadot  - reg
8384943d6fSEmmanuel Vadot  - ranges
8484943d6fSEmmanuel Vadot  - interrupts
8584943d6fSEmmanuel Vadot  - interrupt-map
8684943d6fSEmmanuel Vadot  - interrupt-map-mask
8784943d6fSEmmanuel Vadot  - "#interrupt-cells"
8884943d6fSEmmanuel Vadot  - interrupt-controller
8984943d6fSEmmanuel Vadot
90*b2d2a78aSEmmanuel Vadotif:
91*b2d2a78aSEmmanuel Vadot  properties:
92*b2d2a78aSEmmanuel Vadot    compatible:
93*b2d2a78aSEmmanuel Vadot      contains:
94*b2d2a78aSEmmanuel Vadot        enum:
95*b2d2a78aSEmmanuel Vadot          - xlnx,qdma-host-3.00
96*b2d2a78aSEmmanuel Vadotthen:
97*b2d2a78aSEmmanuel Vadot  properties:
98*b2d2a78aSEmmanuel Vadot    reg:
99*b2d2a78aSEmmanuel Vadot      minItems: 2
100*b2d2a78aSEmmanuel Vadot    reg-names:
101*b2d2a78aSEmmanuel Vadot      minItems: 2
102*b2d2a78aSEmmanuel Vadot  required:
103*b2d2a78aSEmmanuel Vadot    - reg-names
104*b2d2a78aSEmmanuel Vadotelse:
105*b2d2a78aSEmmanuel Vadot  properties:
106*b2d2a78aSEmmanuel Vadot    reg:
107*b2d2a78aSEmmanuel Vadot      maxItems: 1
108*b2d2a78aSEmmanuel Vadot    reg-names:
109*b2d2a78aSEmmanuel Vadot      maxItems: 1
110*b2d2a78aSEmmanuel Vadot
11184943d6fSEmmanuel VadotunevaluatedProperties: false
11284943d6fSEmmanuel Vadot
11384943d6fSEmmanuel Vadotexamples:
11484943d6fSEmmanuel Vadot
11584943d6fSEmmanuel Vadot  - |
11684943d6fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
11784943d6fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
11884943d6fSEmmanuel Vadot
11984943d6fSEmmanuel Vadot    soc {
12084943d6fSEmmanuel Vadot        #address-cells = <2>;
12184943d6fSEmmanuel Vadot        #size-cells = <2>;
12284943d6fSEmmanuel Vadot        pcie@a0000000 {
12384943d6fSEmmanuel Vadot            compatible = "xlnx,xdma-host-3.00";
12484943d6fSEmmanuel Vadot            reg = <0x0 0xa0000000 0x0 0x10000000>;
12584943d6fSEmmanuel Vadot            ranges = <0x2000000 0x0 0xb0000000 0x0 0xb0000000 0x0 0x1000000>,
12684943d6fSEmmanuel Vadot                     <0x43000000 0x5 0x0 0x5 0x0 0x0 0x1000000>;
12784943d6fSEmmanuel Vadot            #address-cells = <3>;
12884943d6fSEmmanuel Vadot            #size-cells = <2>;
12984943d6fSEmmanuel Vadot            #interrupt-cells = <1>;
13084943d6fSEmmanuel Vadot            device_type = "pci";
13184943d6fSEmmanuel Vadot            interrupt-parent = <&gic>;
13284943d6fSEmmanuel Vadot            interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
13384943d6fSEmmanuel Vadot                         <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
13484943d6fSEmmanuel Vadot            interrupt-names = "misc", "msi0", "msi1";
13584943d6fSEmmanuel Vadot            interrupt-map-mask = <0x0 0x0 0x0 0x7>;
13684943d6fSEmmanuel Vadot            interrupt-map = <0 0 0 1 &pcie_intc_0 0>,
13784943d6fSEmmanuel Vadot                            <0 0 0 2 &pcie_intc_0 1>,
13884943d6fSEmmanuel Vadot                            <0 0 0 3 &pcie_intc_0 2>,
13984943d6fSEmmanuel Vadot                            <0 0 0 4 &pcie_intc_0 3>;
14084943d6fSEmmanuel Vadot            pcie_intc_0: interrupt-controller {
14184943d6fSEmmanuel Vadot                #address-cells = <0>;
14284943d6fSEmmanuel Vadot                #interrupt-cells = <1>;
14384943d6fSEmmanuel Vadot                interrupt-controller;
14484943d6fSEmmanuel Vadot            };
14584943d6fSEmmanuel Vadot        };
14684943d6fSEmmanuel Vadot    };
147