| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/pci/nvidia,tegra264-pcie.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: NVIDIA Tegra264 PCIe controller | |
| maintainers: | |
| - Thierry Reding <thierry.reding@gmail.com> | |
| - Jon Hunter <jonathanh@nvidia.com> | |
| properties: | |
| compatible: | |
| const: nvidia,tegra264-pcie | |
| reg: | |
| description: | | |
| Of the six PCIe controllers found on Tegra264, one (C0) is used for the | |
| internal GPU and the other five (C1-C5) are routed to connectors such as | |
| PCI or M.2 slots. Therefore the UPHY registers (XPL) exist only for C1 | |
| through C5, but not for C0. | |
| minItems: 4 | |
| items: | |
| - description: ECAM-compatible configuration space | |
| - description: application layer registers | |
| - description: transaction layer registers | |
| - description: privileged transaction layer registers | |
| - description: data link/physical layer registers (not available on C0) | |
| reg-names: | |
| minItems: 4 | |
| items: | |
| - const: ecam | |
| - const: xal | |
| - const: xtl | |
| - const: xtl-pri | |
| - const: xpl | |
| interrupts: | |
| minItems: 1 | |
| maxItems: 4 | |
| dma-coherent: true | |
| nvidia,bpmp: | |
| $ref: /schemas/types.yaml#/definitions/phandle-array | |
| description: | | |
| Must contain a pair of phandle (to the BPMP controller node) and | |
| controller ID. The following are the controller IDs for each controller: | |
| 0: C0 | |
| 1: C1 | |
| 2: C2 | |
| 3: C3 | |
| 4: C4 | |
| 5: C5 | |
| items: | |
| - items: | |
| - description: phandle to the BPMP controller node | |
| - description: PCIe controller ID | |
| maximum: 5 | |
| required: | |
| - interrupt-map | |
| - interrupt-map-mask | |
| - iommu-map | |
| - msi-map | |
| - nvidia,bpmp | |
| allOf: | |
| - $ref: /schemas/pci/pci-host-bridge.yaml# | |
| unevaluatedProperties: false | |
| examples: | |
| - | | |
| bus { | |
| #address-cells = <2>; | |
| #size-cells = <2>; | |
| pci@c000000 { | |
| compatible = "nvidia,tegra264-pcie"; | |
| reg = <0xd0 0xb0000000 0x0 0x10000000>, | |
| <0x00 0x0c000000 0x0 0x00004000>, | |
| <0x00 0x0c004000 0x0 0x00001000>, | |
| <0x00 0x0c005000 0x0 0x00001000>; | |
| reg-names = "ecam", "xal", "xtl", "xtl-pri"; | |
| #address-cells = <3>; | |
| #size-cells = <2>; | |
| device_type = "pci"; | |
| linux,pci-domain = <0x00>; | |
| #interrupt-cells = <0x1>; | |
| interrupt-map-mask = <0x0 0x0 0x0 0x7>; | |
| interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 155 4>, | |
| <0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 156 4>, | |
| <0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 157 4>, | |
| <0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 158 4>; | |
| iommu-map = <0x0 &smmu2 0x10000 0x10000>; | |
| msi-map = <0x0 &its 0x210000 0x10000>; | |
| dma-coherent; | |
| ranges = <0x81000000 0x00 0x84000000 0xd0 0x84000000 0x00 0x00200000>, | |
| <0x82000000 0x00 0x20000000 0x00 0x20000000 0x00 0x08000000>, | |
| <0xc3000000 0xd0 0xc0000000 0xd0 0xc0000000 0x07 0xc0000000>; | |
| bus-range = <0x0 0xff>; | |
| nvidia,bpmp = <&bpmp 0>; | |
| }; | |
| }; | |
| - | | |
| bus { | |
| #address-cells = <2>; | |
| #size-cells = <2>; | |
| pci@8400000 { | |
| compatible = "nvidia,tegra264-pcie"; | |
| reg = <0xa8 0xb0000000 0x0 0x10000000>, | |
| <0x00 0x08400000 0x0 0x00004000>, | |
| <0x00 0x08404000 0x0 0x00001000>, | |
| <0x00 0x08405000 0x0 0x00001000>, | |
| <0x00 0x08410000 0x0 0x00010000>; | |
| reg-names = "ecam", "xal", "xtl", "xtl-pri", "xpl"; | |
| #address-cells = <3>; | |
| #size-cells = <2>; | |
| device_type = "pci"; | |
| linux,pci-domain = <0x01>; | |
| #interrupt-cells = <1>; | |
| interrupt-map-mask = <0x0 0x0 0x0 0x7>; | |
| interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 908 4>, | |
| <0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 909 4>, | |
| <0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 910 4>, | |
| <0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 911 4>; | |
| iommu-map = <0x0 &smmu1 0x10000 0x10000>; | |
| msi-map = <0x0 &its 0x110000 0x10000>; | |
| dma-coherent; | |
| ranges = <0x81000000 0x00 0x84000000 0xa8 0x84000000 0x00 0x00200000>, | |
| <0x82000000 0x00 0x28000000 0x00 0x28000000 0x00 0x08000000>, | |
| <0xc3000000 0xa8 0xc0000000 0xa8 0xc0000000 0x07 0xc0000000>; | |
| bus-range = <0x00 0xff>; | |
| nvidia,bpmp = <&bpmp 1>; | |
| }; | |
| }; |