diff options
| author | Simon Glass <sjg@chromium.org> | 2014-02-26 15:59:20 -0700 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2014-03-04 12:15:29 -0500 | 
| commit | 1ce60176799ae04d508b14e9caa7f3bd3a170f0f (patch) | |
| tree | 371b22c198b25d5c34e1fc7252a046a14a7f2dc1 | |
| parent | 653ef91cbade3d71f187f4936e380fd82d20d7e7 (diff) | |
| download | olio-uboot-2014.01-1ce60176799ae04d508b14e9caa7f3bd3a170f0f.tar.xz olio-uboot-2014.01-1ce60176799ae04d508b14e9caa7f3bd3a170f0f.zip | |
dm: Set up driver model after relocation
Make driver model available after relocation, by setting up data structures
and scanning for devices using compiled-in platform_data and (when available)
the device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
| -rw-r--r-- | common/board_r.c | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/common/board_r.c b/common/board_r.c index 899f377e1..8629a656c 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -18,6 +18,7 @@  #ifdef CONFIG_HAS_DATAFLASH  #include <dataflash.h>  #endif +#include <dm.h>  #include <environment.h>  #include <fdtdec.h>  #if defined(CONFIG_CMD_IDE) @@ -51,7 +52,9 @@  #ifdef CONFIG_X86  #include <asm/init_helpers.h>  #endif +#include <dm/root.h>  #include <linux/compiler.h> +#include <linux/err.h>  DECLARE_GLOBAL_DATA_PTR; @@ -263,6 +266,33 @@ static int initr_malloc(void)  	return 0;  } +#ifdef CONFIG_DM +static int initr_dm(void) +{ +	int ret; + +	ret = dm_init(); +	if (ret) { +		debug("dm_init() failed: %d\n", ret); +		return ret; +	} +	ret = dm_scan_platdata(); +	if (ret) { +		debug("dm_scan_platdata() failed: %d\n", ret); +		return ret; +	} +#ifdef CONFIG_OF_CONTROL +	ret = dm_scan_fdt(gd->fdt_blob); +	if (ret) { +		debug("dm_scan_fdt() failed: %d\n", ret); +		return ret; +	} +#endif + +	return 0; +} +#endif +  __weak int power_init_board(void)  {  	return 0; @@ -761,6 +791,9 @@ init_fnc_t init_sequence_r[] = {  	initr_barrier,  	initr_malloc,  	bootstage_relocate, +#ifdef CONFIG_DM +	initr_dm, +#endif  #ifdef CONFIG_ARCH_EARLY_INIT_R  	arch_early_init_r,  #endif |