Blame view
cmd/clk.c
1.71 KB
83d290c56 SPDX: Convert all... |
1 |
// SPDX-License-Identifier: GPL-2.0+ |
08d0d6f32 common: Add new c... |
2 3 |
/* * Copyright (C) 2013 Xilinx, Inc. |
08d0d6f32 common: Add new c... |
4 5 6 7 |
*/ #include <common.h> #include <command.h> #include <clk.h> |
ff8eee033 cmd: clk: Add tri... |
8 9 10 11 |
#if defined(CONFIG_DM) && defined(CONFIG_CLK) #include <dm.h> #include <dm/device-internal.h> #endif |
08d0d6f32 common: Add new c... |
12 13 14 |
int __weak soc_clk_dump(void) { |
ff8eee033 cmd: clk: Add tri... |
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#if defined(CONFIG_DM) && defined(CONFIG_CLK) struct udevice *dev; struct uclass *uc; struct clk clk; int ret; /* Device addresses start at 1 */ ret = uclass_get(UCLASS_CLK, &uc); if (ret) return ret; uclass_foreach_dev(dev, uc) { memset(&clk, 0, sizeof(clk)); ret = device_probe(dev); if (ret) { printf("%-30.30s : ? Hz ", dev->name); continue; } ret = clk_request(dev, &clk); if (ret) { printf("%-30.30s : ? Hz ", dev->name); continue; } printf("%-30.30s : %lu Hz ", dev->name, clk_get_rate(&clk)); clk_free(&clk); } return 0; #else |
08d0d6f32 common: Add new c... |
50 51 52 |
puts("Not implemented "); return 1; |
ff8eee033 cmd: clk: Add tri... |
53 |
#endif |
08d0d6f32 common: Add new c... |
54 55 56 57 58 |
} static int do_clk_dump(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { |
ebc675b98 cmd: clk: Check r... |
59 60 61 62 63 64 65 66 67 68 |
int ret; ret = soc_clk_dump(); if (ret < 0) { printf("Clock dump error %d ", ret); ret = CMD_RET_FAILURE; } return ret; |
08d0d6f32 common: Add new c... |
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
} static cmd_tbl_t cmd_clk_sub[] = { U_BOOT_CMD_MKENT(dump, 1, 1, do_clk_dump, "", ""), }; static int do_clk(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { cmd_tbl_t *c; if (argc < 2) return CMD_RET_USAGE; /* Strip off leading 'clk' command argument */ argc--; argv++; c = find_cmd_tbl(argv[0], &cmd_clk_sub[0], ARRAY_SIZE(cmd_clk_sub)); if (c) return c->cmd(cmdtp, flag, argc, argv); else return CMD_RET_USAGE; } #ifdef CONFIG_SYS_LONGHELP static char clk_help_text[] = "dump - Print clock frequencies"; #endif U_BOOT_CMD(clk, 2, 1, do_clk, "CLK sub-system", clk_help_text); |