xref: /freebsd/sys/contrib/device-tree/Bindings/pci/amd,versal2-mdb-host.yaml (revision 8ccc0d235c226d84112561d453c49904398d085c)
1*8ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8ccc0d23SEmmanuel Vadot%YAML 1.2
3*8ccc0d23SEmmanuel Vadot---
4*8ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/pci/amd,versal2-mdb-host.yaml#
5*8ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8ccc0d23SEmmanuel Vadot
7*8ccc0d23SEmmanuel Vadottitle: AMD Versal2 MDB(Multimedia DMA Bridge) Host Controller
8*8ccc0d23SEmmanuel Vadot
9*8ccc0d23SEmmanuel Vadotmaintainers:
10*8ccc0d23SEmmanuel Vadot  - Thippeswamy Havalige <thippeswamy.havalige@amd.com>
11*8ccc0d23SEmmanuel Vadot
12*8ccc0d23SEmmanuel VadotallOf:
13*8ccc0d23SEmmanuel Vadot  - $ref: /schemas/pci/pci-host-bridge.yaml#
14*8ccc0d23SEmmanuel Vadot  - $ref: /schemas/pci/snps,dw-pcie.yaml#
15*8ccc0d23SEmmanuel Vadot
16*8ccc0d23SEmmanuel Vadotproperties:
17*8ccc0d23SEmmanuel Vadot  compatible:
18*8ccc0d23SEmmanuel Vadot    const: amd,versal2-mdb-host
19*8ccc0d23SEmmanuel Vadot
20*8ccc0d23SEmmanuel Vadot  reg:
21*8ccc0d23SEmmanuel Vadot    items:
22*8ccc0d23SEmmanuel Vadot      - description: MDB System Level Control and Status Register (SLCR) Base
23*8ccc0d23SEmmanuel Vadot      - description: configuration region
24*8ccc0d23SEmmanuel Vadot      - description: data bus interface
25*8ccc0d23SEmmanuel Vadot      - description: address translation unit register
26*8ccc0d23SEmmanuel Vadot
27*8ccc0d23SEmmanuel Vadot  reg-names:
28*8ccc0d23SEmmanuel Vadot    items:
29*8ccc0d23SEmmanuel Vadot      - const: slcr
30*8ccc0d23SEmmanuel Vadot      - const: config
31*8ccc0d23SEmmanuel Vadot      - const: dbi
32*8ccc0d23SEmmanuel Vadot      - const: atu
33*8ccc0d23SEmmanuel Vadot
34*8ccc0d23SEmmanuel Vadot  ranges:
35*8ccc0d23SEmmanuel Vadot    maxItems: 2
36*8ccc0d23SEmmanuel Vadot
37*8ccc0d23SEmmanuel Vadot  msi-map:
38*8ccc0d23SEmmanuel Vadot    maxItems: 1
39*8ccc0d23SEmmanuel Vadot
40*8ccc0d23SEmmanuel Vadot  interrupts:
41*8ccc0d23SEmmanuel Vadot    maxItems: 1
42*8ccc0d23SEmmanuel Vadot
43*8ccc0d23SEmmanuel Vadot  interrupt-map-mask:
44*8ccc0d23SEmmanuel Vadot    items:
45*8ccc0d23SEmmanuel Vadot      - const: 0
46*8ccc0d23SEmmanuel Vadot      - const: 0
47*8ccc0d23SEmmanuel Vadot      - const: 0
48*8ccc0d23SEmmanuel Vadot      - const: 7
49*8ccc0d23SEmmanuel Vadot
50*8ccc0d23SEmmanuel Vadot  interrupt-map:
51*8ccc0d23SEmmanuel Vadot    maxItems: 4
52*8ccc0d23SEmmanuel Vadot
53*8ccc0d23SEmmanuel Vadot  "#interrupt-cells":
54*8ccc0d23SEmmanuel Vadot    const: 1
55*8ccc0d23SEmmanuel Vadot
56*8ccc0d23SEmmanuel Vadot  interrupt-controller:
57*8ccc0d23SEmmanuel Vadot    description: identifies the node as an interrupt controller
58*8ccc0d23SEmmanuel Vadot    type: object
59*8ccc0d23SEmmanuel Vadot    additionalProperties: false
60*8ccc0d23SEmmanuel Vadot    properties:
61*8ccc0d23SEmmanuel Vadot      interrupt-controller: true
62*8ccc0d23SEmmanuel Vadot
63*8ccc0d23SEmmanuel Vadot      "#address-cells":
64*8ccc0d23SEmmanuel Vadot        const: 0
65*8ccc0d23SEmmanuel Vadot
66*8ccc0d23SEmmanuel Vadot      "#interrupt-cells":
67*8ccc0d23SEmmanuel Vadot        const: 1
68*8ccc0d23SEmmanuel Vadot
69*8ccc0d23SEmmanuel Vadot    required:
70*8ccc0d23SEmmanuel Vadot      - interrupt-controller
71*8ccc0d23SEmmanuel Vadot      - "#address-cells"
72*8ccc0d23SEmmanuel Vadot      - "#interrupt-cells"
73*8ccc0d23SEmmanuel Vadot
74*8ccc0d23SEmmanuel Vadotrequired:
75*8ccc0d23SEmmanuel Vadot  - reg
76*8ccc0d23SEmmanuel Vadot  - reg-names
77*8ccc0d23SEmmanuel Vadot  - interrupts
78*8ccc0d23SEmmanuel Vadot  - interrupt-map
79*8ccc0d23SEmmanuel Vadot  - interrupt-map-mask
80*8ccc0d23SEmmanuel Vadot  - msi-map
81*8ccc0d23SEmmanuel Vadot  - "#interrupt-cells"
82*8ccc0d23SEmmanuel Vadot  - interrupt-controller
83*8ccc0d23SEmmanuel Vadot
84*8ccc0d23SEmmanuel VadotunevaluatedProperties: false
85*8ccc0d23SEmmanuel Vadot
86*8ccc0d23SEmmanuel Vadotexamples:
87*8ccc0d23SEmmanuel Vadot  - |
88*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
89*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
90*8ccc0d23SEmmanuel Vadot
91*8ccc0d23SEmmanuel Vadot    soc {
92*8ccc0d23SEmmanuel Vadot        #address-cells = <2>;
93*8ccc0d23SEmmanuel Vadot        #size-cells = <2>;
94*8ccc0d23SEmmanuel Vadot        pcie@ed931000 {
95*8ccc0d23SEmmanuel Vadot            compatible = "amd,versal2-mdb-host";
96*8ccc0d23SEmmanuel Vadot            reg = <0x0 0xed931000 0x0 0x2000>,
97*8ccc0d23SEmmanuel Vadot                  <0x1000 0x100000 0x0 0xff00000>,
98*8ccc0d23SEmmanuel Vadot                  <0x1000 0x0 0x0 0x1000>,
99*8ccc0d23SEmmanuel Vadot                  <0x0 0xed860000 0x0 0x2000>;
100*8ccc0d23SEmmanuel Vadot            reg-names = "slcr", "config", "dbi", "atu";
101*8ccc0d23SEmmanuel Vadot            ranges = <0x2000000 0x00 0xa0000000 0x00 0xa0000000 0x00 0x10000000>,
102*8ccc0d23SEmmanuel Vadot                     <0x43000000 0x1100 0x00 0x1100 0x00 0x00 0x1000000>;
103*8ccc0d23SEmmanuel Vadot            interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
104*8ccc0d23SEmmanuel Vadot            interrupt-parent = <&gic>;
105*8ccc0d23SEmmanuel Vadot            interrupt-map-mask = <0 0 0 7>;
106*8ccc0d23SEmmanuel Vadot            interrupt-map = <0 0 0 1 &pcie_intc_0 0>,
107*8ccc0d23SEmmanuel Vadot                            <0 0 0 2 &pcie_intc_0 1>,
108*8ccc0d23SEmmanuel Vadot                            <0 0 0 3 &pcie_intc_0 2>,
109*8ccc0d23SEmmanuel Vadot                            <0 0 0 4 &pcie_intc_0 3>;
110*8ccc0d23SEmmanuel Vadot            msi-map = <0x0 &gic_its 0x00 0x10000>;
111*8ccc0d23SEmmanuel Vadot            #address-cells = <3>;
112*8ccc0d23SEmmanuel Vadot            #size-cells = <2>;
113*8ccc0d23SEmmanuel Vadot            #interrupt-cells = <1>;
114*8ccc0d23SEmmanuel Vadot            device_type = "pci";
115*8ccc0d23SEmmanuel Vadot            pcie_intc_0: interrupt-controller {
116*8ccc0d23SEmmanuel Vadot                #address-cells = <0>;
117*8ccc0d23SEmmanuel Vadot                #interrupt-cells = <1>;
118*8ccc0d23SEmmanuel Vadot                interrupt-controller;
119*8ccc0d23SEmmanuel Vadot           };
120*8ccc0d23SEmmanuel Vadot        };
121*8ccc0d23SEmmanuel Vadot    };
122