diff options
author | zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2009-06-09 10:07:07 +0000 |
---|---|---|
committer | zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2009-06-09 10:07:07 +0000 |
commit | e8febc22551f1afe3cfa556f7afb16fd8996b6c8 (patch) | |
tree | 602f5c8e4d457cd08c3709ef7756dde4c8c2fbc0 /src/jtag/core.c | |
parent | 5f4ecc60a9ed083d208c56dd5ff50fac81dbe4d5 (diff) |
Encapsulate the core jtag interface pointer:
- Add new jtag_config_khz to increase encapsulation of jtag->khz call.
- Add new jtag_get_speed_readable to encapsulate of jtag->speed_div call.
- Make definition of jtag static in core.c, remove extern from tcl.c.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2171 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/jtag/core.c')
-rw-r--r-- | src/jtag/core.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/jtag/core.c b/src/jtag/core.c index 4d4d2783..27866502 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -103,7 +103,7 @@ static int speed_khz = 0; static bool hasKHz = false; static int jtag_speed = 0; -struct jtag_interface_s *jtag = NULL; +static struct jtag_interface_s *jtag = NULL; /* configuration */ jtag_interface_t *jtag_interface = NULL; @@ -1178,6 +1178,27 @@ unsigned jtag_get_speed_khz(void) { return speed_khz; } +int jtag_config_khz(unsigned khz) +{ + LOG_DEBUG("handle jtag khz"); + jtag_set_speed_khz(khz); + + int cur_speed = 0; + if (jtag != NULL) + { + LOG_DEBUG("have interface set up"); + int speed_div1; + int retval = jtag->khz(jtag_get_speed_khz(), &speed_div1); + if (ERROR_OK != retval) + { + jtag_set_speed_khz(0); + return retval; + } + cur_speed = speed_div1; + } + return jtag_set_speed(cur_speed); +} + int jtag_get_speed(void) { return jtag_speed; @@ -1192,6 +1213,12 @@ int jtag_set_speed(int speed) return jtag ? jtag->speed(speed) : ERROR_OK; } +int jtag_get_speed_readable(int *speed) +{ + return jtag ? jtag->speed_div(jtag_get_speed(), speed) : ERROR_OK; +} + + void jtag_set_verify(bool enable) { jtag_verify = enable; |