]> git.sur5r.net Git - openocd/commitdiff
Added support for the blinking leds on Floss-JTAG v0.3 and newer.
authorPiotr Esden-Tempski <piotr@esden.net>
Mon, 29 Nov 2010 20:56:21 +0000 (12:56 -0800)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Tue, 30 Nov 2010 07:15:19 +0000 (08:15 +0100)
src/jtag/drivers/ft2232.c
tcl/interface/flossjtag.cfg

index 7440f0c951c1cdd55e10dbf9175bc9da1cab8c27..44391599ce4dade7ee8c8efc32d247868676ad6f 100644 (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
index 491f39aaa6454d5025625f8a047710b1556c73a6..9511dd222926df521f411d789a3ac0711b81aa63 100644 (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