blob: 212cd691ca74eac6ffbbddd474bf257339b2bee8 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
#ifndef OPENTITAN_SW_DEVICE_LIB_TESTING_PWRMGR_TESTUTILS_H_
#define OPENTITAN_SW_DEVICE_LIB_TESTING_PWRMGR_TESTUTILS_H_
#include <stdint.h>
#include "sw/device/lib/dif/dif_pwrmgr.h"
/**
* Set the device in low power mode.
*
* A WFI instruction needs to be separately run by the processor to actually
* enter low power.
*
* @param pwrmgr A power manager handle.
* @param wakeups The bit mask of wakeup requestors.
* @param domain_config The bit mask for configuring the clock and power
* domains.
*/
void pwrmgr_testutils_enable_low_power(
const dif_pwrmgr_t *pwrmgr, dif_pwrmgr_request_sources_t wakeups,
dif_pwrmgr_domain_config_t domain_config);
/**
* Determines if the wakeup reasons is as given.
*
* @param pwrmgr A power manager handle.
* @param reasons A bit mask of reasons.
*/
bool pwrmgr_testutils_is_wakeup_reason(const dif_pwrmgr_t *pwrmgr,
dif_pwrmgr_request_sources_t reasons);
#endif // OPENTITAN_SW_DEVICE_LIB_TESTING_PWRMGR_TESTUTILS_H_