1 /* 2 * Copyright (c) 2016, NVIDIA CORPORATION. 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 */ 6 7 #include <common.h> 8 #include <dm.h> 9 #include <dm/test.h> 10 #include <asm/reset.h> 11 #include <test/ut.h> 12 13 /* This must match the specifier for mbox-names="test" in the DT node */ 14 #define TEST_RESET_ID 2 15 16 /* This is the other reset phandle specifier handled by bulk */ 17 #define OTHER_RESET_ID 2 18 19 static int dm_test_reset(struct unit_test_state *uts) 20 { 21 struct udevice *dev_reset; 22 struct udevice *dev_test; 23 24 ut_assertok(uclass_get_device_by_name(UCLASS_RESET, "reset-ctl", 25 &dev_reset)); 26 ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID)); 27 28 ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "reset-ctl-test", 29 &dev_test)); 30 ut_assertok(sandbox_reset_test_get(dev_test)); 31 32 ut_assertok(sandbox_reset_test_assert(dev_test)); 33 ut_asserteq(1, sandbox_reset_query(dev_reset, TEST_RESET_ID)); 34 35 ut_assertok(sandbox_reset_test_deassert(dev_test)); 36 ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID)); 37 38 ut_assertok(sandbox_reset_test_free(dev_test)); 39 40 return 0; 41 } 42 DM_TEST(dm_test_reset, DM_TESTF_SCAN_FDT); 43 44 static int dm_test_reset_bulk(struct unit_test_state *uts) 45 { 46 struct udevice *dev_reset; 47 struct udevice *dev_test; 48 49 ut_assertok(uclass_get_device_by_name(UCLASS_RESET, "reset-ctl", 50 &dev_reset)); 51 ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID)); 52 ut_asserteq(0, sandbox_reset_query(dev_reset, OTHER_RESET_ID)); 53 54 ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "reset-ctl-test", 55 &dev_test)); 56 ut_assertok(sandbox_reset_test_get_bulk(dev_test)); 57 58 ut_assertok(sandbox_reset_test_assert_bulk(dev_test)); 59 ut_asserteq(1, sandbox_reset_query(dev_reset, TEST_RESET_ID)); 60 ut_asserteq(1, sandbox_reset_query(dev_reset, OTHER_RESET_ID)); 61 62 ut_assertok(sandbox_reset_test_deassert_bulk(dev_test)); 63 ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID)); 64 ut_asserteq(0, sandbox_reset_query(dev_reset, OTHER_RESET_ID)); 65 66 ut_assertok(sandbox_reset_test_release_bulk(dev_test)); 67 ut_asserteq(1, sandbox_reset_query(dev_reset, TEST_RESET_ID)); 68 ut_asserteq(1, sandbox_reset_query(dev_reset, OTHER_RESET_ID)); 69 70 return 0; 71 } 72 DM_TEST(dm_test_reset_bulk, DM_TESTF_SCAN_FDT); 73