summaryrefslogtreecommitdiffstats
path: root/include/dm/root.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-07-23 06:55:18 -0600
committerSimon Glass <sjg@chromium.org>2014-07-23 14:08:36 +0100
commit1ca7e2062b4e8c3b211753dcb19c063b5b9b73ca (patch)
tree09873667a133ba84aed32e5b44cfcd08353d1138 /include/dm/root.h
parent0040b9442947d00a540f6e93742384a14453c37e (diff)
downloadtalos-obmc-uboot-1ca7e2062b4e8c3b211753dcb19c063b5b9b73ca.tar.gz
talos-obmc-uboot-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.h16
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,
OpenPOWER on IntegriCloud