Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/microchip,pcie-host.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Microchip PCIe Root Port Bridge Controller maintainers: - Daire McNamara <daire.mcnamara@microchip.com> allOf: - $ref: /schemas/pci/pci-bus.yaml# - $ref: /schemas/interrupt-controller/msi-controller.yaml# properties: compatible: const: microchip,pcie-host-1.0 # PolarFire reg: maxItems: 2 reg-names: items: - const: cfg - const: apb clocks: description: Fabric Interface Controllers, FICs, are the interface between the FPGA fabric and the core complex on PolarFire SoC. The FICs require two clocks, one from each side of the interface. The "FIC clocks" described by this property are on the core complex side & communication through a FIC is not possible unless it's corresponding clock is enabled. A clock must be enabled for each of the interfaces the root port is connected through. This could in theory be all 4 interfaces, one interface or any combination in between. minItems: 1 items: - description: FIC0's clock - description: FIC1's clock - description: FIC2's clock - description: FIC3's clock clock-names: description: As any FIC connection combination is possible, the names should match the order in the clocks property and take the form "ficN" where N is a number 0-3 minItems: 1 maxItems: 4 items: pattern: '^fic[0-3]$' interrupts: minItems: 1 items: - description: PCIe host controller - description: builtin MSI controller interrupt-names: minItems: 1 items: - const: pcie - const: msi ranges: maxItems: 1 dma-ranges: minItems: 1 maxItems: 6 msi-controller: description: Identifies the node as an MSI controller. msi-parent: description: MSI controller the device is capable of using. interrupt-controller: type: object properties: '#address-cells': const: 0 '#interrupt-cells': const: 1 interrupt-controller: true required: - '#address-cells' - '#interrupt-cells' - interrupt-controller additionalProperties: false required: - reg - reg-names - "#interrupt-cells" - interrupts - interrupt-map-mask - interrupt-map - msi-controller unevaluatedProperties: false examples: - | soc { #address-cells = <2>; #size-cells = <2>; pcie0: pcie@2030000000 { compatible = "microchip,pcie-host-1.0"; reg = <0x0 0x70000000 0x0 0x08000000>, <0x0 0x43000000 0x0 0x00010000>; reg-names = "cfg", "apb"; device_type = "pci"; #address-cells = <3>; #size-cells = <2>; #interrupt-cells = <1>; interrupts = <119>; interrupt-map-mask = <0x0 0x0 0x0 0x7>; interrupt-map = <0 0 0 1 &pcie_intc0 0>, <0 0 0 2 &pcie_intc0 1>, <0 0 0 3 &pcie_intc0 2>, <0 0 0 4 &pcie_intc0 3>; interrupt-parent = <&plic0>; msi-parent = <&pcie0>; msi-controller; bus-range = <0x00 0x7f>; ranges = <0x03000000 0x0 0x78000000 0x0 0x78000000 0x0 0x04000000>; pcie_intc0: interrupt-controller { #address-cells = <0>; #interrupt-cells = <1>; interrupt-controller; }; }; }; |