2018-01-22 09:27:00 +00:00
/* SPDX-License-Identifier: GPL-2.0 */
2019-04-18 16:38:53 +03:00
/* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */
2018-01-22 09:27:00 +00:00
/* \file cc_pm.h
*/
# ifndef __CC_POWER_MGR_H__
# define __CC_POWER_MGR_H__
# include "cc_driver.h"
# define CC_SUSPEND_TIMEOUT 3000
# if defined(CONFIG_PM)
extern const struct dev_pm_ops ccree_pm ;
int cc_pm_init ( struct cc_drvdata * drvdata ) ;
2019-02-07 15:36:11 +02:00
void cc_pm_go ( struct cc_drvdata * drvdata ) ;
2018-01-22 09:27:00 +00:00
void cc_pm_fini ( struct cc_drvdata * drvdata ) ;
int cc_pm_suspend ( struct device * dev ) ;
int cc_pm_resume ( struct device * dev ) ;
int cc_pm_get ( struct device * dev ) ;
int cc_pm_put_suspend ( struct device * dev ) ;
2019-06-17 11:46:29 +03:00
bool cc_pm_is_dev_suspended ( struct device * dev ) ;
2018-01-22 09:27:00 +00:00
# else
static inline int cc_pm_init ( struct cc_drvdata * drvdata )
{
return 0 ;
}
2019-02-11 16:27:58 +02:00
static inline void cc_pm_go ( struct cc_drvdata * drvdata ) { }
2019-02-07 15:36:11 +02:00
2018-01-22 09:27:00 +00:00
static inline void cc_pm_fini ( struct cc_drvdata * drvdata ) { }
static inline int cc_pm_suspend ( struct device * dev )
{
return 0 ;
}
static inline int cc_pm_resume ( struct device * dev )
{
return 0 ;
}
static inline int cc_pm_get ( struct device * dev )
{
return 0 ;
}
static inline int cc_pm_put_suspend ( struct device * dev )
{
return 0 ;
}
2019-06-17 11:46:29 +03:00
static inline bool cc_pm_is_dev_suspended ( struct device * dev )
{
/* if PM not supported device is never suspend */
return false ;
}
2018-01-22 09:27:00 +00:00
# endif
# endif /*__POWER_MGR_H__*/