From: Simon Glass Date: Sun, 25 Jan 2015 15:26:58 +0000 (-0700) Subject: dm: core: Set device tree node for root device X-Git-Tag: v2015.04-rc1~7^2~47 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2f3b95dbc78ce96b0f9f471e688db66223988419;p=oweals%2Fu-boot.git dm: core: Set device tree node for root device The root device corresponds to the root device tree node, so set this up. Also add a few notes to the documentation. Signed-off-by: Simon Glass --- diff --git a/doc/driver-model/README.txt b/doc/driver-model/README.txt index eafa825ab4..40415698cf 100644 --- a/doc/driver-model/README.txt +++ b/doc/driver-model/README.txt @@ -363,6 +363,10 @@ can leave out platdata_auto_alloc_size. In this case you can use malloc in your ofdata_to_platdata (or probe) method to allocate the required memory, and you should free it in the remove method. +The driver model tree is intended to mirror that of the device tree. The +root driver is at device tree offset 0 (the root node, '/'), and its +children are the children of the root node. + Declaring Uclasses ------------------ diff --git a/drivers/core/root.c b/drivers/core/root.c index 47b3acfbe9..a5b0a61501 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -49,6 +49,9 @@ int dm_init(void) ret = device_bind_by_name(NULL, false, &root_info, &DM_ROOT_NON_CONST); if (ret) return ret; +#ifdef CONFIG_OF_CONTROL + DM_ROOT_NON_CONST->of_offset = 0; +#endif ret = device_probe(DM_ROOT_NON_CONST); if (ret) return ret;