summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c
index 0d69eb6165b7..62320839aca3 100644
--- a/arch/arm/mach-tegra/board-cardhu.c
+++ b/arch/arm/mach-tegra/board-cardhu.c
@@ -38,6 +38,7 @@
#include <linux/tegra_uart.h>
#include <linux/memblock.h>
#include <linux/spi-tegra.h>
+#include <linux/nfc/pn544.h>
#include <sound/wm8903.h>
@@ -52,8 +53,8 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <mach/usb_phy.h>
-#include <linux/nfc/pn544.h>
#include <mach/thermal.h>
+#include <mach/pci.h>
#include "board.h"
#include "clock.h"
@@ -860,6 +861,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;
@@ -966,6 +992,7 @@ static void __init tegra_cardhu_init(void)
cardhu_emc_init();
tegra_release_bootloader_fb();
cardhu_nfc_init();
+ cardhu_pci_init();
}
static void __init cardhu_ramconsole_reserve(unsigned long size)