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