Emulate use of the regulator by a few consumers with balanced on/off
calls.

Signed-off-by: Svyatoslav Ryhel <clamo...@gmail.com>
---
 test/dm/regulator.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/test/dm/regulator.c b/test/dm/regulator.c
index 86f4862d9d..9b503e4c59 100644
--- a/test/dm/regulator.c
+++ b/test/dm/regulator.c
@@ -194,6 +194,25 @@ int dm_test_power_regulator_set_enable_if_allowed(struct 
unit_test_state *uts)
        ut_assertok(regulator_set_enable_if_allowed(dev, val_set));
        ut_asserteq(regulator_get_enable(dev), !val_set);
 
+       /* Set the Enable of LDO1 - default is disabled */
+       platname = regulator_names[LDO1][PLATNAME];
+       ut_assertok(regulator_autoset_by_name(platname, &dev_autoset));
+       ut_assertok(regulator_get_by_platname(platname, &dev));
+
+       /* Get the Enable state of LDO1 and compare it with the requested one */
+       ut_assertok(regulator_set_enable_if_allowed(dev, true));
+       ut_asserteq(regulator_get_enable(dev), true);
+
+       /* Emulate second consumer */
+       ut_assertok(regulator_set_enable_if_allowed(dev, true));
+       ut_asserteq(regulator_get_enable(dev), true);
+
+       /* Emulate one of counsumers disable call */
+       ut_assertok(regulator_set_enable_if_allowed(dev, false));
+
+       /* Regulator should still be on since counter indicates one consumer 
active */
+       ut_asserteq(regulator_get_enable(dev), true);
+
        return 0;
 }
 DM_TEST(dm_test_power_regulator_set_enable_if_allowed, UT_TESTF_SCAN_FDT);
-- 
2.39.2

Reply via email to