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