hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
 */
 
#include <common.h>
#include <console.h>
#include <dvfs.h>
 
static int do_dvfs(cmd_tbl_t *cmdtp, int flag,
          int argc, char *const argv[])
{
   struct udevice *dev;
   int ret;
 
   ret = uclass_get_device(UCLASS_DVFS, 0, &dev);
   if (ret) {
       if (ret != -ENODEV)
           printf("DVFS: Get dvfs device failed, ret=%d\n", ret);
       return ret;
   }
 
   if (argc == 1)
       return dvfs_apply(dev);
   else if (!strcmp(argv[1], "repeat"))
       return dvfs_repeat_apply(dev);
   else
       return CMD_RET_USAGE;
 
   return 0;
}
 
U_BOOT_CMD(
   dvfs, 2, 1, do_dvfs,
   "Start DVFS policy",
   "dvfs - apply dvfs policy once\n"
   "dvfs repeat - repeat apply dvfs policy until achieve the target temperature"
);