From 1ca7e2062b4e8c3b211753dcb19c063b5b9b73ca Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 23 Jul 2014 06:55:18 -0600 Subject: 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 --- include/dm/root.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'include/dm/root.h') 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 @@ -45,6 +45,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 * -- cgit v1.2.1