ARM: tegra: pcie: Enable PCIE for T124
Jay Agarwal [Thu, 7 Mar 2013 06:00:05 +0000 (11:00 +0530)]
1. Enable PCIe compilation for T124 platforms
2. Call PCIe probe for T124 platforms

Bug 1201008

Change-Id: Ia45c61c9055b16f3ae28a6dfff42148d01105018
Signed-off-by: Jay Agarwal <jagarwal@nvidia.com>
Reviewed-on: http://git-master/r/204218
Reviewed-by: Venu Byravarasu <vbyravarasu@nvidia.com>

arch/arm/configs/tegra_bonaire_android_defconfig
arch/arm/mach-tegra/Kconfig
arch/arm/mach-tegra/board-bonaire.c
arch/arm/mach-tegra/include/mach/pci.h

index 32625c8..0a68e6f 100644 (file)
@@ -28,6 +28,7 @@ CONFIG_EFI_PARTITION=y
 # CONFIG_IOSCHED_CFQ is not set
 CONFIG_ARCH_TEGRA=y
 CONFIG_ARCH_TEGRA_12x_SOC=y
+CONFIG_TEGRA_PCI=y
 CONFIG_MACH_BONAIRE=y
 CONFIG_TEGRA_FPGA_PLATFORM=y
 CONFIG_TEGRA_DEBUG_UARTA=y
@@ -166,10 +167,6 @@ CONFIG_SND=y
 # CONFIG_SND_DRIVERS is not set
 # CONFIG_SND_ARM is not set
 CONFIG_SND_SOC=y
-CONFIG_MMC=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MMC_SDHCI_TEGRA=y
 CONFIG_USB=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 CONFIG_USB_EHCI_HCD=y
@@ -181,6 +178,10 @@ CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_VBUS_DRAW=500
 CONFIG_USB_TEGRA=y
 CONFIG_USB_G_ANDROID=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_TEGRA=y
 CONFIG_SWITCH=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_TEGRA=y
index fbdb4fd..f229aed 100644 (file)
@@ -146,6 +146,7 @@ config ARCH_TEGRA_12x_SOC
        bool "Tegra 12x family SOC"
        depends on !ARCH_TEGRA_14x_SOC
        select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
+       select ARCH_TEGRA_HAS_PCIE
        select CPU_V7
        select ARM_L1_CACHE_SHIFT_6
        select ARM_ARCH_TIMER
@@ -161,6 +162,8 @@ config ARCH_TEGRA_12x_SOC
        select USB_ULPI_VIEWPORT if USB_SUPPORT
        select USE_OF
        select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
+       select ARCH_SUPPORTS_MSI if TEGRA_PCI
+       select PCI_MSI if TEGRA_PCI
        select ARCH_TEGRA_HAS_CL_DVFS
        select TEGRA_DYNAMIC_CBUS
        select TEGRA_DUAL_CBUS
index f10d60d..fa09489 100644 (file)
@@ -54,6 +54,7 @@
 #include <mach/audio.h>
 #include <mach/usb_phy.h>
 #include <mach/nand.h>
+#include <mach/pci.h>
 #include <mach/hardware.h>
 
 #include <asm/hardware/gic.h>
@@ -584,6 +585,7 @@ static void bonaire_usb_init(void)
 
 #endif
 }
+
 static struct platform_device *bonaire_hs_uart_devices[] __initdata = {
        &tegra_uartd_device, &tegra_uartb_device, &tegra_uartc_device,
 };
@@ -623,6 +625,19 @@ static void __init bonaire_hs_uart_init(void)
                        ARRAY_SIZE(bonaire_hs_uart_devices));
 }
 
+static struct tegra_pci_platform_data bonaire_pcie_platform_data = {
+       .port_status[0] = 1,
+       .port_status[1] = 1,
+       .use_dock_detect        = 0,
+       .gpio                   = 0,
+};
+
+static void bonaire_pcie_init(void)
+{
+       tegra_pci_device.dev.platform_data = &bonaire_pcie_platform_data;
+       platform_device_register(&tegra_pci_device);
+}
+
 static void __init tegra_bonaire_init(void)
 {
        tegra_clk_init_from_table(bonaire_clk_init_table);
@@ -664,6 +679,7 @@ static void __init tegra_bonaire_init(void)
        bonaire_usb_init();
        bonaire_panel_init();
        bonaire_bt_rfkill();
+       bonaire_pcie_init();
 }
 
 static void __init tegra_bonaire_reserve(void)
index 388ad32..bbef53b 100644 (file)
@@ -3,7 +3,7 @@
  *
  *  Header file containing constants for the tegra PCIe driver.
  *
- * Copyright (c) 2011, NVIDIA Corporation.
+ * Copyright (c) 2011-2013, NVIDIA Corporation.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
@@ -24,7 +24,7 @@
 
 #include <linux/pci.h>
 
-#ifdef CONFIG_ARCH_TEGRA_2x_SOC
+#ifndef CONFIG_ARCH_TEGRA_3x_SOC
        #define MAX_PCIE_SUPPORTED_PORTS 2
 #else
        #define MAX_PCIE_SUPPORTED_PORTS 3