xref: /freebsd/sys/contrib/device-tree/Bindings/pci/versatile.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/versatile.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: ARM Versatile Platform Baseboard PCI interface
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Rob Herring <robh@kernel.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |+
13c66ec88fSEmmanuel Vadot  PCI host controller found on the ARM Versatile PB board's FPGA.
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel VadotallOf:
16*7d0873ebSEmmanuel Vadot  - $ref: /schemas/pci/pci-host-bridge.yaml#
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadotproperties:
19c66ec88fSEmmanuel Vadot  compatible:
20c66ec88fSEmmanuel Vadot    const: arm,versatile-pci
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadot  reg:
23c66ec88fSEmmanuel Vadot    items:
24c66ec88fSEmmanuel Vadot      - description: Versatile-specific registers
25c66ec88fSEmmanuel Vadot      - description: Self Config space
26c66ec88fSEmmanuel Vadot      - description: Config space
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  ranges:
29c66ec88fSEmmanuel Vadot    maxItems: 3
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot  "#interrupt-cells": true
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot  interrupt-map:
34c66ec88fSEmmanuel Vadot    maxItems: 16
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  interrupt-map-mask:
37c66ec88fSEmmanuel Vadot    items:
38c66ec88fSEmmanuel Vadot      - const: 0x1800
39c66ec88fSEmmanuel Vadot      - const: 0
40c66ec88fSEmmanuel Vadot      - const: 0
41c66ec88fSEmmanuel Vadot      - const: 7
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadotrequired:
44c66ec88fSEmmanuel Vadot  - compatible
45c66ec88fSEmmanuel Vadot  - reg
46c66ec88fSEmmanuel Vadot  - ranges
47c66ec88fSEmmanuel Vadot  - "#interrupt-cells"
48c66ec88fSEmmanuel Vadot  - interrupt-map
49c66ec88fSEmmanuel Vadot  - interrupt-map-mask
50c66ec88fSEmmanuel Vadot
516be33864SEmmanuel VadotunevaluatedProperties: false
526be33864SEmmanuel Vadot
53c66ec88fSEmmanuel Vadotexamples:
54c66ec88fSEmmanuel Vadot  - |
55c66ec88fSEmmanuel Vadot    pci@10001000 {
56c66ec88fSEmmanuel Vadot      compatible = "arm,versatile-pci";
57c66ec88fSEmmanuel Vadot      device_type = "pci";
58c66ec88fSEmmanuel Vadot      reg = <0x10001000 0x1000>,
59c66ec88fSEmmanuel Vadot            <0x41000000 0x10000>,
60c66ec88fSEmmanuel Vadot            <0x42000000 0x100000>;
61c66ec88fSEmmanuel Vadot      bus-range = <0 0xff>;
62c66ec88fSEmmanuel Vadot      #address-cells = <3>;
63c66ec88fSEmmanuel Vadot      #size-cells = <2>;
64c66ec88fSEmmanuel Vadot      #interrupt-cells = <1>;
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel Vadot      ranges =
67c66ec88fSEmmanuel Vadot          <0x01000000 0 0x00000000 0x43000000 0 0x00010000>,  /* downstream I/O */
68c66ec88fSEmmanuel Vadot          <0x02000000 0 0x50000000 0x50000000 0 0x10000000>,  /* non-prefetchable memory */
69c66ec88fSEmmanuel Vadot          <0x42000000 0 0x60000000 0x60000000 0 0x10000000>;  /* prefetchable memory */
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot      interrupt-map-mask = <0x1800 0 0 7>;
72c66ec88fSEmmanuel Vadot      interrupt-map = <0x1800 0 0 1 &sic 28>,
73c66ec88fSEmmanuel Vadot          <0x1800 0 0 2 &sic 29>,
74c66ec88fSEmmanuel Vadot          <0x1800 0 0 3 &sic 30>,
75c66ec88fSEmmanuel Vadot          <0x1800 0 0 4 &sic 27>,
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot          <0x1000 0 0 1 &sic 27>,
78c66ec88fSEmmanuel Vadot          <0x1000 0 0 2 &sic 28>,
79c66ec88fSEmmanuel Vadot          <0x1000 0 0 3 &sic 29>,
80c66ec88fSEmmanuel Vadot          <0x1000 0 0 4 &sic 30>,
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot          <0x0800 0 0 1 &sic 30>,
83c66ec88fSEmmanuel Vadot          <0x0800 0 0 2 &sic 27>,
84c66ec88fSEmmanuel Vadot          <0x0800 0 0 3 &sic 28>,
85c66ec88fSEmmanuel Vadot          <0x0800 0 0 4 &sic 29>,
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot          <0x0000 0 0 1 &sic 29>,
88c66ec88fSEmmanuel Vadot          <0x0000 0 0 2 &sic 30>,
89c66ec88fSEmmanuel Vadot          <0x0000 0 0 3 &sic 27>,
90c66ec88fSEmmanuel Vadot          <0x0000 0 0 4 &sic 28>;
91c66ec88fSEmmanuel Vadot    };
92c66ec88fSEmmanuel Vadot
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot...
95