+// SPDX-License-Identifier: GPL-2.0-or-later
+
/***************************************************************************
* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
* *
* Copyright (C) 2008 by Spencer Oliver *
* spen@spen-soft.co.uk *
- * *
- * 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
+#include <jtag/adapter.h>
#include <jtag/interface.h>
#include "bitbang.h"
cur_cable = cables;
- if (parport_cable == NULL) {
+ if (!parport_cable) {
parport_cable = strdup("wiggler");
LOG_WARNING("No parport cable specified, using default 'wiggler'");
}
return ERROR_OK;
/* only if the cable name wasn't overwritten by cmdline */
- if (parport_cable == 0) {
+ if (!parport_cable) {
/* REVISIT first verify that it's listed in cables[] ... */
parport_cable = malloc(strlen(CMD_ARGV[0]) + sizeof(char));
+ if (!parport_cable) {
+ LOG_ERROR("Out of memory");
+ return ERROR_FAIL;
+ }
strcpy(parport_cable, CMD_ARGV[0]);
}
}
parport_toggling_time_ns = ns;
- retval = jtag_get_speed(&wait_states);
+ retval = adapter_get_speed(&wait_states);
if (retval != ERROR_OK) {
- /* if jtag_get_speed fails then the clock_mode
+ /* if adapter_get_speed fails then the clock_mode
* has not been configured, this happens if parport_toggling_time is
* called before the adapter speed is set */
LOG_INFO("no parport speed set - defaulting to zero wait states");
return ERROR_OK;
}
-static const struct command_registration parport_command_handlers[] = {
+static const struct command_registration parport_subcommand_handlers[] = {
{
- .name = "parport_port",
+ .name = "port",
.handler = parport_handle_parport_port_command,
.mode = COMMAND_CONFIG,
.help = "Display the address of the I/O port (e.g. 0x378) "
.usage = "[port_number]",
},
{
- .name = "parport_cable",
+ .name = "cable",
.handler = parport_handle_parport_cable_command,
.mode = COMMAND_CONFIG,
.help = "Set the layout of the parallel port cable "
.usage = "[layout]",
},
{
- .name = "parport_write_on_exit",
+ .name = "write_on_exit",
.handler = parport_handle_write_on_exit_command,
.mode = COMMAND_CONFIG,
.help = "Configure the parallel driver to write "
.usage = "('on'|'off')",
},
{
- .name = "parport_toggling_time",
+ .name = "toggling_time",
.handler = parport_handle_parport_toggling_time_command,
.mode = COMMAND_CONFIG,
.help = "Displays or assigns how many nanoseconds it "
COMMAND_REGISTRATION_DONE
};
+static const struct command_registration parport_command_handlers[] = {
+ {
+ .name = "parport",
+ .mode = COMMAND_ANY,
+ .help = "perform parport management",
+ .chain = parport_subcommand_handlers,
+ .usage = "",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
static struct jtag_interface parport_interface = {
.supported = DEBUG_CAP_TMS_SEQ,
.execute_queue = bitbang_execute_queue,