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