jtag: remove file driver.h
[fw/openocd] / src / jtag / adapter.c
index bdb131cf00ee6be26d008ca8b2056fb8c9466d3c..a5a6222a9190d0017191ec6eb5b1f5e19c5b124e 100644 (file)
 struct adapter_driver *adapter_driver;
 const char * const jtag_only[] = { "jtag", NULL };
 
+enum adapter_clk_mode {
+       CLOCK_MODE_UNSELECTED = 0,
+       CLOCK_MODE_KHZ,
+       CLOCK_MODE_RCLK
+};
+
 /**
  * Adapter configuration
  */
 static struct {
+       bool adapter_initialized;
        char *usb_location;
+       enum adapter_clk_mode clock_mode;
+       int speed_khz;
+       int rclk_fallback_speed_khz;
 } adapter_config;
 
-/* speed in kHz*/
-static int speed_khz;
-/* speed to fallback to when RCLK is requested but not supported */
-static int rclk_fallback_speed_khz;
-static enum {CLOCK_MODE_UNSELECTED, CLOCK_MODE_KHZ, CLOCK_MODE_RCLK} clock_mode;
-
-static bool adapter_initialized;
-
 bool is_adapter_initialized(void)
 {
-       return adapter_initialized;
+       return adapter_config.adapter_initialized;
 }
 
 /**
@@ -70,35 +72,35 @@ int adapter_init(struct command_context *cmd_ctx)
        retval = adapter_driver->init();
        if (retval != ERROR_OK)
                return retval;
-       adapter_initialized = true;
+       adapter_config.adapter_initialized = true;
 
        if (!adapter_driver->speed) {
                LOG_INFO("This adapter doesn't support configurable speed");
                return ERROR_OK;
        }
 
-       if (clock_mode == CLOCK_MODE_UNSELECTED) {
+       if (adapter_config.clock_mode == CLOCK_MODE_UNSELECTED) {
                LOG_ERROR("An adapter speed is not selected in the init script."
                        " Insert a call to \"adapter speed\" or \"jtag_rclk\" to proceed.");
                return ERROR_JTAG_INIT_FAILED;
        }
 
-       int requested_khz = jtag_get_speed_khz();
+       int requested_khz = adapter_get_speed_khz();
        int actual_khz = requested_khz;
-       int jtag_speed_var = 0;
-       retval = jtag_get_speed(&jtag_speed_var);
+       int speed_var = 0;
+       retval = adapter_get_speed(&speed_var);
        if (retval != ERROR_OK)
                return retval;
-       retval = adapter_driver->speed(jtag_speed_var);
+       retval = adapter_driver->speed(speed_var);
        if (retval != ERROR_OK)
                return retval;
-       retval = jtag_get_speed_readable(&actual_khz);
+       retval = adapter_get_speed_readable(&actual_khz);
        if (retval != ERROR_OK)
-               LOG_INFO("adapter-specific clock speed value %d", jtag_speed_var);
+               LOG_INFO("adapter-specific clock speed value %d", speed_var);
        else if (actual_khz) {
                /* Adaptive clocking -- JTAG-specific */
-               if ((clock_mode == CLOCK_MODE_RCLK)
-                               || ((clock_mode == CLOCK_MODE_KHZ) && !requested_khz)) {
+               if ((adapter_config.clock_mode == CLOCK_MODE_RCLK)
+                               || ((adapter_config.clock_mode == CLOCK_MODE_KHZ) && !requested_khz)) {
                        LOG_INFO("RCLK (adaptive clock speed) not supported - fallback to %d kHz"
                        , actual_khz);
                } else
@@ -128,31 +130,31 @@ int adapter_quit(void)
        return ERROR_OK;
 }
 
-unsigned jtag_get_speed_khz(void)
+unsigned int adapter_get_speed_khz(void)
 {
-       return speed_khz;
+       return adapter_config.speed_khz;
 }
 
-static int adapter_khz_to_speed(unsigned khz, int *speed)
+static int adapter_khz_to_speed(unsigned int khz, int *speed)
 {
-       LOG_DEBUG("convert khz to interface specific speed value");
-       speed_khz = khz;
+       LOG_DEBUG("convert khz to adapter specific speed value");
+       adapter_config.speed_khz = khz;
        if (!is_adapter_initialized())
                return ERROR_OK;
-       LOG_DEBUG("have interface set up");
+       LOG_DEBUG("have adapter set up");
        if (!adapter_driver->khz) {
-               LOG_ERROR("Translation from khz to jtag_speed not implemented");
+               LOG_ERROR("Translation from khz to adapter speed not implemented");
                return ERROR_FAIL;
        }
        int speed_div1;
-       int retval = adapter_driver->khz(jtag_get_speed_khz(), &speed_div1);
+       int retval = adapter_driver->khz(adapter_get_speed_khz(), &speed_div1);
        if (retval != ERROR_OK)
                return retval;
        *speed = speed_div1;
        return ERROR_OK;
 }
 
