dm: Make driver model available before board_init()

For some boards board_init() will change GPIOs, so we need to have driver
model available before then. Adjust the board init to arrange this, but
enable it for driver model only, just to be safe.

This does create additional #ifdef logic, but it is safer than trying to
make a pervasive change which may cause some boards to break.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2014-09-03 17:37:01 -06:00
parent 294b91a581
commit 9fb02491fe
3 changed files with 50 additions and 16 deletions

View File

@ -715,6 +715,15 @@ init_fnc_t init_sequence_r[] = {
/* TODO: could x86/PPC have this also perhaps? */
#ifdef CONFIG_ARM
initr_caches,
#endif
initr_reloc_global_data,
initr_barrier,
initr_malloc,
bootstage_relocate,
#ifdef CONFIG_DM
initr_dm,
#endif
#ifdef CONFIG_ARM
board_init, /* Setup chipselects */
#endif
/*
@ -726,16 +735,7 @@ init_fnc_t init_sequence_r[] = {
#ifdef CONFIG_CLOCKS
set_cpu_clk_info, /* Setup clock information */
#endif
initr_reloc_global_data,
initr_barrier,
initr_malloc,
bootstage_relocate,
#ifdef CONFIG_DM_SERIAL
stdio_init,
#endif
#ifdef CONFIG_DM
initr_dm,
#endif
stdio_init_tables,
initr_serial,
initr_announce,
INIT_FUNC_WATCHDOG_RESET
@ -821,9 +821,7 @@ init_fnc_t init_sequence_r[] = {
*/
initr_pci,
#endif
#ifndef CONFIG_DM_SERIAL
stdio_init,
#endif
stdio_add_devices,
initr_jumptable,
#ifdef CONFIG_API
initr_api,