diff --git a/drivers/misc/test_drv.c b/drivers/misc/test_drv.c index 927618256f..f9f40552ae 100644 --- a/drivers/misc/test_drv.c +++ b/drivers/misc/test_drv.c @@ -177,6 +177,7 @@ U_BOOT_DRIVER(denx_u_boot_fdt_test) = { .ops = &test_ops, .priv_auto = sizeof(struct dm_test_priv), .plat_auto = sizeof(struct dm_test_pdata), + .flags = DM_FLAG_PROBE_AFTER_BIND, }; static const struct udevice_id testfdt1_ids[] = { diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c index 6118ad42ca..71e7bebc34 100644 --- a/test/dm/test-fdt.c +++ b/test/dm/test-fdt.c @@ -223,6 +223,28 @@ static int dm_test_fdt_pre_reloc(struct unit_test_state *uts) } DM_TEST(dm_test_fdt_pre_reloc, 0); +static int dm_test_fdt_probe_after_bind_pre_reloc(struct unit_test_state *uts) +{ + const ofnode node = ofnode_path("/a-test"); + struct udevice *dev; + struct uclass *uc; + int ret; + + ret = dm_init_and_scan(true); + ut_assert(!ret); + + ret = uclass_get(UCLASS_TEST_FDT, &uc); + ut_assert(!ret); + + ret = uclass_find_device_by_ofnode(uc->uc_drv->id, node, &dev); + ut_assert(!ret); + + ut_assert(dev_get_flags(dev) & DM_FLAG_ACTIVATED); + + return 0; +} +DM_TEST(dm_test_fdt_probe_after_bind_pre_reloc, 0); + /* Test that sequence numbers are allocated properly */ static int dm_test_fdt_uclass_seq(struct unit_test_state *uts) {