-static int jtag_rclk_to_speed(unsigned fallback_speed_khz, int *speed)
+static int adapter_rclk_to_speed(unsigned int fallback_speed_khz, int *speed)
 {
        int retval = adapter_khz_to_speed(0, speed);
        if ((retval != ERROR_OK) && fallback_speed_khz) {
@@ -162,61 +164,61 @@ static int jtag_rclk_to_speed(unsigned fallback_speed_khz, int *speed)
        return retval;
 }
 
-static int jtag_set_speed(int speed)
+static int adapter_set_speed(int speed)
 {
        /* this command can be called during CONFIG,
-        * in which case jtag isn't initialized */
+        * in which case adapter isn't initialized */
        return is_adapter_initialized() ? adapter_driver->speed(speed) : ERROR_OK;
 }
 
-int jtag_config_khz(unsigned khz)
+int adapter_config_khz(unsigned int khz)
 {
-       LOG_DEBUG("handle jtag khz");
-       clock_mode = CLOCK_MODE_KHZ;
+       LOG_DEBUG("handle adapter khz");
+       adapter_config.clock_mode = CLOCK_MODE_KHZ;
        int speed = 0;
        int retval = adapter_khz_to_speed(khz, &speed);
-       return (retval != ERROR_OK) ? retval : jtag_set_speed(speed);
+       return (retval != ERROR_OK) ? retval : adapter_set_speed(speed);
 }
 
-int jtag_config_rclk(unsigned fallback_speed_khz)
+int adapter_config_rclk(unsigned int fallback_speed_khz)
 {
-       LOG_DEBUG("handle jtag rclk");
-       clock_mode = CLOCK_MODE_RCLK;
-       rclk_fallback_speed_khz = fallback_speed_khz;
+       LOG_DEBUG("handle adapter rclk");
+       adapter_config.clock_mode = CLOCK_MODE_RCLK;
+       adapter_config.rclk_fallback_speed_khz = fallback_speed_khz;
        int speed = 0;
-       int retval = jtag_rclk_to_speed(fallback_speed_khz, &speed);
-       return (retval != ERROR_OK) ? retval : jtag_set_speed(speed);
+       int retval = adapter_rclk_to_speed(fallback_speed_khz, &speed);
+       return (retval != ERROR_OK) ? retval : adapter_set_speed(speed);
 }
 
-int jtag_get_speed(int *speed)
+int adapter_get_speed(int *speed)
 {
-       switch (clock_mode) {
+       switch (adapter_config.clock_mode) {
                case CLOCK_MODE_KHZ:
-                       adapter_khz_to_speed(jtag_get_speed_khz(), speed);
+                       adapter_khz_to_speed(adapter_get_speed_khz(), speed);
                        break;
                case CLOCK_MODE_RCLK:
-                       jtag_rclk_to_speed(rclk_fallback_speed_khz, speed);
+                       adapter_rclk_to_speed(adapter_config.rclk_fallback_speed_khz, speed);
                        break;
                default:
-                       LOG_ERROR("BUG: unknown jtag clock mode");
+                       LOG_ERROR("BUG: unknown adapter clock mode");
                        return ERROR_FAIL;
        }
        return ERROR_OK;
 }
 
-int jtag_get_speed_readable(int *khz)
+int adapter_get_speed_readable(int *khz)
 {
-       int jtag_speed_var = 0;
-       int retval = jtag_get_speed(&jtag_speed_var);
+       int speed_var = 0;
+       int retval = adapter_get_speed(&speed_var);
        if (retval != ERROR_OK)
                return retval;
        if (!is_adapter_initialized())
                return ERROR_OK;
        if (!adapter_driver->speed_div) {
-               LOG_ERROR("Translation from jtag_speed to khz not implemented");
+               LOG_ERROR("Translation from adapter speed to khz not implemented");
                return ERROR_FAIL;
        }
-       return adapter_driver->speed_div(jtag_speed_var, khz);
+       return adapter_driver->speed_div(speed_var, khz);
 }
 
 /*
@@ -638,13 +640,13 @@ COMMAND_HANDLER(handle_adapter_speed_command)
                unsigned khz = 0;
                COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], khz);
 
-               retval = jtag_config_khz(khz);
+               retval = adapter_config_khz(khz);
                if (retval != ERROR_OK)
                        return retval;
        }
 
-       int cur_speed = jtag_get_speed_khz();
-       retval = jtag_get_speed_readable(&cur_speed);
+       int cur_speed = adapter_get_speed_khz();
+       retval = adapter_get_speed_readable(&cur_speed);
        if (retval != ERROR_OK)
                return retval;
 
@@ -884,7 +886,7 @@ static const struct command_registration interface_command_handlers[] = {
  * @todo Remove internal assumptions that all debug adapters use JTAG for
  * transport.  Various types and data structures are not named generically.
  */
-int interface_register_commands(struct command_context *ctx)
+int adapter_register_commands(struct command_context *ctx)
 {
        return register_commands(ctx, NULL, interface_command_handlers);
 }