diff options
author | Simon Glass <sjg@chromium.org> | 2014-09-03 17:37:01 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2014-09-10 12:59:58 -0600 |
commit | 9fb02491fe96991cbedc49c7ebe5cdd271d1b6a7 (patch) | |
tree | f0368f2f950e20bf6ce3c4a56b49eafcac678d20 /common/stdio.c | |
parent | 294b91a5817147d4b7f47be2ac69bac2a1f26491 (diff) |
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>
Diffstat (limited to 'common/stdio.c')
-rw-r--r-- | common/stdio.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/common/stdio.c b/common/stdio.c index 692ca7f1cdf..c878103a482 100644 --- a/common/stdio.c +++ b/common/stdio.c @@ -215,7 +215,7 @@ int stdio_deregister(const char *devname) } #endif /* CONFIG_SYS_STDIO_DEREGISTER */ -int stdio_init (void) +int stdio_init_tables(void) { #if defined(CONFIG_NEEDS_MANUAL_RELOC) /* already relocated for current ARM implementation */ @@ -232,6 +232,11 @@ int stdio_init (void) /* Initialize the list */ INIT_LIST_HEAD(&(devs.list)); + return 0; +} + +int stdio_add_devices(void) +{ #ifdef CONFIG_SYS_I2C i2c_init_all(); #else @@ -265,5 +270,14 @@ int stdio_init (void) #ifdef CONFIG_CBMEM_CONSOLE cbmemc_init(); #endif - return (0); + + return 0; +} + +int stdio_init(void) +{ + stdio_init_tables(); + stdio_add_devices(); + + return 0; } |