blob: 783b201a7344bb36ba71c76bd872c8cea55dc3d0 [file] [log] [blame]
/* linux/arm/arm/mach-exynos/include/mach/regs-clock.h
*
* Copyright (C) 2013 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* EXYNOS5 - Header file for exynos pm support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __EXYNOS_PM_H
#define __EXYNOS_PM_H
#include <linux/kernel.h>
#include <linux/notifier.h>
/*
* Event codes for PM states
*/
enum exynos_pm_event {
/* CPU is entering the LPA state */
LPA_ENTER,
/* CPU failed to enter the LPA state */
LPA_ENTER_FAIL,
/* CPU is exiting the LPA state */
LPA_EXIT,
/* CPU is entering the SICD/SICD_AUD state */
SICD_ENTER,
SICD_AUD_ENTER,
/* CPU is exiting the SICD/SICD_AUD state */
SICD_EXIT,
SICD_AUD_EXIT,
};
#define EXYNOS_PM_PREFIX "EXYNOS-PM:"
#ifdef CONFIG_CPU_IDLE
int exynos_pm_register_notifier(struct notifier_block *nb);
int exynos_pm_unregister_notifier(struct notifier_block *nb);
int exynos_pm_notify(enum exynos_pm_event event);
#else
static inline int exynos_pm_register_notifier(struct notifier_block *nb)
{
return 0;
}
static inline int exynos_pm_unregister_notifier(struct notifier_block *nb)
{
return 0;
}
static inline int exynos_pm_notify(enum exynos_pm_event event)
{
return 0;
}
#endif
#ifdef CONFIG_EXYNOS_ACPM
extern u32 acpm_get_mifdn_count(void);
#else
static inline u32 acpm_get_mifdn_count(void)
{
return 0;
}
#endif
#endif /* __EXYNOS_PM_H */