xref: /rk3399_rockchip-uboot/include/dvfs.h (revision 0eea0d250e65f61dbae608a25eb07e26567ef430)
1*0eea0d25SJoseph Chen /* SPDX-License-Identifier:     GPL-2.0+ */
2*0eea0d25SJoseph Chen /*
3*0eea0d25SJoseph Chen  * (C) Copyright 2018 Rockchip Electronics Co., Ltd
4*0eea0d25SJoseph Chen  */
5*0eea0d25SJoseph Chen 
6*0eea0d25SJoseph Chen #ifndef _DVFS_H_
7*0eea0d25SJoseph Chen #define _DVFS_H_
8*0eea0d25SJoseph Chen 
9*0eea0d25SJoseph Chen #include <dm.h>
10*0eea0d25SJoseph Chen 
11*0eea0d25SJoseph Chen /**
12*0eea0d25SJoseph Chen  * dvfs_init() - init first dvfs driver
13*0eea0d25SJoseph Chen  *
14*0eea0d25SJoseph Chen  * @apply: do dvfs policy apply if true, otherwise just init.
15*0eea0d25SJoseph Chen  * @return 0 if OK, 1 on error
16*0eea0d25SJoseph Chen  */
17*0eea0d25SJoseph Chen int dvfs_init(bool apply);
18*0eea0d25SJoseph Chen 
19*0eea0d25SJoseph Chen /**
20*0eea0d25SJoseph Chen  * dvfs_apply() - do dvfs policy apply
21*0eea0d25SJoseph Chen  *
22*0eea0d25SJoseph Chen  * @dev: dvfs device
23*0eea0d25SJoseph Chen  * @return 0 if OK, otherwise on error
24*0eea0d25SJoseph Chen  */
25*0eea0d25SJoseph Chen int dvfs_apply(struct udevice *dev);
26*0eea0d25SJoseph Chen 
27*0eea0d25SJoseph Chen /**
28*0eea0d25SJoseph Chen  * dvfs_repeat_apply() - do dvfs policy repeat apply
29*0eea0d25SJoseph Chen  *
30*0eea0d25SJoseph Chen  * @dev: dvfs device
31*0eea0d25SJoseph Chen  * @return 0 if OK, otherwise on error
32*0eea0d25SJoseph Chen  */
33*0eea0d25SJoseph Chen int dvfs_repeat_apply(struct udevice *dev);
34*0eea0d25SJoseph Chen 
35*0eea0d25SJoseph Chen /**
36*0eea0d25SJoseph Chen  * struct dm_dvfs_ops - Driver model Thermal operations
37*0eea0d25SJoseph Chen  *
38*0eea0d25SJoseph Chen  * The uclass interface is implemented by all Thermal devices which use
39*0eea0d25SJoseph Chen  * driver model.
40*0eea0d25SJoseph Chen  */
41*0eea0d25SJoseph Chen 
42*0eea0d25SJoseph Chen struct dm_dvfs_ops {
43*0eea0d25SJoseph Chen 	int (*apply)(struct udevice *dev);
44*0eea0d25SJoseph Chen 	int (*repeat_apply)(struct udevice *dev);
45*0eea0d25SJoseph Chen };
46*0eea0d25SJoseph Chen 
47*0eea0d25SJoseph Chen #endif	/* _DVFS_H_ */
48