summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: b3ec98b)
raw | patch | inline | side by side (parent: b3ec98b)
author | Lokesh Vutla <lokeshvutla@ti.com> | |
Fri, 23 Aug 2019 15:04:24 +0000 (20:34 +0530) | ||
committer | Lokesh Vutla <lokeshvutla@ti.com> | |
Mon, 26 Aug 2019 03:55:11 +0000 (09:25 +0530) |
Add support for disable command that supports for disabling
a device or a clock.
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
a device or a clock.
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Makefile | patch | blob | history | |
common/cmd_disable.c | [new file with mode: 0644] | patch | blob |
common/help.c | patch | blob | history | |
common/k3conf.c | patch | blob | history | |
include/help.h | patch | blob | history | |
include/k3conf.h | patch | blob | history |
diff --git a/Makefile b/Makefile
index 91c5ba2b6962832d91d05da481fe7350bd362fff..a0614f8b5e2d9be799f4d085decc04ceaeb59d55 100644 (file)
--- a/Makefile
+++ b/Makefile
common/autoadjust_table.c \
common/cmd_show.c \
common/cmd_dump.c \
- common/cmd_enable.c
+ common/cmd_enable.c \
+ common/cmd_disable.c
AM65XSOURCES =\
soc/am65x/am65x_host_info.c \
diff --git a/common/cmd_disable.c b/common/cmd_disable.c
--- /dev/null
+++ b/common/cmd_disable.c
@@ -0,0 +1,118 @@
+/*
+ * K3CONF Command Disable
+ *
+ * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
+ * Lokesh Vutla <lokeshvutla@ti.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <tisci.h>
+#include <socinfo.h>
+#include <help.h>
+#include <k3conf.h>
+
+static int disable_device(int argc, char *argv[])
+{
+ uint32_t dev_id, ret;
+
+ if (argc < 1)
+ return -1;
+
+ ret = sscanf(argv[0], "%u", &dev_id);
+ if (ret != 1)
+ return -1;
+
+ ret = ti_sci_cmd_disable_device(dev_id);
+ if (ret)
+ return ret;
+
+ return dump_devices_info(argc, argv);
+}
+
+static int disable_clock(int argc, char *argv[])
+{
+ uint32_t dev_id, clk_id, ret;
+
+ if (argc < 2)
+ return -1;
+
+ ret = sscanf(argv[0], "%u", &dev_id);
+ if (ret != 1)
+ return -1;
+
+ ret = sscanf(argv[1], "%u", &clk_id);
+ if (ret != 1)
+ return -1;
+
+ ret = ti_sci_cmd_put_clk(dev_id, clk_id);
+ if (ret)
+ return ret;
+
+ return dump_clocks_info(argc, argv);
+}
+
+int process_disable_command(int argc, char *argv[])
+{
+ int ret;
+
+ if (argc < 1) {
+ help(HELP_DISABLE);
+ return -1;
+ }
+
+ if (!strncmp(argv[0], "device", 6)) {
+ argc--;
+ argv++;
+ ret = disable_device(argc, argv);
+ if (ret) {
+ fprintf(stderr, "Invalid device arguments\n");
+ help(HELP_DISABLE_DEVICE);
+ }
+ } else if (!strncmp(argv[0], "clock", 5)) {
+ argc--;
+ argv++;
+ ret = disable_clock(argc, argv);
+ if (ret) {
+ fprintf(stderr, "Invalid clock arguments\n");
+ help(HELP_DISABLE_CLOCK);
+ }
+ } else if (!strcmp(argv[0], "--help")) {
+ help(HELP_DISABLE);
+ return 0;
+ } else {
+ fprintf(stderr, "Invalid argument %s\n", argv[1]);
+ help(HELP_DISABLE);
+ return -1;
+ }
+ return ret;
+}
diff --git a/common/help.c b/common/help.c
index a78cf37f8d59b3190e5a4c5dcc898b9ed8aa6dd3..8589b56d7c9b58590fc8e2b485de3eec1e8af24c 100644 (file)
--- a/common/help.c
+++ b/common/help.c
printf("\n\tk3conf enable clock <dev_id> <clk_id>\n");
printf("\t Enables the TISCI clock and prints the status\n");
}
+ if ((cat == HELP_ALL) || (cat == HELP_DISABLE) ||
+ (cat == HELP_DISABLE_DEVICE)) {
+ printf("\n\tk3conf disable device <dev_id>\n");
+ printf("\t Disables the TISCI device and prints the status\n");
+ }
+ if ((cat == HELP_ALL) || (cat == HELP_DISABLE) ||
+ (cat == HELP_DISABLE_CLOCK)) {
+ printf("\n\tk3conf disable clock <dev_id> <clk_id>\n");
+ printf("\t Disables the TISCI clock and prints the status\n");
+ }
}
diff --git a/common/k3conf.c b/common/k3conf.c
index b20c02985f97d791ffaaf33bd073d85323fe6291..bc5370f812c2f81c83ddea39fb5a66b652350d78 100644 (file)
--- a/common/k3conf.c
+++ b/common/k3conf.c
argv++;
k3conf_print_version(stdout);
return process_enable_command(argc, argv);
+ } else if (!strcmp(argv[0], "disable")) {
+ argc--;
+ argv++;
+ k3conf_print_version(stdout);
+ return process_disable_command(argc, argv);
} else {
fprintf(stderr, "Invalid argument %s", argv[0]);
help(HELP_USAGE);
diff --git a/include/help.h b/include/help.h
index 018c5f7f1bd2f84c52e350c9db124b47bf11fcb2..7e36d016e32bdd4375e512d084355929670611fc 100644 (file)
--- a/include/help.h
+++ b/include/help.h
HELP_ENABLE,
HELP_ENABLE_DEVICE,
HELP_ENABLE_CLOCK,
+ HELP_DISABLE,
+ HELP_DISABLE_DEVICE,
+ HELP_DISABLE_CLOCK,
HELP_ALL,
HELP_CATEGORY_MAX,
} help_category;
diff --git a/include/k3conf.h b/include/k3conf.h
index f81dcfeff7a55055ad04c90307baef3c50310ce4..378e4a2dafbb0a63aea3081eaea060b23b99275a 100644 (file)
--- a/include/k3conf.h
+++ b/include/k3conf.h
int dump_devices_info(int argc, char *argv[]);
int dump_cpu_info(void);
int process_enable_command(int argc, char *argv[]);
+int process_disable_command(int argc, char *argv[]);
#endif