hla_transport: split command registration per transport
[fw/openocd] / src / jtag / hla / hla_transport.c
index 3383577481df8492d9c77f34a942850616f85409..10028260d9089c6a07ef4fb34c5aa397364b3378 100644 (file)
@@ -46,24 +46,37 @@ COMMAND_HANDLER(hl_transport_reset_command)
 }
 
 static const struct command_registration
-hl_transport_stlink_subcommand_handlers[] = {
+hl_swd_transport_subcommand_handlers[] = {
        {
-        .name = "newtap",
+        .name = "newdap",
         .mode = COMMAND_CONFIG,
         .jim_handler = jim_hl_newtap,
-        .help = "Create a new TAP instance named basename.tap_type, "
-        "and appends it to the scan chain.",
-        .usage = "basename tap_type '-irlen' count "
-        "['-expected_id' number] ",
+        .help = "declare a new SWD DAP",
         },
+       COMMAND_REGISTRATION_DONE
+};
 
+static const struct command_registration hl_swd_transport_command_handlers[] = {
+       {
+        .name = "swd",
+        .mode = COMMAND_ANY,
+        .help = "SWD command group",
+        .usage = "",
+        .chain = hl_swd_transport_subcommand_handlers,
+        },
        COMMAND_REGISTRATION_DONE
 };
 
 static const struct command_registration
 hl_transport_jtag_subcommand_handlers[] = {
        {
-        .chain = hl_transport_stlink_subcommand_handlers,
+        .name = "newtap",
+        .mode = COMMAND_CONFIG,
+        .jim_handler = jim_hl_newtap,
+        .help = "Create a new TAP instance named basename.tap_type, "
+        "and appends it to the scan chain.",
+        .usage = "basename tap_type '-irlen' count "
+        "['-expected_id' number] ",
         },
        {
         .name = "init",
@@ -120,18 +133,11 @@ hl_transport_jtag_subcommand_handlers[] = {
        COMMAND_REGISTRATION_DONE
 };
 
-static const struct command_registration stlink_transport_command_handlers[] = {
-
-       {
-        .name = "hla",
-        .mode = COMMAND_ANY,
-        .help = "perform hl adapter actions",
-        .usage = "",
-        .chain = hl_transport_stlink_subcommand_handlers,
-        },
+static const struct command_registration hl_jtag_transport_command_handlers[] = {
        {
         .name = "jtag",
         .mode = COMMAND_ANY,
+        .help = "perform jtag tap actions",
         .usage = "",
         .chain = hl_transport_jtag_subcommand_handlers,
         },
@@ -144,11 +150,6 @@ static const struct command_registration stlink_transport_command_handlers[] = {
        COMMAND_REGISTRATION_DONE
 };
 
-static int hl_transport_register_commands(struct command_context *cmd_ctx)
-{
-       return register_commands(cmd_ctx, NULL,
-                                stlink_transport_command_handlers);
-}
 
 static int hl_transport_init(struct command_context *cmd_ctx)
 {
@@ -187,34 +188,35 @@ static int hl_transport_init(struct command_context *cmd_ctx)
        return hl_interface_init_target(t);
 }
 
-static int hl_transport_select(struct command_context *ctx)
+static int hl_jtag_transport_select(struct command_context *cmd_ctx)
 {
-       LOG_DEBUG("hl_transport_select");
-
-       int retval;
+       LOG_DEBUG("hl_jtag_transport_select");
 
        /* NOTE:  interface init must already have been done.
         * That works with only C code ... no Tcl glue required.
         */
 
-       retval = hl_transport_register_commands(ctx);
-
-       if (retval != ERROR_OK)
-               return retval;
+       return register_commands(cmd_ctx, NULL,
+                               hl_jtag_transport_command_handlers);
+}
 
-       return ERROR_OK;
+static int hl_swd_transport_select(struct command_context *cmd_ctx)
+{
+       LOG_DEBUG("hl_swd_transport_select");
+       return register_commands(cmd_ctx, NULL,
+                               hl_swd_transport_command_handlers);
 }
 
 static struct transport hl_swd_transport = {
        .name = "hla_swd",
-       .select = hl_transport_select,
+       .select = hl_swd_transport_select,
        .init = hl_transport_init,
        .override_target = hl_interface_override_target,
 };
 
 static struct transport hl_jtag_transport = {
        .name = "hla_jtag",
-       .select = hl_transport_select,
+       .select = hl_jtag_transport_select,
        .init = hl_transport_init,
        .override_target = hl_interface_override_target,
 };