diff options
author | Thierry Reding <thierry.reding@gmail.com> | 2013-08-09 10:49:26 -0400 |
---|---|---|
committer | Stephen Warren <swarren@nvidia.com> | 2013-08-12 16:19:30 -0400 |
commit | e07e3dbd9c8f84ff37c117eb1ff80f3f41a4df4b (patch) | |
tree | 95c195e9ff9123ccbac53e8ee924609fe8a20e04 | |
parent | 1798efda3cbc7f658a685e7ace2f5ad4bf1ae238 (diff) |
ARM: tegra: Add Tegra30 PCIe support
Add the top-level pcie-controller node for the Tegra30 SoC. Tegra30 has
three root ports that can use different lane layouts.
Signed-off-by: Jay Agarwal <jagarwal@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
-rw-r--r-- | arch/arm/boot/dts/tegra30.dtsi | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index d8783f0fae63..c8faccad0e65 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
@@ -16,6 +16,76 @@ | |||
16 | serial4 = &uarte; | 16 | serial4 = &uarte; |
17 | }; | 17 | }; |
18 | 18 | ||
19 | pcie-controller { | ||
20 | compatible = "nvidia,tegra30-pcie"; | ||
21 | device_type = "pci"; | ||
22 | reg = <0x00003000 0x00000800 /* PADS registers */ | ||
23 | 0x00003800 0x00000200 /* AFI registers */ | ||
24 | 0x10000000 0x10000000>; /* configuration space */ | ||
25 | reg-names = "pads", "afi", "cs"; | ||
26 | interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH /* controller interrupt */ | ||
27 | GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ | ||
28 | interrupt-names = "intr", "msi"; | ||
29 | |||
30 | bus-range = <0x00 0xff>; | ||
31 | #address-cells = <3>; | ||
32 | #size-cells = <2>; | ||
33 | |||
34 | ranges = <0x82000000 0 0x00000000 0x00000000 0 0x00001000 /* port 0 configuration space */ | ||
35 | 0x82000000 0 0x00001000 0x00001000 0 0x00001000 /* port 1 configuration space */ | ||
36 | 0x82000000 0 0x00004000 0x00004000 0 0x00001000 /* port 2 configuration space */ | ||
37 | 0x81000000 0 0 0x02000000 0 0x00010000 /* downstream I/O */ | ||
38 | 0x82000000 0 0x20000000 0x20000000 0 0x10000000 /* non-prefetchable memory */ | ||
39 | 0xc2000000 0 0x30000000 0x30000000 0 0x10000000>; /* prefetchable memory */ | ||
40 | |||
41 | clocks = <&tegra_car TEGRA30_CLK_PCIE>, | ||
42 | <&tegra_car TEGRA30_CLK_AFI>, | ||
43 | <&tegra_car TEGRA30_CLK_PCIEX>, | ||
44 | <&tegra_car TEGRA30_CLK_PLL_E>, | ||
45 | <&tegra_car TEGRA30_CLK_CML0>; | ||
46 | clock-names = "pex", "afi", "pcie_xclk", "pll_e", "cml"; | ||
47 | status = "disabled"; | ||
48 | |||
49 | pci@1,0 { | ||
50 | device_type = "pci"; | ||
51 | assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>; | ||
52 | reg = <0x000800 0 0 0 0>; | ||
53 | status = "disabled"; | ||
54 | |||
55 | #address-cells = <3>; | ||
56 | #size-cells = <2>; | ||
57 | ranges; | ||
58 | |||
59 | nvidia,num-lanes = <2>; | ||
60 | }; | ||
61 | |||
62 | pci@2,0 { | ||
63 | device_type = "pci"; | ||
64 | assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>; | ||
65 | reg = <0x001000 0 0 0 0>; | ||
66 | status = "disabled"; | ||
67 | |||
68 | #address-cells = <3>; | ||
69 | #size-cells = <2>; | ||
70 | ranges; | ||
71 | |||
72 | nvidia,num-lanes = <2>; | ||
73 | }; | ||
74 | |||
75 | pci@3,0 { | ||
76 | device_type = "pci"; | ||
77 | assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>; | ||
78 | reg = <0x001800 0 0 0 0>; | ||
79 | status = "disabled"; | ||
80 | |||
81 | #address-cells = <3>; | ||
82 | #size-cells = <2>; | ||
83 | ranges; | ||
84 | |||
85 | nvidia,num-lanes = <2>; | ||
86 | }; | ||
87 | }; | ||
88 | |||
19 | host1x { | 89 | host1x { |
20 | compatible = "nvidia,tegra30-host1x", "simple-bus"; | 90 | compatible = "nvidia,tegra30-host1x", "simple-bus"; |
21 | reg = <0x50000000 0x00024000>; | 91 | reg = <0x50000000 0x00024000>; |