Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dt-bindings: pci: Document the NVIDIA Tegra264 PCIe controller

The six PCIe controllers found on Tegra264 are of two types: one is used
for the internal GPU and therefore is not connected to a UPHY and the
remaining five controllers are typically routed to a PCI slot and have
additional controls for the physical link.

While these controllers can be switched into endpoint mode, this binding
describes the root complex mode only.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>

+149
+149
Documentation/devicetree/bindings/pci/nvidia,tegra264-pcie.yaml
··· 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 + 7 + title: NVIDIA Tegra264 PCIe controller 8 + 9 + maintainers: 10 + - Thierry Reding <thierry.reding@gmail.com> 11 + - Jon Hunter <jonathanh@nvidia.com> 12 + 13 + properties: 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 + 64 + required: 65 + - interrupt-map 66 + - interrupt-map-mask 67 + - iommu-map 68 + - msi-map 69 + - nvidia,bpmp 70 + 71 + allOf: 72 + - $ref: /schemas/pci/pci-host-bridge.yaml# 73 + 74 + unevaluatedProperties: false 75 + 76 + examples: 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 + };