#include #include #include #include #include static int do_clko(struct command *cmdtp, int argc, char *argv[]) { int opt, div = 0, src = -2, ret; while((opt = getopt(argc, argv, "d:s:")) > 0) { switch(opt) { case 'd': div = simple_strtoul(optarg, NULL, 0); break; case 's': src = simple_strtoul(optarg, NULL, 0); break; } } if (div == 0 && src == -2) return COMMAND_ERROR_USAGE; if (src == -1) { imx_clko_set_src(-1); return 0; } if (src != -2) imx_clko_set_src(src); if (div != 0) { ret = imx_clko_set_div(div); if (ret != div) printf("limited divider to %d\n", ret); } return 0; } static __maybe_unused char cmd_clko_help[] = "Usage: clko [OPTION]...\n" "Route different signals to the i.MX clko pin\n" " -d
Divider\n" " -s Clock select. See Ref. Manual for valid sources. Use -1\n" " for disabling clock output\n"; BAREBOX_CMD_START(clko) .cmd = do_clko, .usage = "Adjust CLKO setting", BAREBOX_CMD_HELP(cmd_clko_help) BAREBOX_CMD_END