1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2016, NVIDIA CORPORATION.
12 #include <asm/reset.h>
15 /* This must match the specifier for mbox-names="test" in the DT node */
16 #define TEST_RESET_ID 2
18 /* This is the other reset phandle specifier handled by bulk */
19 #define OTHER_RESET_ID 2
21 /* Base test of the reset uclass */
22 static int dm_test_reset_base(struct unit_test_state *uts)
25 struct reset_ctl reset_method1;
26 struct reset_ctl reset_method2;
28 /* Get the device using the reset device */
29 ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "reset-ctl-test",
32 /* Get the same reset port in 2 different ways and compare */
33 ut_assertok(reset_get_by_index(dev, 1, &reset_method1));
34 ut_assertok(reset_get_by_index_nodev(dev_ofnode(dev), 1,
36 ut_asserteq(reset_method1.id, reset_method2.id);
41 DM_TEST(dm_test_reset_base, DM_TESTF_SCAN_FDT);
43 static int dm_test_reset(struct unit_test_state *uts)
45 struct udevice *dev_reset;
46 struct udevice *dev_test;
48 ut_assertok(uclass_get_device_by_name(UCLASS_RESET, "reset-ctl",
50 ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID));
52 ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "reset-ctl-test",
54 ut_assertok(sandbox_reset_test_get(dev_test));
56 ut_assertok(sandbox_reset_test_assert(dev_test));
57 ut_asserteq(1, sandbox_reset_query(dev_reset, TEST_RESET_ID));
59 ut_assertok(sandbox_reset_test_deassert(dev_test));
60 ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID));
62 ut_assertok(sandbox_reset_test_free(dev_test));
66 DM_TEST(dm_test_reset, DM_TESTF_SCAN_FDT);
68 static int dm_test_reset_bulk(struct unit_test_state *uts)
70 struct udevice *dev_reset;
71 struct udevice *dev_test;
73 ut_assertok(uclass_get_device_by_name(UCLASS_RESET, "reset-ctl",
75 ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID));
76 ut_asserteq(0, sandbox_reset_query(dev_reset, OTHER_RESET_ID));
78 ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "reset-ctl-test",
80 ut_assertok(sandbox_reset_test_get_bulk(dev_test));
82 ut_assertok(sandbox_reset_test_assert_bulk(dev_test));
83 ut_asserteq(1, sandbox_reset_query(dev_reset, TEST_RESET_ID));
84 ut_asserteq(1, sandbox_reset_query(dev_reset, OTHER_RESET_ID));
86 ut_assertok(sandbox_reset_test_deassert_bulk(dev_test));
87 ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID));
88 ut_asserteq(0, sandbox_reset_query(dev_reset, OTHER_RESET_ID));
90 ut_assertok(sandbox_reset_test_release_bulk(dev_test));
91 ut_asserteq(1, sandbox_reset_query(dev_reset, TEST_RESET_ID));
92 ut_asserteq(1, sandbox_reset_query(dev_reset, OTHER_RESET_ID));
96 DM_TEST(dm_test_reset_bulk, DM_TESTF_SCAN_FDT);