1 /* Copyright (c) 2015, The Linux Foundation. All rights reserved.
2  *
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License version 2 and
5  * only version 2 as published by the Free Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  */
13 
14 #ifndef UFSHCD_PLTFRM_H_
15 #define UFSHCD_PLTFRM_H_
16 
17 #include "ufshcd.h"
18 
19 int ufshcd_pltfrm_init(struct platform_device *pdev,
20 		       struct ufs_hba_variant_ops *vops);
21 void ufshcd_pltfrm_shutdown(struct platform_device *pdev);
22 
23 #ifdef CONFIG_PM
24 
25 int ufshcd_pltfrm_suspend(struct device *dev);
26 int ufshcd_pltfrm_resume(struct device *dev);
27 int ufshcd_pltfrm_runtime_suspend(struct device *dev);
28 int ufshcd_pltfrm_runtime_resume(struct device *dev);
29 int ufshcd_pltfrm_runtime_idle(struct device *dev);
30 
31 #else /* !CONFIG_PM */
32 
33 #define ufshcd_pltfrm_suspend	NULL
34 #define ufshcd_pltfrm_resume	NULL
35 #define ufshcd_pltfrm_runtime_suspend	NULL
36 #define ufshcd_pltfrm_runtime_resume	NULL
37 #define ufshcd_pltfrm_runtime_idle	NULL
38 
39 #endif /* CONFIG_PM */
40 
41 #endif /* UFSHCD_PLTFRM_H_ */
42