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