Browse Source

Added support for the blinking leds on Floss-JTAG v0.3 and newer.

tags/v0.5.0-rc1
Piotr Esden-Tempski 13 years ago
committed by Øyvind Harboe
parent
commit
94e1445a86
2 changed files with 58 additions and 1 deletions
  1. +57
    -0
      src/jtag/drivers/ft2232.c
  2. +1
    -1
      tcl/interface/flossjtag.cfg

+ 57
- 0
src/jtag/drivers/ft2232.c View File

@@ -189,6 +189,7 @@ static int signalyzer_h_init(void);
static int ktlink_init(void);
static int redbee_init(void);
static int lisa_l_init(void);
static int flossjtag_init(void);

/* reset procedures for supported layouts */
static void ftx23_reset(int trst, int srst);
@@ -212,6 +213,7 @@ static void turtle_jtag_blink(void);
static void signalyzer_h_blink(void);
static void ktlink_blink(void);
static void lisa_l_blink(void);
static void flossjtag_blink(void);

/* common transport support options */

@@ -311,6 +313,11 @@ static const struct ft2232_layout ft2232_layouts[] =
.blink = lisa_l_blink,
.channel = INTERFACE_B,
},
{ .name = "flossjtag",
.init = flossjtag_init,
.reset = ftx23_reset,
.blink = flossjtag_blink,
},
{ .name = NULL, /* END OF TABLE */ },
};

@@ -3134,6 +3141,37 @@ static int lisa_l_init(void)

return ftx232_dbus_write();
}

static int flossjtag_init(void)
{
uint8_t buf[3];
uint32_t bytes_written;

ftx232_dbus_init();

nTRST = 0x10;
nTRSTnOE = 0x10;
nSRST = 0x40;
nSRSTnOE = 0x40;

high_output = 0x00;
high_direction = 0x18;

/* initialize high port */
buf[0] = 0x82; /* command "set data bits high byte" */
buf[1] = high_output;
buf[2] = high_direction;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'Floss-JTAG' layout");
return ERROR_JTAG_INIT_FAILED;
}

return ftx232_dbus_write();
}

static void olimex_jtag_blink(void)
{
/* Olimex ARM-USB-OCD has a LED connected to ACBUS3
@@ -3205,6 +3243,25 @@ static void lisa_l_blink(void)
buffer_write(high_direction);
}

static void flossjtag_blink(void)
{
/*
* Floss-JTAG has two LEDs connected to ACBUS3 and ACBUS4
*/
if (high_output & 0x10)
{
high_output = 0x08;
}
else
{
high_output = 0x10;
}

buffer_write(0x82);
buffer_write(high_output);
buffer_write(high_direction);
}

static int ft2232_quit(void)
{
#if BUILD_FT2232_FTD2XX == 1


+ 1
- 1
tcl/interface/flossjtag.cfg View File

@@ -16,5 +16,5 @@ interface ft2232
ft2232_vid_pid 0x0403 0x6010
ft2232_device_desc "FLOSS-JTAG"
#ft2232_serial "FJ000001"
ft2232_layout "usbjtag"
ft2232_layout "flossjtag"
ft2232_latency 2

Loading…
Cancel
Save