10eea0d25SJoseph Chen // SPDX-License-Identifier: GPL-2.0 20eea0d25SJoseph Chen /* 30eea0d25SJoseph Chen * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 40eea0d25SJoseph Chen */ 50eea0d25SJoseph Chen 60eea0d25SJoseph Chen #include <common.h> 70eea0d25SJoseph Chen #include <console.h> 80eea0d25SJoseph Chen #include <dvfs.h> 90eea0d25SJoseph Chen dvfs_apply(struct udevice * dev)100eea0d25SJoseph Chenint dvfs_apply(struct udevice *dev) 110eea0d25SJoseph Chen { 120eea0d25SJoseph Chen const struct dm_dvfs_ops *ops = device_get_ops(dev); 130eea0d25SJoseph Chen 140eea0d25SJoseph Chen if (!ops->apply) 150eea0d25SJoseph Chen return -ENOSYS; 160eea0d25SJoseph Chen 170eea0d25SJoseph Chen return ops->apply(dev); 180eea0d25SJoseph Chen } 190eea0d25SJoseph Chen dvfs_repeat_apply(struct udevice * dev)200eea0d25SJoseph Chenint dvfs_repeat_apply(struct udevice *dev) 210eea0d25SJoseph Chen { 220eea0d25SJoseph Chen const struct dm_dvfs_ops *ops = device_get_ops(dev); 230eea0d25SJoseph Chen 240eea0d25SJoseph Chen if (!ops->repeat_apply) 250eea0d25SJoseph Chen return -ENOSYS; 260eea0d25SJoseph Chen 270eea0d25SJoseph Chen return ops->repeat_apply(dev); 280eea0d25SJoseph Chen } 290eea0d25SJoseph Chen dvfs_init(bool apply)300eea0d25SJoseph Chenint dvfs_init(bool apply) 310eea0d25SJoseph Chen { 320eea0d25SJoseph Chen struct udevice *dev; 330eea0d25SJoseph Chen int ret; 340eea0d25SJoseph Chen 350eea0d25SJoseph Chen ret = uclass_get_device(UCLASS_DVFS, 0, &dev); 360eea0d25SJoseph Chen if (ret) { 37*c5449fd3SJoseph Chen if (ret != -ENODEV) 380eea0d25SJoseph Chen printf("DVFS: Get dvfs device failed, ret=%d\n", ret); 390eea0d25SJoseph Chen return ret; 400eea0d25SJoseph Chen } 410eea0d25SJoseph Chen 420eea0d25SJoseph Chen if (apply) 430eea0d25SJoseph Chen return dvfs_apply(dev); 440eea0d25SJoseph Chen 450eea0d25SJoseph Chen return 0; 460eea0d25SJoseph Chen } 470eea0d25SJoseph Chen 480eea0d25SJoseph Chen UCLASS_DRIVER(dvfs) = { 490eea0d25SJoseph Chen .id = UCLASS_DVFS, 500eea0d25SJoseph Chen .name = "dvfs", 510eea0d25SJoseph Chen }; 52