1 /* 2 * Copyright (c) 2021 NXP 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef _SOC_ARM_NXP_IMX_RT_POWER_RT10XX_H_ 8 #define _SOC_ARM_NXP_IMX_RT_POWER_RT10XX_H_ 9 10 struct clock_callbacks { 11 /* 12 * The clock_set_run function should switch all clocks to their 13 * default running configuration, and power up required PLLs 14 * The system will be transitioning out of sleep when calling this function. 15 */ 16 void (*clock_set_run)(void); 17 /* 18 * The clock_set_low_power function should switch all clocks to 19 * the lowest power mode possible, and disable all possible PLLs. 20 * Note that the function should, at minimum, switch the arm core to the 21 * 24 MHz oscillator. 22 * The system will transition to sleep after calling this function. 23 */ 24 void (*clock_set_low_power)(void); 25 /* 26 * The clock_init function should perform any one time initialization that 27 * clocks used in low power mode require. 28 */ 29 void (*clock_lpm_init)(void); 30 }; 31 32 void imxrt_clock_pm_callbacks_register(struct clock_callbacks *callbacks); 33 34 #endif /* _SOC_ARM_NXP_IMX_RT_POWER_RT10XX_H_ */ 35