In case of deep-probe we have to ensure that the memory device is available after the mem_initcall(). Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx> --- arch/arm/mach-imx/esdctl.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-imx/esdctl.c b/arch/arm/mach-imx/esdctl.c index cc5d3a8359..3819c1a9a6 100644 --- a/arch/arm/mach-imx/esdctl.c +++ b/arch/arm/mach-imx/esdctl.c @@ -14,6 +14,7 @@ */ #include <common.h> +#include <deep-probe.h> #include <io.h> #include <errno.h> #include <linux/sizes.h> @@ -705,9 +706,20 @@ static struct driver_d imx_esdctl_driver = { static int imx_esdctl_init(void) { - return platform_driver_register(&imx_esdctl_driver); -} + struct device_d *dev; + int ret; + + ret = platform_driver_register(&imx_esdctl_driver); + if (ret) + return ret; + + dev = of_device_create_on_demand_by_dev_id(of_get_root_node(), + imx_esdctl_dt_ids); + if (IS_ERR(dev)) + return PTR_ERR(dev); + return 0; +} mem_initcall(imx_esdctl_init); /* -- 2.20.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox