jtag/drivers/ftdi: do not touch unavailable reset signals

If the current reset_config doesn't specify availability of nTRST or
nSRST, just leave them alone, do not try to deassert them ever
(asserting would be prevented by the upper layer).

Change-Id: I90123c666e05a1c26f1e164625e82d766a3e3744
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2186
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
__archive__
Paul Fertser 2014-06-22 23:23:31 +04:00 committed by Andreas Fritiofson
parent eeff8eec6c
commit 52b80fbd82
1 changed files with 4 additions and 2 deletions

View File

@ -501,7 +501,8 @@ static void ftdi_execute_reset(struct jtag_command *cmd)
ftdi_set_signal(trst, '0'); ftdi_set_signal(trst, '0');
else else
LOG_ERROR("Can't assert TRST: nTRST signal is not defined"); LOG_ERROR("Can't assert TRST: nTRST signal is not defined");
} else if (trst && cmd->cmd.reset->trst == 0) { } else if (trst && jtag_get_reset_config() & RESET_HAS_TRST &&
cmd->cmd.reset->trst == 0) {
if (jtag_get_reset_config() & RESET_TRST_OPEN_DRAIN) if (jtag_get_reset_config() & RESET_TRST_OPEN_DRAIN)
ftdi_set_signal(trst, 'z'); ftdi_set_signal(trst, 'z');
else else
@ -514,7 +515,8 @@ static void ftdi_execute_reset(struct jtag_command *cmd)
ftdi_set_signal(srst, '0'); ftdi_set_signal(srst, '0');
else else
LOG_ERROR("Can't assert SRST: nSRST signal is not defined"); LOG_ERROR("Can't assert SRST: nSRST signal is not defined");
} else if (srst && cmd->cmd.reset->srst == 0) { } else if (srst && jtag_get_reset_config() & RESET_HAS_SRST &&
cmd->cmd.reset->srst == 0) {
if (jtag_get_reset_config() & RESET_SRST_PUSH_PULL) if (jtag_get_reset_config() & RESET_SRST_PUSH_PULL)
ftdi_set_signal(srst, '1'); ftdi_set_signal(srst, '1');
else else