diff --git a/ft2232_spi.c b/ft2232_spi.c
index a5d3828354ea729bd31d681197358f2c60448fbc..d599a8ae625700f5a1802928dba468697495aa5d 100644
--- a/ft2232_spi.c
+++ b/ft2232_spi.c
@@ -277,6 +277,10 @@ int ft2232_spi_init(void)
 		return -3;
 	}
 
+	if (ftdi_set_interface(ftdic, ft2232_interface) < 0) {
+		msg_perr("Unable to select interface: %s\n", ftdic->error_str);
+	}
+
 	f = ftdi_usb_open(ftdic, ft2232_vid, ft2232_type);
 
 	if (f < 0 && f != -5) {
@@ -291,11 +295,6 @@ int ft2232_spi_init(void)
 		clock_5x = 0;
 	}
 
-	if (ftdi_set_interface(ftdic, ft2232_interface) < 0) {
-		msg_perr("Unable to select interface: %s\n",
-				ftdic->error_str);
-	}
-
 	if (ftdi_usb_reset(ftdic) < 0) {
 		msg_perr("Unable to reset FTDI device\n");
 	}