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>
diff --git a/test/dm/test.dts b/test/dm/test.dts
index 60503f1..8489595 100644
--- a/test/dm/test.dts
+++ b/test/dm/test.dts
@@ -43,14 +43,28 @@
 	some-bus {
 		#address-cells = <1>;
 		#size-cells = <0>;
+		compatible = "denx,u-boot-test-bus";
 		reg = <3>;
 		ping-expect = <4>;
 		ping-add = <4>;
-		c-test {
+		c-test@5 {
 			compatible = "denx,u-boot-fdt-test";
 			reg = <5>;
+			ping-expect = <5>;
 			ping-add = <5>;
 		};
+		c-test@0 {
+			compatible = "denx,u-boot-fdt-test";
+			reg = <0>;
+			ping-expect = <6>;
+			ping-add = <6>;
+		};
+		c-test@1 {
+			compatible = "denx,u-boot-fdt-test";
+			reg = <1>;
+			ping-expect = <7>;
+			ping-add = <7>;
+		};
 	};
 
 	d-test {