Merge git://git.denx.de/u-boot-sunxi
[platform/kernel/u-boot.git] / cmd / clk.c
1 /*
2  * Copyright (C) 2013 Xilinx, Inc.
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6 #include <common.h>
7 #include <command.h>
8 #include <clk.h>
9
10 int __weak soc_clk_dump(void)
11 {
12         puts("Not implemented\n");
13         return 1;
14 }
15
16 static int do_clk_dump(cmd_tbl_t *cmdtp, int flag, int argc,
17                        char *const argv[])
18 {
19         int ret;
20
21         ret = soc_clk_dump();
22         if (ret < 0) {
23                 printf("Clock dump error %d\n", ret);
24                 ret = CMD_RET_FAILURE;
25         }
26
27         return ret;
28 }
29
30 static cmd_tbl_t cmd_clk_sub[] = {
31         U_BOOT_CMD_MKENT(dump, 1, 1, do_clk_dump, "", ""),
32 };
33
34 static int do_clk(cmd_tbl_t *cmdtp, int flag, int argc,
35                   char *const argv[])
36 {
37         cmd_tbl_t *c;
38
39         if (argc < 2)
40                 return CMD_RET_USAGE;
41
42         /* Strip off leading 'clk' command argument */
43         argc--;
44         argv++;
45
46         c = find_cmd_tbl(argv[0], &cmd_clk_sub[0], ARRAY_SIZE(cmd_clk_sub));
47
48         if (c)
49                 return c->cmd(cmdtp, flag, argc, argv);
50         else
51                 return CMD_RET_USAGE;
52 }
53
54 #ifdef CONFIG_SYS_LONGHELP
55 static char clk_help_text[] =
56         "dump - Print clock frequencies";
57 #endif
58
59 U_BOOT_CMD(clk, 2, 1, do_clk, "CLK sub-system", clk_help_text);