blob: 57a8ca62c3b0a25ed3b1f0d6f0cbfbeef333cdb0 [file] [log] [blame]
/*
* Copyright (c) 2021 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _SOC_ARM_NXP_IMX_RT_POWER_RT10XX_H_
#define _SOC_ARM_NXP_IMX_RT_POWER_RT10XX_H_
struct clock_callbacks {
/*
* The clock_set_run function should switch all clocks to their
* default running configuration, and power up required PLLs
* The system will be transitioning out of sleep when calling this function.
*/
void (*clock_set_run)(void);
/*
* The clock_set_low_power function should switch all clocks to
* the lowest power mode possible, and disable all possible PLLs.
* Note that the function should, at minimum, switch the arm core to the
* 24 MHz oscillator.
* The system will transition to sleep after calling this function.
*/
void (*clock_set_low_power)(void);
/*
* The clock_init function should perform any one time initialization that
* clocks used in low power mode require.
*/
void (*clock_lpm_init)(void);
};
void imxrt_clock_pm_callbacks_register(struct clock_callbacks *callbacks);
#endif /* _SOC_ARM_NXP_IMX_RT_POWER_RT10XX_H_ */