/* * Polling various devices on board for details and status monitoring purposes */ void board_poll_devices(void) { #if defined CONFIG_EXYNOS_TMU int temp; switch (tmu_monitor(&temp)) { case TMU_STATUS_TRIPPED: puts("EXYNOS_TMU: TRIPPING! Device power going down ...\n"); power_shutdown(); break; case TMU_STATUS_WARNING: puts("EXYNOS_TMU: WARNING! Temperature very high\n"); break; case TMU_STATUS_INIT: case TMU_STATUS_NORMAL: break; default: debug("Unknown TMU state\n"); } #endif /* CONFIG_EXYNOS_TMU */ #ifdef CONFIG_EXYNOS_CPUFREQ cpufreq_loop_count++; if (cpufreq_loop_count == 10000000) { /* User is idle, decrease ARM frequency*/ exynos5250_set_frequency(CPU_FREQ_L200); } #endif /* CONFIG_EXYNOS_CPUFREQ */ }
bool PowerManagement::sendRequest(int action) { switch (action) { case SHUTDOWN: return power_shutdown(); case SUSPEND: return power_suspend(); case HIBERNATE: return power_hibernate(); } return false; }