Encapsulate JTAG Cable API and interface structure, plan for new header file.
[fw/openocd] / src / jtag / bitbang.c
index f407deb18a6a917d8570c760332b62a5bb83f813..9d50dcc8db35b98a3e042a1c3e4f2e2ff22fa479 100644 (file)
@@ -25,6 +25,7 @@
 #endif
 
 #include "bitbang.h"
+#define INCLUDE_JTAG_INTERFACE_H
 #include "jtag.h"
 
 /**
@@ -77,8 +78,9 @@ static void bitbang_state_move(int skip)
 {
        int i=0, tms=0;
        u8 tms_scan = tap_get_tms_path(tap_get_state(), tap_get_end_state());
-
-       for (i = skip; i < 7; i++)
+       int tms_count = tap_get_tms_path_len(tap_get_state(), tap_get_end_state());
+       
+       for (i = skip; i < tms_count; i++)
        {
                tms = (tms_scan >> i) & 1;
                bitbang_interface->write(0, tms, 0);
@@ -168,7 +170,7 @@ static void bitbang_stableclocks(int num_cycles)
 
 
 
-static void bitbang_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
+static void bitbang_scan(bool ir_scan, enum scan_type type, u8 *buffer, int scan_size)
 {
        tap_state_t saved_end_state = tap_get_end_state();
        int bit_cnt;
@@ -252,13 +254,6 @@ int bitbang_execute_queue(void)
        {
                switch (cmd->type)
                {
-                       case JTAG_END_STATE:
-#ifdef _DEBUG_JTAG_IO_
-                               LOG_DEBUG("end_state: %s", tap_state_name(cmd->cmd.end_state->end_state) );
-#endif
-                               if (cmd->cmd.end_state->end_state != TAP_INVALID)
-                                       bitbang_end_state(cmd->cmd.end_state->end_state);
-                               break;
                        case JTAG_RESET:
 #ifdef _DEBUG_JTAG_IO_
                                LOG_DEBUG("reset trst: %i srst %i", cmd->cmd.reset->trst, cmd->cmd.reset->srst);