/***************************************************************************
- * Copyright (C) 2008 by Øyvind Harboe *
+ * Copyright (C) 2008 by Øyvind Harboe *
* oyvind.harboe@zylin.com *
* *
* This program is free software; you can redistribute it and/or modify *
#include "interface.h"
#include "bitbang.h"
+#include "../hello.h"
/* my private tap controller state, which tracks state for calling code */
static uint32_t dummy_data;
-static int dummy_speed(int speed);
-static int dummy_register_commands(struct command_context_s *cmd_ctx);
-static int dummy_init(void);
-static int dummy_quit(void);
-static int dummy_khz(int khz, int *jtag_speed);
-static int dummy_speed_div(int speed, int *khz);
-
-
-/* The dummy driver is used to easily check the code path
- * where the target is unresponsive.
- */
-jtag_interface_t dummy_interface =
-{
- .name = "dummy",
-
- .execute_queue = bitbang_execute_queue,
-
- .speed = dummy_speed,
- .register_commands = dummy_register_commands,
- .khz = dummy_khz,
- .speed_div = dummy_speed_div,
-
- .init = dummy_init,
- .quit = dummy_quit,
-};
-
-static int dummy_read(void);
-static void dummy_write(int tck, int tms, int tdi);
-static void dummy_reset(int trst, int srst);
-static void dummy_led(int on);
-
-static bitbang_interface_t dummy_bitbang =
-{
- .read = dummy_read,
- .write = dummy_write,
- .reset = dummy_reset,
- .blink = dummy_led
-};
-
static int dummy_read(void)
{
int data = 1 & dummy_data;
LOG_DEBUG("reset to: %s", tap_state_name(dummy_state));
}
+static void dummy_led(int on)
+{
+}
+
+static struct bitbang_interface dummy_bitbang = {
+ .read = &dummy_read,
+ .write = &dummy_write,
+ .reset = &dummy_reset,
+ .blink = &dummy_led,
+ };
+
+
static int dummy_khz(int khz, int *jtag_speed)
{
if (khz == 0)
return ERROR_OK;
}
-static int dummy_register_commands(struct command_context_s *cmd_ctx)
-{
- return ERROR_OK;
-}
-
static int dummy_init(void)
{
bitbang_interface = &dummy_bitbang;
return ERROR_OK;
}
-static void dummy_led(int on)
-{
-}
+static const struct command_registration dummy_command_handlers[] = {
+ {
+ .name = "dummy",
+ .mode = COMMAND_ANY,
+ .help = "dummy interface driver commands",
+
+ .chain = hello_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE,
+};
+
+/* The dummy driver is used to easily check the code path
+ * where the target is unresponsive.
+ */
+struct jtag_interface dummy_interface = {
+ .name = "dummy",
+
+ .commands = dummy_command_handlers,
+
+ .execute_queue = &bitbang_execute_queue,
+
+ .speed = &dummy_speed,
+ .khz = &dummy_khz,
+ .speed_div = &dummy_speed_div,
+ .init = &dummy_init,
+ .quit = &dummy_quit,
+ };