+// SPDX-License-Identifier: GPL-2.0-or-later
+
/***************************************************************************
* Copyright (C) 2008 by Øyvind Harboe *
* oyvind.harboe@zylin.com *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
static uint32_t dummy_data;
-static int dummy_read(void)
+static bb_value_t dummy_read(void)
{
int data = 1 & dummy_data;
dummy_data = (dummy_data >> 1) | (1 << 31);
- return data;
+ return data ? BB_HIGH : BB_LOW;
}
-static void dummy_write(int tck, int tms, int tdi)
+static int dummy_write(int tck, int tms, int tdi)
{
/* TAP standard: "state transitions occur on rising edge of clock" */
if (tck != dummy_clock) {
}
dummy_clock = tck;
}
+ return ERROR_OK;
}
-static void dummy_reset(int trst, int srst)
+static int dummy_reset(int trst, int srst)
{
dummy_clock = 0;
dummy_state = TAP_RESET;
LOG_DEBUG("reset to: %s", tap_state_name(dummy_state));
+ return ERROR_OK;
}
-static void dummy_led(int on)
+static int dummy_led(int on)
{
+ return ERROR_OK;
}
static struct bitbang_interface dummy_bitbang = {
.read = &dummy_read,
.write = &dummy_write,
- .reset = &dummy_reset,
.blink = &dummy_led,
};
.name = "dummy",
.mode = COMMAND_ANY,
.help = "dummy interface driver commands",
-
.chain = hello_command_handlers,
+ .usage = "",
},
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",
-
- .supported = DEBUG_CAP_TMS_SEQ,
- .commands = dummy_command_handlers,
- .transports = jtag_only,
+static struct jtag_interface dummy_interface = {
+ .supported = DEBUG_CAP_TMS_SEQ,
+ .execute_queue = &bitbang_execute_queue,
+};
- .execute_queue = &bitbang_execute_queue,
+struct adapter_driver dummy_adapter_driver = {
+ .name = "dummy",
+ .transports = jtag_only,
+ .commands = dummy_command_handlers,
- .speed = &dummy_speed,
- .khz = &dummy_khz,
- .speed_div = &dummy_speed_div,
+ .init = &dummy_init,
+ .quit = &dummy_quit,
+ .reset = &dummy_reset,
+ .speed = &dummy_speed,
+ .khz = &dummy_khz,
+ .speed_div = &dummy_speed_div,
- .init = &dummy_init,
- .quit = &dummy_quit,
- };
+ .jtag_ops = &dummy_interface,
+};