diff options
Diffstat (limited to 'src/jtag/presto.c')
-rw-r--r-- | src/jtag/presto.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/jtag/presto.c b/src/jtag/presto.c index 084ae917..62a9746b 100644 --- a/src/jtag/presto.c +++ b/src/jtag/presto.c @@ -656,11 +656,26 @@ int presto_bitq_reset(int trst, int srst) /* -------------------------------------------------------------------------- */ +char *presto_speed_text[4] = +{ + "3 MHz", + "1.5 MHz", + "750 kHz", + "93.75 kHz" +}; int presto_jtag_speed(int speed) { + + if ((speed < 0) || (speed > 3)) + { + INFO("valid speed values: 0 (3 MHz), 1 (1.5 MHz), 2 (750 kHz) and 3 (93.75 kHz)"); + return ERROR_INVALID_ARGUMENTS; + } + jtag_speed = speed; - return ERROR_OK; + INFO("setting speed to %d, max. TCK freq. is %s", speed, presto_speed_text[speed]); + return presto_sendbyte(0xA8 | speed); } @@ -704,6 +719,9 @@ int presto_jtag_init(void) } INFO("PRESTO open, serial number '%s'", presto->serial); + /* use JTAG speed setting from configuration file */ + presto_jtag_speed(jtag_speed); + bitq_interface = &presto_bitq; return ERROR_OK; } |