diff options
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu.c')
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu.c | 29 |
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) |