Skip to content

Commit

Permalink
ARM: tegra: trimslice: enable PCIe when booting from device tree
Browse files Browse the repository at this point in the history
There currently aren't bindings for the Tegra PCIe controller. Work on
this is in progress, but not yet complete. Manually initialize PCIe when
booting from device tree, in order to bring DT support to the same
feature level as board files, which will in turn allow board files to be
deprecated.

PCIe hosts the wired Ethernet controller on TrimSlice.

To support this, add infra-structure to board-dt-tegra20.c for board-
specific initialization code. Once device tree support for the relevant
features is in place, this code will be removed.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
  • Loading branch information
Stephen Warren committed Jun 20, 2012
1 parent 98a1405 commit c554dee
Showing 1 changed file with 35 additions and 1 deletion.
36 changes: 35 additions & 1 deletion arch/arm/mach-tegra/board-dt-tegra20.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,40 @@ static void __init tegra_dt_init(void)
tegra20_auxdata_lookup, NULL);
}

#ifdef CONFIG_MACH_TRIMSLICE
static void __init trimslice_init(void)
{
int ret;

ret = tegra_pcie_init(true, true);
if (ret)
pr_err("tegra_pci_init() failed: %d\n", ret);
}
#endif

static struct {
char *machine;
void (*init)(void);
} board_init_funcs[] = {
#ifdef CONFIG_MACH_TRIMSLICE
{ "compulab,trimslice", trimslice_init },
#endif
};

static void __init tegra_dt_init_late(void)
{
int i;

tegra_init_late();

for (i = 0; i < ARRAY_SIZE(board_init_funcs); i++) {
if (of_machine_is_compatible(board_init_funcs[i].machine)) {
board_init_funcs[i].init();
break;
}
}
}

static const char *tegra20_dt_board_compat[] = {
"nvidia,tegra20",
NULL
Expand All @@ -110,7 +144,7 @@ DT_MACHINE_START(TEGRA_DT, "nVidia Tegra20 (Flattened Device Tree)")
.handle_irq = gic_handle_irq,
.timer = &tegra_timer,
.init_machine = tegra_dt_init,
.init_late = tegra_init_late,
.init_late = tegra_dt_init_late,
.restart = tegra_assert_system_reset,
.dt_compat = tegra20_dt_board_compat,
MACHINE_END

0 comments on commit c554dee

Please sign in to comment.