usb.h: define some stlink usb pid macros, stop copypasting.
ease v1/v2/v2.1/v3 identification and supported devices filtering
@@ -29,6 +29,24 @@ extern "C" {
#define STLINK_USB_PID_STLINK_V3S_PID 0x374f
#define STLINK_USB_PID_STLINK_V3_2VCP_PID 0x3753
+#define STLINK_V1_USB_PID(pid) ((pid) == STLINK_USB_PID_STLINK )
+
+#define STLINK_V2_USB_PID(pid) ((pid) == STLINK_USB_PID_STLINK_32L || \
+ (pid) == STLINK_USB_PID_STLINK_32L_AUDIO || \
+ (pid) == STLINK_USB_PID_STLINK_NUCLEO)
+
+#define STLINK_V2_1_USB_PID(pid) ( (pid) == STLINK_USB_PID_STLINK_V2_1 )
+
+#define STLINK_V3_USB_PID(pid) ((pid) == STLINK_USB_PID_STLINK_V3_USBLOADER || \
+ (pid) == STLINK_USB_PID_STLINK_V3E_PID || \
+ (pid) == STLINK_USB_PID_STLINK_V3S_PID || \
+ (pid) == STLINK_USB_PID_STLINK_V3_2VCP_PID )
+
+#define STLINK_SUPPORTED_USB_PID(pid) ( STLINK_V1_USB_PID(pid) || \
+ STLINK_V2_USB_PID(pid) || \
+ STLINK_V2_1_USB_PID(pid) || \
+ STLINK_V3_USB_PID(pid))
+
#define STLINK_SG_SIZE 31
#define STLINK_CMD_SIZE 16
