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