dm: core: parse chosen node

This is the node that would contain, for example, the framebuffer setup
by an earlier stage.

Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Rob Clark 2018-01-10 11:33:30 +01:00 committed by Tom Rini
parent 42091fa9e8
commit f2006808f0
4 changed files with 20 additions and 2 deletions

View file

@ -478,6 +478,13 @@
wdt0: wdt@0 {
compatible = "sandbox,wdt";
};
chosen {
chosen-test {
compatible = "denx,u-boot-fdt-test";
reg = <9 1>;
};
};
};
#include "sandbox_pmic.dtsi"

View file

@ -266,6 +266,17 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob,
for (offset = fdt_first_subnode(blob, offset);
offset > 0;
offset = fdt_next_subnode(blob, offset)) {
/* "chosen" node isn't a device itself but may contain some: */
if (!strcmp(fdt_get_name(blob, offset, NULL), "chosen")) {
pr_debug("parsing subnodes of \"chosen\"\n");
err = dm_scan_fdt_node(parent, blob, offset,
pre_reloc_only);
if (err && !ret)
ret = err;
continue;
}
if (pre_reloc_only &&
!dm_fdt_pre_reloc(blob, offset))
continue;

View file

@ -105,7 +105,7 @@ UCLASS_DRIVER(testbus) = {
/* Test that we can probe for children */
static int dm_test_bus_children(struct unit_test_state *uts)
{
int num_devices = 6;
int num_devices = 7;
struct udevice *bus;
struct uclass *uc;

View file

@ -167,7 +167,7 @@ int dm_check_devices(struct unit_test_state *uts, int num_devices)
/* Test that FDT-based binding works correctly */
static int dm_test_fdt(struct unit_test_state *uts)
{
const int num_devices = 6;
const int num_devices = 7;
struct udevice *dev;
struct uclass *uc;
int ret;