diff mbox

[U-Boot,1/2] ARM: tegra: add PCI to Tegra210 SoC DT

Message ID 1444086160-30298-1-git-send-email-swarren@wwwdotorg.org
State Accepted
Delegated to: Tom Warren
Headers show

Commit Message

Stephen Warren Oct. 5, 2015, 11:02 p.m. UTC
From: Stephen Warren <swarren@nvidia.com>

Tegra210's PCI controller is largely identical to Tegra124, and hence
shares the same binding. However, it has a unique compatible value due
to the existence of at least one new HW bug that would prevent any driver
for a previous HW version from operating correctly.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
For this series to operate correctly, it relies on my previous patches for:
- fdt: fix fdtdec_get_pci_addr() for CONFIG_PHYS_64BIT
- net: rtl8169: Build warning fixes for 64-bit
  (Compile warning only)
- Enabling CONFIG_SYS_NONCACHED_MEMORY
- ARM: tegra210: implement PLLE init procedure from TRM
- Tegra210 XUSB padctl support
- Tegra210 PCI controller support

 arch/arm/dts/tegra210.dtsi | 66 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

Comments

Stephen Warren Oct. 21, 2015, 4:42 p.m. UTC | #1
On 10/05/2015 05:02 PM, Stephen Warren wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> Tegra210's PCI controller is largely identical to Tegra124, and hence
> shares the same binding. However, it has a unique compatible value due
> to the existence of at least one new HW bug that would prevent any driver
> for a previous HW version from operating correctly.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> For this series to operate correctly, it relies on my previous patches for:
> - fdt: fix fdtdec_get_pci_addr() for CONFIG_PHYS_64BIT
> - net: rtl8169: Build warning fixes for 64-bit
>    (Compile warning only)
> - Enabling CONFIG_SYS_NONCACHED_MEMORY
> - ARM: tegra210: implement PLLE init procedure from TRM
> - Tegra210 XUSB padctl support
> - Tegra210 PCI controller support

Tom,

Is this series OK? I assume it's only waiting for all the dependencies 
to go in first.
diff mbox

Patch

diff --git a/arch/arm/dts/tegra210.dtsi b/arch/arm/dts/tegra210.dtsi
index f3874a114150..a8c2f1994ff7 100644
--- a/arch/arm/dts/tegra210.dtsi
+++ b/arch/arm/dts/tegra210.dtsi
@@ -12,6 +12,72 @@ 
 	#address-cells = <2>;
 	#size-cells = <2>;
 
+	pcie-controller@0,01003000 {
+		compatible = "nvidia,tegra210-pcie";
+		device_type = "pci";
+		reg = <0x0 0x01003000 0x0 0x00000800   /* PADS registers */
+		       0x0 0x01003800 0x0 0x00000800   /* AFI registers */
+		       0x0 0x02000000 0x0 0x10000000>; /* configuration space */
+		reg-names = "pads", "afi", "cs";
+		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
+			     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
+		interrupt-names = "intr", "msi";
+
+		#interrupt-cells = <1>;
+		interrupt-map-mask = <0 0 0 0>;
+		interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+
+		bus-range = <0x00 0xff>;
+		#address-cells = <3>;
+		#size-cells = <2>;
+
+		ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000   /* port 0 configuration space */
+			  0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000   /* port 1 configuration space */
+			  0x81000000 0 0x0        0x0 0x12000000 0 0x00010000   /* downstream I/O (64 KiB) */
+			  0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000   /* non-prefetchable memory (208 MiB) */
+			  0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */
+
+		clocks = <&tegra_car TEGRA210_CLK_PCIE>,
+			 <&tegra_car TEGRA210_CLK_AFI>,
+			 <&tegra_car TEGRA210_CLK_PLL_E>,
+			 <&tegra_car TEGRA210_CLK_CML0>;
+		clock-names = "pex", "afi", "pll_e", "cml";
+		resets = <&tegra_car 70>,
+			 <&tegra_car 72>,
+			 <&tegra_car 74>;
+		reset-names = "pex", "afi", "pcie_x";
+		status = "disabled";
+
+		phys = <&padctl TEGRA_XUSB_PADCTL_PCIE>;
+		phy-names = "pcie";
+
+		pci@1,0 {
+			device_type = "pci";
+			assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>;
+			reg = <0x000800 0 0 0 0>;
+			status = "disabled";
+
+			#address-cells = <3>;
+			#size-cells = <2>;
+			ranges;
+
+			nvidia,num-lanes = <4>;
+		};
+
+		pci@2,0 {
+			device_type = "pci";
+			assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>;
+			reg = <0x001000 0 0 0 0>;
+			status = "disabled";
+
+			#address-cells = <3>;
+			#size-cells = <2>;
+			ranges;
+
+			nvidia,num-lanes = <1>;
+		};
+	};
+
 	gic: interrupt-controller@0,50041000 {
 		compatible = "arm,gic-400";
 		#interrupt-cells = <3>;