Lines Matching +full:domain +full:- +full:idle +full:- +full:states

1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2016-2018 Texas Instruments Incorporated - https://www.ti.com/
18 #include <linux/platform_data/gpio-omap.h>
33 #include "omap-secure.h"
52 return -ENOMEM; in am43xx_map_scu()
60 pr_warn("WARNING: This platform does not support off-mode, entering DeepSleep suspend.\n"); in am33xx_check_off_mode_enable()
69 * Check for am437x-gp-evm which has the right Hardware design to in am43xx_check_off_mode_enable()
72 if (of_machine_is_compatible("ti,am437x-gp-evm") && enable_off_mode) in am43xx_check_off_mode_enable()
75 pr_warn("WARNING: This platform does not support off-mode, entering DeepSleep suspend.\n"); in am43xx_check_off_mode_enable()
80 static int amx3_common_init(int (*idle)(u32 wfi_flags)) in amx3_common_init()
87 return -ENODEV; in amx3_common_init()
91 /* CEFUSE domain can be turned off post bootup */ in amx3_common_init()
96 pr_info("PM: Leaving EFUSE power domain active\n"); in amx3_common_init()
100 idle_fn = idle; in amx3_common_init()
105 static int am33xx_suspend_init(int (*idle)(u32 wfi_flags)) in am33xx_suspend_init()
111 return -ENODEV; in am33xx_suspend_init()
114 return amx3_common_init(idle); in am33xx_suspend_init()
117 static int am43xx_suspend_init(int (*idle)(u32 wfi_flags)) in am43xx_suspend_init()
127 ret = amx3_common_init(idle); in am43xx_suspend_init()
152 pr_err("PM: GFX domain did not transition: %x\n", status); in amx3_post_suspend_common()
165 * BUG: GFX_L4LS clock domain needs to be woken up to in am33xx_suspend()
166 * ensure thet L4LS clock domain does not get stuck in in am33xx_suspend()
168 * disabled, thereby leading to PER power domain in am33xx_suspend()
204 * Note that even on systems with OP-TEE available this resume call is in am43xx_suspend()
206 * is restored as the secure monitor. On systems with OP-TEE ROM will in am43xx_suspend()
207 * restore OP-TEE during this call. in am43xx_suspend()
282 * breaking suspend-resume in am43xx_restore_context()
327 * wkup_m3_ipc and booted am335x-pm-firmware.elf.
331 pr_warn("PM not initialized for pm33xx, wkup_m3_ipc, or am335x-pm-firmware.elf\n"); in amx3_suspend_block()
333 return -EINVAL; in amx3_suspend_block()
372 devinfo.id = -1; in amx3_common_pm_init()
382 struct amx3_idle_state states[CPUIDLE_STATE_MAX]; in amx3_idle_init() local
387 state_node = of_parse_phandle(cpu_node, "cpu-idle-states", i); in amx3_idle_init()
395 pr_warn("%s: cpuidle states reached max possible\n", in amx3_idle_init()
400 states[state_count].wfi_flags = 0; in amx3_idle_init()
402 if (of_property_read_bool(state_node, "ti,idle-wkup-m3")) in amx3_idle_init()
403 states[state_count].wfi_flags |= WFI_FLAG_WAKE_M3 | in amx3_idle_init()
411 return -ENOMEM; in amx3_idle_init()
414 idle_states[i].wfi_flags = states[i].wfi_flags; in amx3_idle_init()
424 return -EINVAL; in amx3_idle_enter()
427 idle_fn(idle_state->wfi_flags); in amx3_idle_enter()