diff options
author | Thierry Reding <thierry.reding@avionic-design.de> | 2013-08-09 10:49:19 -0400 |
---|---|---|
committer | Stephen Warren <swarren@nvidia.com> | 2013-08-12 16:17:39 -0400 |
commit | 1b62b611bdcb1d829571ab37e374528ee46ff937 (patch) | |
tree | 06963c401c937922c04520aaeaa19304a9a512d8 | |
parent | 47d2d63ba6fde42efcf31a32942da54b1372686b (diff) |
ARM: tegra: Add Tegra20 PCIe support to DT
Add the top-level pcie-controller node for the Tegra20 SoC. Tegra20 has
two root ports that can use different lane layouts.
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
[swarren: split DT changes into a separate patch from the main driver]
Signed-off-by: Stephen Warren <swarren@nvidia.com>
-rw-r--r-- | arch/arm/boot/dts/tegra20.dtsi | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index 9653fd8288d2..ecd016aef9d3 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
@@ -455,6 +455,61 @@ | |||
455 | #size-cells = <0>; | 455 | #size-cells = <0>; |
456 | }; | 456 | }; |
457 | 457 | ||
458 | pcie-controller { | ||
459 | compatible = "nvidia,tegra20-pcie"; | ||
460 | device_type = "pci"; | ||
461 | reg = <0x80003000 0x00000800 /* PADS registers */ | ||
462 | 0x80003800 0x00000200 /* AFI registers */ | ||
463 | 0x90000000 0x10000000>; /* configuration space */ | ||
464 | reg-names = "pads", "afi", "cs"; | ||
465 | interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH /* controller interrupt */ | ||
466 | GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ | ||
467 | interrupt-names = "intr", "msi"; | ||
468 | |||
469 | bus-range = <0x00 0xff>; | ||
470 | #address-cells = <3>; | ||
471 | #size-cells = <2>; | ||
472 | |||
473 | ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */ | ||
474 | 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */ | ||
475 | 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */ | ||
476 | 0x82000000 0 0xa0000000 0xa0000000 0 0x10000000 /* non-prefetchable memory */ | ||
477 | 0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */ | ||
478 | |||
479 | clocks = <&tegra_car TEGRA20_CLK_PEX>, | ||
480 | <&tegra_car TEGRA20_CLK_AFI>, | ||
481 | <&tegra_car TEGRA20_CLK_PCIE_XCLK>, | ||
482 | <&tegra_car TEGRA20_CLK_PLL_E>; | ||
483 | clock-names = "pex", "afi", "pcie_xclk", "pll_e"; | ||
484 | status = "disabled"; | ||
485 | |||
486 | pci@1,0 { | ||
487 | device_type = "pci"; | ||
488 | assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>; | ||
489 | reg = <0x000800 0 0 0 0>; | ||
490 | status = "disabled"; | ||
491 | |||
492 | #address-cells = <3>; | ||
493 | #size-cells = <2>; | ||
494 | ranges; | ||
495 | |||
496 | nvidia,num-lanes = <2>; | ||
497 | }; | ||
498 | |||
499 | pci@2,0 { | ||
500 | device_type = "pci"; | ||
501 | assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>; | ||
502 | reg = <0x001000 0 0 0 0>; | ||
503 | status = "disabled"; | ||
504 | |||
505 | #address-cells = <3>; | ||
506 | #size-cells = <2>; | ||
507 | ranges; | ||
508 | |||
509 | nvidia,num-lanes = <2>; | ||
510 | }; | ||
511 | }; | ||
512 | |||
458 | usb@c5000000 { | 513 | usb@c5000000 { |
459 | compatible = "nvidia,tegra20-ehci", "usb-ehci"; | 514 | compatible = "nvidia,tegra20-ehci", "usb-ehci"; |
460 | reg = <0xc5000000 0x4000>; | 515 | reg = <0xc5000000 0x4000>; |