build: fix build from previous commit
[openocd.git] / src / jtag / drivers / ft2232.c
index ecfa17f2c5ba8388daf1bec5bf5745380b407700..c8a98d2d296d038c1f4555d5ec4727bef0183fd8 100644 (file)
@@ -188,6 +188,8 @@ static int signalyzer_init(void);
 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);
@@ -210,6 +212,8 @@ static void flyswatter_jtag_blink(void);
 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 */
 
@@ -304,10 +308,16 @@ static const struct ft2232_layout  ft2232_layouts[] =
                .channel = INTERFACE_B,
        },
        { .name = "lisa-l",
-               .init = usbjtag_init,
+               .init = lisa_l_init,
                .reset = ftx23_reset,
+               .blink = lisa_l_blink,
                .channel = INTERFACE_B,
        },
+       { .name = "flossjtag",
+               .init = flossjtag_init,
+               .reset = ftx23_reset,
+               .blink = flossjtag_blink,
+       },
        { .name = NULL, /* END OF TABLE */ },
 };
 
@@ -2385,7 +2395,11 @@ static int ft2232_init(void)
                        return ERROR_JTAG_INIT_FAILED;
        }
 
-       ft2232_speed(jtag_get_speed());
+       int jtag_speed_var;
+       retval = jtag_get_speed(&jtag_speed_var);
+       if (retval != ERROR_OK)
+               return retval;
+       ft2232_speed(jtag_speed_var);
 
        buf[0] = 0x85; /* Disconnect TDI/DO to TDO/DI for Loopback */
        if ((retval = ft2232_write(buf, 1, &bytes_written)) != ERROR_OK)
@@ -3098,6 +3112,66 @@ static int cortino_jtag_init(void)
        return ERROR_OK;
 }
 
+static int lisa_l_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 'lisa_l' layout");
+               return ERROR_JTAG_INIT_FAILED;
+       }
+
+       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
@@ -3150,6 +3224,44 @@ static void turtle_jtag_blink(void)
        buffer_write(high_direction);
 }
 
+static void lisa_l_blink(void)
+{
+       /*
+        * Lisa/L has two LEDs connected to BCBUS3 and BCBUS4
+        */
+       if (high_output & 0x10)
+       {
+               high_output = 0x08;
+       }
+       else
+       {
+               high_output = 0x10;
+       }
+
+       buffer_write(0x82);
+       buffer_write(high_output);
+       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

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)