mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
dm: core: support reading a single indexed u32 value
The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Simon Glass
parent
70573c6c46
commit
4bb7075c83
@@ -905,6 +905,35 @@ static int dm_test_read_int(struct unit_test_state *uts)
|
||||
}
|
||||
DM_TEST(dm_test_read_int, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
|
||||
|
||||
static int dm_test_read_int_index(struct unit_test_state *uts)
|
||||
{
|
||||
struct udevice *dev;
|
||||
u32 val32;
|
||||
|
||||
ut_assertok(uclass_first_device_err(UCLASS_TEST_FDT, &dev));
|
||||
ut_asserteq_str("a-test", dev->name);
|
||||
|
||||
ut_asserteq(-EINVAL, dev_read_u32_index(dev, "missing", 0, &val32));
|
||||
ut_asserteq(19, dev_read_u32_index_default(dev, "missing", 0, 19));
|
||||
|
||||
ut_assertok(dev_read_u32_index(dev, "int-array", 0, &val32));
|
||||
ut_asserteq(5678, val32);
|
||||
ut_assertok(dev_read_u32_index(dev, "int-array", 1, &val32));
|
||||
ut_asserteq(9123, val32);
|
||||
ut_assertok(dev_read_u32_index(dev, "int-array", 2, &val32));
|
||||
ut_asserteq(4567, val32);
|
||||
ut_asserteq(-EOVERFLOW, dev_read_u32_index(dev, "int-array", 3,
|
||||
&val32));
|
||||
|
||||
ut_asserteq(5678, dev_read_u32_index_default(dev, "int-array", 0, 2));
|
||||
ut_asserteq(9123, dev_read_u32_index_default(dev, "int-array", 1, 2));
|
||||
ut_asserteq(4567, dev_read_u32_index_default(dev, "int-array", 2, 2));
|
||||
ut_asserteq(2, dev_read_u32_index_default(dev, "int-array", 3, 2));
|
||||
|
||||
return 0;
|
||||
}
|
||||
DM_TEST(dm_test_read_int_index, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
|
||||
|
||||
/* Test iteration through devices by drvdata */
|
||||
static int dm_test_uclass_drvdata(struct unit_test_state *uts)
|
||||
{
|
||||
|
Reference in New Issue
Block a user