summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-harmony-pcie.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/board-harmony-pcie.c')
-rw-r--r--arch/arm/mach-tegra/board-harmony-pcie.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/arch/arm/mach-tegra/board-harmony-pcie.c b/arch/arm/mach-tegra/board-harmony-pcie.c
index 9c27b95b8d86..f3db0eeba2c9 100644
--- a/arch/arm/mach-tegra/board-harmony-pcie.c
+++ b/arch/arm/mach-tegra/board-harmony-pcie.c
@@ -23,6 +23,8 @@
#include <asm/mach-types.h>
#include <mach/pinmux.h>
+#include <mach/pci.h>
+#include "devices.h"
#include "board.h"
#ifdef CONFIG_TEGRA_PCI
@@ -30,7 +32,14 @@
/* GPIO 3 of the PMIC */
#define EN_VDD_1V05_GPIO (TEGRA_NR_GPIOS + 2)
-static int __init harmony_pcie_init(void)
+static struct tegra_pci_platform_data harmony_pci_platform_data = {
+ .port_status[0] = 1,
+ .port_status[1] = 1,
+ .use_dock_detect = 0,
+ .gpio = 0,
+};
+
+int __init harmony_pcie_init(void)
{
struct regulator *regulator = NULL;
int err;
@@ -54,9 +63,8 @@ static int __init harmony_pcie_init(void)
tegra_pinmux_set_tristate(TEGRA_PINGROUP_SLXA, TEGRA_TRI_NORMAL);
tegra_pinmux_set_tristate(TEGRA_PINGROUP_SLXK, TEGRA_TRI_NORMAL);
- err = tegra_pcie_init(true, true);
- if (err)
- goto err_pcie;
+ tegra_pci_device.dev.platform_data = &harmony_pci_platform_data;
+ platform_device_register(&tegra_pci_device);
return 0;
@@ -73,7 +81,4 @@ err_reg:
return err;
}
-/* PCI should be initialized after I2C, mfd and regulators */
-subsys_initcall_sync(harmony_pcie_init);
-
#endif