X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fft2232.c;h=6d2335698b661aa392291611e3a62ec921282191;hp=bd910b35f2521e7dfa2c8d147d52cd9692fdbfda;hb=cfc4d5c6b7b6f8f82dc5bbf3ee661c179814666e;hpb=2d9863e121ff0c02b33f1b8a3e74fae55d901fa6 diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c index bd910b35f2..6d2335698b 100644 --- a/src/jtag/ft2232.c +++ b/src/jtag/ft2232.c @@ -90,20 +90,6 @@ #endif #endif -static int ft2232_execute_queue(void); -static int ft2232_speed(int speed); -static int ft2232_speed_div(int speed, int* khz); -static int ft2232_khz(int khz, int* jtag_speed); -static int ft2232_register_commands(struct command_context_s* cmd_ctx); -static int ft2232_init(void); -static int ft2232_quit(void); - -static int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); -static int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); -static int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); -static int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); -static int ft2232_handle_latency_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); - /** * Send out \a num_cycles on the TCK line while the TAP(s) are in a * stable state. Calling code must ensure that current state is stable, @@ -349,18 +335,6 @@ static void move_to_state(tap_state_t goal_state) clock_tms(0x4b, tms_bits, tms_count, 0); } -jtag_interface_t ft2232_interface = -{ - .name = "ft2232", - .execute_queue = ft2232_execute_queue, - .speed = ft2232_speed, - .speed_div = ft2232_speed_div, - .khz = ft2232_khz, - .register_commands = ft2232_register_commands, - .init = ft2232_init, - .quit = ft2232_quit, -}; - static int ft2232_write(uint8_t* buf, int size, uint32_t* bytes_written) { #if BUILD_FT2232_FTD2XX == 1 @@ -590,21 +564,6 @@ static int ft2232_khz(int khz, int* jtag_speed) return ERROR_OK; } -static int ft2232_register_commands(struct command_context_s* cmd_ctx) -{ - register_command(cmd_ctx, NULL, "ft2232_device_desc", ft2232_handle_device_desc_command, - COMMAND_CONFIG, "the USB device description of the FTDI FT2232 device"); - register_command(cmd_ctx, NULL, "ft2232_serial", ft2232_handle_serial_command, - COMMAND_CONFIG, "the serial number of the FTDI FT2232 device"); - register_command(cmd_ctx, NULL, "ft2232_layout", ft2232_handle_layout_command, - COMMAND_CONFIG, "the layout of the FT2232 GPIO signals used to control output-enables and reset signals"); - register_command(cmd_ctx, NULL, "ft2232_vid_pid", ft2232_handle_vid_pid_command, - COMMAND_CONFIG, "the vendor ID and product ID of the FTDI FT2232 device"); - register_command(cmd_ctx, NULL, "ft2232_latency", ft2232_handle_latency_command, - COMMAND_CONFIG, "set the FT2232 latency timer to a new value"); - return ERROR_OK; -} - static void ft2232_end_state(tap_state_t state) { if (tap_is_state_stable(state)) @@ -1804,7 +1763,7 @@ static int ft2232_execute_command(jtag_command_t *cmd) return retval; } -static int ft2232_execute_queue() +static int ft2232_execute_queue(void) { jtag_command_t* cmd = jtag_command_queue; /* currently processed command */ int retval; @@ -2839,7 +2798,7 @@ static int ft2232_quit(void) return ERROR_OK; } -static int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc) +COMMAND_HANDLER(ft2232_handle_device_desc_command) { char *cp; char buf[200]; @@ -2873,7 +2832,7 @@ static int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, return ERROR_OK; } -static int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc) +COMMAND_HANDLER(ft2232_handle_serial_command) { if (argc == 1) { @@ -2887,7 +2846,7 @@ static int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* return ERROR_OK; } -static int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc) +COMMAND_HANDLER(ft2232_handle_layout_command) { if (argc == 0) return ERROR_OK; @@ -2898,7 +2857,7 @@ static int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* return ERROR_OK; } -static int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc) +COMMAND_HANDLER(ft2232_handle_vid_pid_command) { if (argc > MAX_USB_IDS * 2) { @@ -2919,12 +2878,8 @@ static int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char int retval = ERROR_OK; for (i = 0; i < argc; i += 2) { - retval = parse_u16(args[i], &ft2232_vid[i >> 1]); - if (ERROR_OK != retval) - break; - retval = parse_u16(args[i + 1], &ft2232_pid[i >> 1]); - if (ERROR_OK != retval) - break; + COMMAND_PARSE_NUMBER(u16, args[i], ft2232_vid[i >> 1]); + COMMAND_PARSE_NUMBER(u16, args[i + 1], ft2232_pid[i >> 1]); } /* @@ -2936,7 +2891,7 @@ static int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char return retval; } -static int ft2232_handle_latency_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc) +COMMAND_HANDLER(ft2232_handle_latency_command) { if (argc == 1) { @@ -4015,3 +3970,37 @@ static void ktlink_blink(void) buffer_write(high_output); buffer_write(high_direction); } + +static int ft2232_register_commands(struct command_context_s* cmd_ctx) +{ + register_command(cmd_ctx, NULL, "ft2232_device_desc", + ft2232_handle_device_desc_command, COMMAND_CONFIG, + "the USB device description of the FTDI FT2232 device"); + register_command(cmd_ctx, NULL, "ft2232_serial", + ft2232_handle_serial_command, COMMAND_CONFIG, + "the serial number of the FTDI FT2232 device"); + register_command(cmd_ctx, NULL, "ft2232_layout", + ft2232_handle_layout_command, COMMAND_CONFIG, + "the layout of the FT2232 GPIO signals used " + "to control output-enables and reset signals"); + register_command(cmd_ctx, NULL, "ft2232_vid_pid", + ft2232_handle_vid_pid_command, COMMAND_CONFIG, + "the vendor ID and product ID of the FTDI FT2232 device"); + register_command(cmd_ctx, NULL, "ft2232_latency", + ft2232_handle_latency_command, COMMAND_CONFIG, + "set the FT2232 latency timer to a new value"); + + return ERROR_OK; +} + + +jtag_interface_t ft2232_interface = { + .name = "ft2232", + .register_commands = &ft2232_register_commands, + .init = &ft2232_init, + .quit = &ft2232_quit, + .speed = &ft2232_speed, + .speed_div = &ft2232_speed_div, + .khz = &ft2232_khz, + .execute_queue = &ft2232_execute_queue, + };