diff options
author | mlu <mlu@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2007-09-10 17:07:32 +0000 |
---|---|---|
committer | mlu <mlu@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2007-09-10 17:07:32 +0000 |
commit | b3c593da0f76fa0edb3177504c8d791c3d6eb784 (patch) | |
tree | 8578fa31fc9541cb14ad7af3862c17cb497e5f8b | |
parent | 6ae83f5cf8ddf505498b535cb167550a54271606 (diff) | |
download | riscv-openocd-b3c593da0f76fa0edb3177504c8d791c3d6eb784.zip riscv-openocd-b3c593da0f76fa0edb3177504c8d791c3d6eb784.tar.gz riscv-openocd-b3c593da0f76fa0edb3177504c8d791c3d6eb784.tar.bz2 |
- added ft2232_latency command
git-svn-id: svn://svn.berlios.de/openocd/trunk@205 b42882b7-edfa-0310-969c-e2dbd0fdcd60
-rw-r--r-- | src/jtag/ft2232.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c index b1acee5..629bab0 100644 --- a/src/jtag/ft2232.c +++ b/src/jtag/ft2232.c @@ -73,10 +73,12 @@ int ft2232_handle_device_desc_command(struct command_context_s *cmd_ctx, char *c int ft2232_handle_serial_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); int ft2232_handle_layout_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); int ft2232_handle_vid_pid_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +int ft2232_handle_latency_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); char *ft2232_device_desc = NULL; char *ft2232_serial = NULL; char *ft2232_layout = NULL; +unsigned char ft2232_latency = 2; #define MAX_USB_IDS 8 /* vid = pid = 0 marks the end of the list */ @@ -272,6 +274,8 @@ int ft2232_register_commands(struct command_context_s *cmd_ctx) COMMAND_CONFIG, NULL); register_command(cmd_ctx, NULL, "ft2232_vid_pid", ft2232_handle_vid_pid_command, COMMAND_CONFIG, NULL); + register_command(cmd_ctx, NULL, "ft2232_latency", ft2232_handle_latency_command, + COMMAND_CONFIG, NULL); return ERROR_OK; } @@ -1369,7 +1373,7 @@ static int ft2232_init_ftd2xx(u16 vid, u16 pid, int more, int *try_more) return ERROR_JTAG_INIT_FAILED; } - if ((status = FT_SetLatencyTimer(ftdih, 2)) != FT_OK) + if ((status = FT_SetLatencyTimer(ftdih, ft2232_latency)) != FT_OK) { ERROR("unable to set latency timer: %lu", status); return ERROR_JTAG_INIT_FAILED; @@ -1449,7 +1453,7 @@ static int ft2232_init_libftdi(u16 vid, u16 pid, int more, int *try_more) return ERROR_JTAG_INIT_FAILED; } - if (ftdi_set_latency_timer(&ftdic, 2) < 0) + if (ftdi_set_latency_timer(&ftdic, ft2232_latency) < 0) { ERROR("unable to set latency timer"); return ERROR_JTAG_INIT_FAILED; @@ -2039,3 +2043,18 @@ int ft2232_handle_vid_pid_command(struct command_context_s *cmd_ctx, char *cmd, return ERROR_OK; } + +int ft2232_handle_latency_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +{ + if (argc == 1) + { + ft2232_latency = atoi(args[0]); + } + else + { + ERROR("expected exactly one argument to ft2232_latency <ms>"); + } + + return ERROR_OK; +} + |