1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/pci/nvidia,tegra264-pcie.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: NVIDIA Tegra264 PCIe controller 8 9maintainers: 10 - Thierry Reding <thierry.reding@gmail.com> 11 - Jon Hunter <jonathanh@nvidia.com> 12 13properties: 14 compatible: 15 const: nvidia,tegra264-pcie 16 17 reg: 18 description: | 19 Of the six PCIe controllers found on Tegra264, one (C0) is used for the 20 internal GPU and the other five (C1-C5) are routed to connectors such as 21 PCI or M.2 slots. Therefore the UPHY registers (XPL) exist only for C1 22 through C5, but not for C0. 23 minItems: 4 24 items: 25 - description: ECAM-compatible configuration space 26 - description: application layer registers 27 - description: transaction layer registers 28 - description: privileged transaction layer registers 29 - description: data link/physical layer registers (not available on C0) 30 31 reg-names: 32 minItems: 4 33 items: 34 - const: ecam 35 - const: xal 36 - const: xtl 37 - const: xtl-pri 38 - const: xpl 39 40 interrupts: 41 minItems: 1 42 maxItems: 4 43 44 dma-coherent: true 45 46 nvidia,bpmp: 47 $ref: /schemas/types.yaml#/definitions/phandle-array 48 description: | 49 Must contain a pair of phandle (to the BPMP controller node) and 50 controller ID. The following are the controller IDs for each controller: 51 52 0: C0 53 1: C1 54 2: C2 55 3: C3 56 4: C4 57 5: C5 58 items: 59 - items: 60 - description: phandle to the BPMP controller node 61 - description: PCIe controller ID 62 maximum: 5 63 64required: 65 - interrupt-map 66 - interrupt-map-mask 67 - iommu-map 68 - msi-map 69 - nvidia,bpmp 70 71allOf: 72 - $ref: /schemas/pci/pci-host-bridge.yaml# 73 74unevaluatedProperties: false 75 76examples: 77 - | 78 bus { 79 #address-cells = <2>; 80 #size-cells = <2>; 81 82 pci@c000000 { 83 compatible = "nvidia,tegra264-pcie"; 84 reg = <0xd0 0xb0000000 0x0 0x10000000>, 85 <0x00 0x0c000000 0x0 0x00004000>, 86 <0x00 0x0c004000 0x0 0x00001000>, 87 <0x00 0x0c005000 0x0 0x00001000>; 88 reg-names = "ecam", "xal", "xtl", "xtl-pri"; 89 #address-cells = <3>; 90 #size-cells = <2>; 91 device_type = "pci"; 92 linux,pci-domain = <0x00>; 93 #interrupt-cells = <0x1>; 94 95 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 96 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 155 4>, 97 <0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 156 4>, 98 <0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 157 4>, 99 <0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 158 4>; 100 101 iommu-map = <0x0 &smmu2 0x10000 0x10000>; 102 msi-map = <0x0 &its 0x210000 0x10000>; 103 dma-coherent; 104 105 ranges = <0x81000000 0x00 0x84000000 0xd0 0x84000000 0x00 0x00200000>, 106 <0x82000000 0x00 0x20000000 0x00 0x20000000 0x00 0x08000000>, 107 <0xc3000000 0xd0 0xc0000000 0xd0 0xc0000000 0x07 0xc0000000>; 108 bus-range = <0x0 0xff>; 109 110 nvidia,bpmp = <&bpmp 0>; 111 }; 112 }; 113 114 - | 115 bus { 116 #address-cells = <2>; 117 #size-cells = <2>; 118 119 pci@8400000 { 120 compatible = "nvidia,tegra264-pcie"; 121 reg = <0xa8 0xb0000000 0x0 0x10000000>, 122 <0x00 0x08400000 0x0 0x00004000>, 123 <0x00 0x08404000 0x0 0x00001000>, 124 <0x00 0x08405000 0x0 0x00001000>, 125 <0x00 0x08410000 0x0 0x00010000>; 126 reg-names = "ecam", "xal", "xtl", "xtl-pri", "xpl"; 127 #address-cells = <3>; 128 #size-cells = <2>; 129 device_type = "pci"; 130 linux,pci-domain = <0x01>; 131 #interrupt-cells = <1>; 132 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 133 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 908 4>, 134 <0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 909 4>, 135 <0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 910 4>, 136 <0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 911 4>; 137 138 iommu-map = <0x0 &smmu1 0x10000 0x10000>; 139 msi-map = <0x0 &its 0x110000 0x10000>; 140 dma-coherent; 141 142 ranges = <0x81000000 0x00 0x84000000 0xa8 0x84000000 0x00 0x00200000>, 143 <0x82000000 0x00 0x28000000 0x00 0x28000000 0x00 0x08000000>, 144 <0xc3000000 0xa8 0xc0000000 0xa8 0xc0000000 0x07 0xc0000000>; 145 bus-range = <0x00 0xff>; 146 147 nvidia,bpmp = <&bpmp 1>; 148 }; 149 }; 150