/* * Copyright (c) 2025 Texas Instruments Incorporated * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include ZTEST(tisci, test_tisci_api) { const struct device *dmsc = DEVICE_DT_GET(DT_NODELABEL(dmsc)); zassert_not_null(dmsc, "Unable to get dev"); zassert_true(device_is_ready(dmsc), "DMSC device not ready"); struct tisci_version_info ver; int ret = tisci_cmd_get_revision(dmsc, &ver); zassert_ok(ret, "Failed to get TISCI revision"); uint64_t freq = 0; ret = tisci_cmd_clk_get_freq(dmsc, 152, 0, &freq); zassert_ok(ret, "Failed to get clock freq"); uint64_t min_freq = 96000000, target_freq = 96000000, max_freq = 96000000; ret = tisci_cmd_clk_set_freq(dmsc, 152, 0, min_freq, target_freq, max_freq); zassert_ok(ret, "Failed to set clock freq"); freq = 0; ret = tisci_cmd_clk_get_freq(dmsc, 152, 0, &freq); zassert_ok(ret, "Failed to get clock freq after set"); zassert_equal(freq, target_freq, "Clock freq after set does not match target"); ret = tisci_cmd_get_device(dmsc, 0); zassert_ok(ret, "Failed to turn ON power domain device 0"); uint32_t clcnt = 0, resets = 0; uint8_t p_state = 0, c_state = 0; int state_ret = tisci_get_device_state(dmsc, 0, &clcnt, &resets, &p_state, &c_state); zassert_ok(state_ret, "Failed to get device 0 state after ON"); ret = tisci_cmd_put_device(dmsc, 0); zassert_ok(ret, "Failed to turn OFF power domain device 0"); clcnt = resets = 0; p_state = c_state = 0; state_ret = tisci_get_device_state(dmsc, 0, &clcnt, &resets, &p_state, &c_state); zassert_ok(state_ret, "Failed to get device 0 state after OFF"); } ZTEST_SUITE(tisci, NULL, NULL, NULL, NULL, NULL);