summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu.c
diff options
context:
space:
mode:
authorKrishna Kishore <kthota@nvidia.com>2011-09-05 12:14:35 +0530
committerRohan Somvanshi <rsomvanshi@nvidia.com>2011-09-07 05:05:11 -0700
commitbde3e58d998b6e76934152219b8803327cea2fad (patch)
tree79a704fbef2fa93fd4d2d8a90d144649efc5b078 /arch/arm/mach-tegra/board-cardhu.c
parent8d9e6bbe59ab68f44a4713f5d1bcc7877baf8180 (diff)
arm: tegra: cardhu: pcie support for cardhu bsp
Enabling PCIE support in cardhu board. Fixes bug: 637871 Change-Id: Ia49e076515aa0c3b8f45c2b053530b2ad32c0fed Reviewed-on: http://git-master/r/34474 Tested-by: Krishna Thota <kthota@nvidia.com> Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c
index c9e6e2b350ea..bf7e4d13d004 100644
--- a/arch/arm/mach-tegra/board-cardhu.c
+++ b/arch/arm/mach-tegra/board-cardhu.c
@@ -39,6 +39,7 @@
#include <linux/tegra_uart.h>
#include <linux/memblock.h>
#include <linux/spi-tegra.h>
+
#include <mach/clk.h>
#include <mach/iomap.h>
#include <mach/irqs.h>
@@ -54,6 +55,7 @@
#include <mach/usb_phy.h>
#include <sound/wm8903.h>
#include <mach/suspend.h>
+#include <mach/pci.h>
#include "board.h"
#include "clock.h"
@@ -959,6 +961,31 @@ static struct platform_device tegra_baseband_power2_device = {
},
};
+
+static struct tegra_pci_platform_data cardhu_pci_platform_data = {
+ .port_status[0] = 1,
+ .port_status[1] = 1,
+ .port_status[2] = 1,
+ .use_dock_detect = 0,
+ .gpio = 0,
+};
+
+static void cardhu_pci_init(void)
+{
+ struct board_info board_info;
+
+ tegra_get_board_info(&board_info);
+ if (board_info.board_id == BOARD_E1291) {
+ cardhu_pci_platform_data.port_status[0] = 0;
+ cardhu_pci_platform_data.port_status[1] = 0;
+ cardhu_pci_platform_data.port_status[2] = 1;
+ cardhu_pci_platform_data.use_dock_detect = 1;
+ cardhu_pci_platform_data.gpio = DOCK_DETECT_GPIO;
+ }
+ tegra_pci_device.dev.platform_data = &cardhu_pci_platform_data;
+ platform_device_register(&tegra_pci_device);
+}
+
static void cardhu_modem_init(void)
{
struct board_info board_info;
@@ -1069,6 +1096,7 @@ static void __init tegra_cardhu_init(void)
cardhu_pins_state_init();
cardhu_emc_init();
tegra_release_bootloader_fb();
+ cardhu_pci_init();
}
static void __init tegra_cardhu_reserve(void)