syscon: dm: Add a new method to get a regmap from DTS
syscon_regmap_lookup_by_phandle() can be used to get the regmap of a syscon
device from a reference in the DTS. It operates similarly to the linux
version of the namesake function.
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
diff --git a/test/dm/syscon.c b/test/dm/syscon.c
index 77c7928..a294dda 100644
--- a/test/dm/syscon.c
+++ b/test/dm/syscon.c
@@ -6,6 +6,7 @@
#include <common.h>
#include <dm.h>
#include <syscon.h>
+#include <regmap.h>
#include <asm/test.h>
#include <dm/test.h>
#include <test/ut.h>
@@ -43,3 +44,31 @@
return 0;
}
DM_TEST(dm_test_syscon_by_driver_data, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
+
+/* Test system controller by phandle */
+static int dm_test_syscon_by_phandle(struct unit_test_state *uts)
+{
+ struct udevice *dev;
+ struct regmap *map;
+
+ ut_assertok(uclass_get_device_by_name(UCLASS_TEST_PROBE, "test4",
+ &dev));
+
+ ut_assertok_ptr(syscon_regmap_lookup_by_phandle(dev, "first-syscon"));
+ map = syscon_regmap_lookup_by_phandle(dev, "first-syscon");
+ ut_assert(map);
+ ut_assert(!IS_ERR(map));
+ ut_asserteq(1, map->range_count);
+
+ ut_assertok_ptr(syscon_regmap_lookup_by_phandle(dev,
+ "second-sys-ctrl"));
+ map = syscon_regmap_lookup_by_phandle(dev, "second-sys-ctrl");
+ ut_assert(map);
+ ut_assert(!IS_ERR(map));
+ ut_asserteq(4, map->range_count);
+
+ ut_assert(IS_ERR(syscon_regmap_lookup_by_phandle(dev, "not-present")));
+
+ return 0;
+}
+DM_TEST(dm_test_syscon_by_phandle, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);