mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
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:
parent
42091fa9e8
commit
f2006808f0
4 changed files with 20 additions and 2 deletions
|
@ -478,6 +478,13 @@
|
||||||
wdt0: wdt@0 {
|
wdt0: wdt@0 {
|
||||||
compatible = "sandbox,wdt";
|
compatible = "sandbox,wdt";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
chosen-test {
|
||||||
|
compatible = "denx,u-boot-fdt-test";
|
||||||
|
reg = <9 1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "sandbox_pmic.dtsi"
|
#include "sandbox_pmic.dtsi"
|
||||||
|
|
|
@ -266,6 +266,17 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob,
|
||||||
for (offset = fdt_first_subnode(blob, offset);
|
for (offset = fdt_first_subnode(blob, offset);
|
||||||
offset > 0;
|
offset > 0;
|
||||||
offset = fdt_next_subnode(blob, offset)) {
|
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 &&
|
if (pre_reloc_only &&
|
||||||
!dm_fdt_pre_reloc(blob, offset))
|
!dm_fdt_pre_reloc(blob, offset))
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -105,7 +105,7 @@ UCLASS_DRIVER(testbus) = {
|
||||||
/* Test that we can probe for children */
|
/* Test that we can probe for children */
|
||||||
static int dm_test_bus_children(struct unit_test_state *uts)
|
static int dm_test_bus_children(struct unit_test_state *uts)
|
||||||
{
|
{
|
||||||
int num_devices = 6;
|
int num_devices = 7;
|
||||||
struct udevice *bus;
|
struct udevice *bus;
|
||||||
struct uclass *uc;
|
struct uclass *uc;
|
||||||
|
|
||||||
|
|
|
@ -167,7 +167,7 @@ int dm_check_devices(struct unit_test_state *uts, int num_devices)
|
||||||
/* Test that FDT-based binding works correctly */
|
/* Test that FDT-based binding works correctly */
|
||||||
static int dm_test_fdt(struct unit_test_state *uts)
|
static int dm_test_fdt(struct unit_test_state *uts)
|
||||||
{
|
{
|
||||||
const int num_devices = 6;
|
const int num_devices = 7;
|
||||||
struct udevice *dev;
|
struct udevice *dev;
|
||||||
struct uclass *uc;
|
struct uclass *uc;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
Loading…
Reference in a new issue