diff options
author | Simon Glass <sjg@chromium.org> | 2014-07-23 06:55:18 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2014-07-23 14:08:36 +0100 |
commit | 1ca7e2062b4e8c3b211753dcb19c063b5b9b73ca (patch) | |
tree | 09873667a133ba84aed32e5b44cfcd08353d1138 /include/dm/root.h | |
parent | 0040b9442947d00a540f6e93742384a14453c37e (diff) | |
download | u-boot-1ca7e2062b4e8c3b211753dcb19c063b5b9b73ca.tar.gz u-boot-1ca7e2062b4e8c3b211753dcb19c063b5b9b73ca.tar.bz2 u-boot-1ca7e2062b4e8c3b211753dcb19c063b5b9b73ca.zip |
dm: Provide a function to scan child FDT nodes
At present only root nodes in the device tree are scanned for devices.
But some devices can have children. For example a SPI bus may have
several children for each of its chip selects.
Add a function which scans subnodes and binds devices for each one. This
can be used for the root node scan also, so change it.
A device can call this function in its bind() or probe() methods to bind
its children.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/dm/root.h')
-rw-r--r-- | include/dm/root.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/dm/root.h b/include/dm/root.h index 02c7788da0..33f951b0cc 100644 --- a/include/dm/root.h +++ b/include/dm/root.h @@ -46,6 +46,22 @@ int dm_scan_platdata(bool pre_reloc_only); int dm_scan_fdt(const void *blob, bool pre_reloc_only); /** + * dm_scan_fdt_node() - Scan the device tree and bind drivers for a node + * + * This scans the subnodes of a device tree node and and creates a driver + * for each one. + * + * @parent: Parent device for the devices that will be created + * @blob: Pointer to device tree blob + * @offset: Offset of node to scan + * @pre_reloc_only: If true, bind only drivers with the DM_FLAG_PRE_RELOC + * flag. If false bind all drivers. + * @return 0 if OK, -ve on error + */ +int dm_scan_fdt_node(struct udevice *parent, const void *blob, int offset, + bool pre_reloc_only); + +/** * dm_init_and_scan() - Initialise Driver Model structures and scan for devices * * This function initialises the roots of the driver tree and uclass trees, |