| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */ |
| |
| /* \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); |
| void cc_pm_go(struct cc_drvdata *drvdata); |
| 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); |
| bool cc_pm_is_dev_suspended(struct device *dev); |
| |
| #else |
| |
| static inline int cc_pm_init(struct cc_drvdata *drvdata) |
| { |
| return 0; |
| } |
| |
| static inline void cc_pm_go(struct cc_drvdata *drvdata) {} |
| |
| 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; |
| } |
| |
| static inline bool cc_pm_is_dev_suspended(struct device *dev) |
| { |
| /* if PM not supported device is never suspend */ |
| return false; |
| } |
| |
| #endif |
| |
| #endif /*__POWER_MGR_H__*/ |