xref: /freebsd/sys/contrib/device-tree/Bindings/pci/apm,xgene-pcie.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*833e5d42SEmmanuel Vadot%YAML 1.2
3*833e5d42SEmmanuel Vadot---
4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/pci/apm,xgene-pcie.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: AppliedMicro X-Gene PCIe interface
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotmaintainers:
10*833e5d42SEmmanuel Vadot  - Toan Le <toan@os.amperecomputing.com>
11*833e5d42SEmmanuel Vadot
12*833e5d42SEmmanuel VadotallOf:
13*833e5d42SEmmanuel Vadot  - $ref: /schemas/pci/pci-host-bridge.yaml#
14*833e5d42SEmmanuel Vadot
15*833e5d42SEmmanuel Vadotproperties:
16*833e5d42SEmmanuel Vadot  compatible:
17*833e5d42SEmmanuel Vadot    oneOf:
18*833e5d42SEmmanuel Vadot      - items:
19*833e5d42SEmmanuel Vadot          - const: apm,xgene-storm-pcie
20*833e5d42SEmmanuel Vadot          - const: apm,xgene-pcie
21*833e5d42SEmmanuel Vadot      - items:
22*833e5d42SEmmanuel Vadot          - const: apm,xgene-pcie
23*833e5d42SEmmanuel Vadot
24*833e5d42SEmmanuel Vadot  reg:
25*833e5d42SEmmanuel Vadot    items:
26*833e5d42SEmmanuel Vadot      - description: Controller configuration registers
27*833e5d42SEmmanuel Vadot      - description: PCI configuration space registers
28*833e5d42SEmmanuel Vadot
29*833e5d42SEmmanuel Vadot  reg-names:
30*833e5d42SEmmanuel Vadot    items:
31*833e5d42SEmmanuel Vadot      - const: csr
32*833e5d42SEmmanuel Vadot      - const: cfg
33*833e5d42SEmmanuel Vadot
34*833e5d42SEmmanuel Vadot  clocks:
35*833e5d42SEmmanuel Vadot    maxItems: 1
36*833e5d42SEmmanuel Vadot
37*833e5d42SEmmanuel Vadot  clock-names:
38*833e5d42SEmmanuel Vadot    items:
39*833e5d42SEmmanuel Vadot      - const: pcie
40*833e5d42SEmmanuel Vadot
41*833e5d42SEmmanuel Vadot  dma-coherent: true
42*833e5d42SEmmanuel Vadot
43*833e5d42SEmmanuel Vadot  msi-parent:
44*833e5d42SEmmanuel Vadot    maxItems: 1
45*833e5d42SEmmanuel Vadot
46*833e5d42SEmmanuel Vadotrequired:
47*833e5d42SEmmanuel Vadot  - compatible
48*833e5d42SEmmanuel Vadot  - reg
49*833e5d42SEmmanuel Vadot  - reg-names
50*833e5d42SEmmanuel Vadot  - '#interrupt-cells'
51*833e5d42SEmmanuel Vadot  - interrupt-map-mask
52*833e5d42SEmmanuel Vadot  - interrupt-map
53*833e5d42SEmmanuel Vadot  - clocks
54*833e5d42SEmmanuel Vadot
55*833e5d42SEmmanuel VadotunevaluatedProperties: false
56*833e5d42SEmmanuel Vadot
57*833e5d42SEmmanuel Vadotexamples:
58*833e5d42SEmmanuel Vadot  - |
59*833e5d42SEmmanuel Vadot    bus {
60*833e5d42SEmmanuel Vadot        #address-cells = <2>;
61*833e5d42SEmmanuel Vadot        #size-cells = <2>;
62*833e5d42SEmmanuel Vadot
63*833e5d42SEmmanuel Vadot        pcie@1f2b0000 {
64*833e5d42SEmmanuel Vadot            compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
65*833e5d42SEmmanuel Vadot            device_type = "pci";
66*833e5d42SEmmanuel Vadot            #interrupt-cells = <1>;
67*833e5d42SEmmanuel Vadot            #size-cells = <2>;
68*833e5d42SEmmanuel Vadot            #address-cells = <3>;
69*833e5d42SEmmanuel Vadot            reg = <0x00 0x1f2b0000 0x0 0x00010000>, /* Controller registers */
70*833e5d42SEmmanuel Vadot                  <0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
71*833e5d42SEmmanuel Vadot            reg-names = "csr", "cfg";
72*833e5d42SEmmanuel Vadot            ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000>, /* io */
73*833e5d42SEmmanuel Vadot                    <0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000>; /* mem */
74*833e5d42SEmmanuel Vadot            dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000>,
75*833e5d42SEmmanuel Vadot                        <0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
76*833e5d42SEmmanuel Vadot            interrupt-map-mask = <0x0 0x0 0x0 0x7>;
77*833e5d42SEmmanuel Vadot            interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1>,
78*833e5d42SEmmanuel Vadot                            <0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1>,
79*833e5d42SEmmanuel Vadot                            <0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1>,
80*833e5d42SEmmanuel Vadot                            <0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>;
81*833e5d42SEmmanuel Vadot            dma-coherent;
82*833e5d42SEmmanuel Vadot            clocks = <&pcie0clk 0>;
83*833e5d42SEmmanuel Vadot        };
84*833e5d42SEmmanuel Vadot    };
85