aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/board-dt-tegra20.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c
index eb7249db50a5..9537f20384fc 100644
--- a/arch/arm/mach-tegra/board-dt-tegra20.c
+++ b/arch/arm/mach-tegra/board-dt-tegra20.c
@@ -98,6 +98,40 @@ static void __init tegra_dt_init(void)
98 tegra20_auxdata_lookup, NULL); 98 tegra20_auxdata_lookup, NULL);
99} 99}
100 100
101#ifdef CONFIG_MACH_TRIMSLICE
102static void __init trimslice_init(void)
103{
104 int ret;
105
106 ret = tegra_pcie_init(true, true);
107 if (ret)
108 pr_err("tegra_pci_init() failed: %d\n", ret);
109}
110#endif
111
112static struct {
113 char *machine;
114 void (*init)(void);
115} board_init_funcs[] = {
116#ifdef CONFIG_MACH_TRIMSLICE
117 { "compulab,trimslice", trimslice_init },
118#endif
119};
120
121static void __init tegra_dt_init_late(void)
122{
123 int i;
124
125 tegra_init_late();
126
127 for (i = 0; i < ARRAY_SIZE(board_init_funcs); i++) {
128 if (of_machine_is_compatible(board_init_funcs[i].machine)) {
129 board_init_funcs[i].init();
130 break;
131 }
132 }
133}
134
101static const char *tegra20_dt_board_compat[] = { 135static const char *tegra20_dt_board_compat[] = {
102 "nvidia,tegra20", 136 "nvidia,tegra20",
103 NULL 137 NULL
@@ -110,7 +144,7 @@ DT_MACHINE_START(TEGRA_DT, "nVidia Tegra20 (Flattened Device Tree)")
110 .handle_irq = gic_handle_irq, 144 .handle_irq = gic_handle_irq,
111 .timer = &tegra_timer, 145 .timer = &tegra_timer,
112 .init_machine = tegra_dt_init, 146 .init_machine = tegra_dt_init,
113 .init_late = tegra_init_late, 147 .init_late = tegra_dt_init_late,
114 .restart = tegra_assert_system_reset, 148 .restart = tegra_assert_system_reset,
115 .dt_compat = tegra20_dt_board_compat, 149 .dt_compat = tegra20_dt_board_compat,
116MACHINE_END 150MACHINE_END