]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/fx2lafw/protocol.h
fx2lafw: Add CTL2 clocking command flag to header
[libsigrok.git] / src / hardware / fx2lafw / protocol.h
index f8c2f3e28046dabd8a30fb39fec0602cc17d3c36..50e0ea4bf75e3994f35ae7a7d675da9d06611f67 100644 (file)
@@ -26,7 +26,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <libusb.h>
-#include "libsigrok.h"
+#include <libsigrok/libsigrok.h>
 #include "libsigrok-internal.h"
 
 #define LOG_PREFIX "fx2lafw"
 #define MAX_SAMPLE_DELAY       (6 * 256)
 
 #define DEV_CAPS_16BIT_POS     0
+#define DEV_CAPS_AX_ANALOG_POS 1
 
 #define DEV_CAPS_16BIT         (1 << DEV_CAPS_16BIT_POS)
+#define DEV_CAPS_AX_ANALOG     (1 << DEV_CAPS_AX_ANALOG_POS)
 
-#define DSLOGIC_FPGA_FIRMWARE FIRMWARE_DIR "/dreamsourcelab-dslogic-fpga.fw"
+#define DSLOGIC_FPGA_FIRMWARE "dreamsourcelab-dslogic-fpga.fw"
+#define DSCOPE_FPGA_FIRMWARE "dreamsourcelab-dscope-fpga.fw"
+#define DSLOGIC_PRO_FPGA_FIRMWARE "dreamsourcelab-dslogic-pro-fpga.fw"
 
 /* Protocol commands */
 #define CMD_GET_FW_VERSION             0xb0
 #define CMD_START                      0xb1
 #define CMD_GET_REVID_VERSION          0xb2
 
+#define CMD_START_FLAGS_CLK_CTL2_POS   4
 #define CMD_START_FLAGS_WIDE_POS       5
 #define CMD_START_FLAGS_CLK_SRC_POS    6
 
+#define CMD_START_FLAGS_CLK_CTL2       (1 << CMD_START_FLAGS_CLK_CTL2)
 #define CMD_START_FLAGS_SAMPLE_8BIT    (0 << CMD_START_FLAGS_WIDE_POS)
 #define CMD_START_FLAGS_SAMPLE_16BIT   (1 << CMD_START_FLAGS_WIDE_POS)
 
 #define CMD_START_FLAGS_CLK_30MHZ      (0 << CMD_START_FLAGS_CLK_SRC_POS)
 #define CMD_START_FLAGS_CLK_48MHZ      (1 << CMD_START_FLAGS_CLK_SRC_POS)
 
-/* Modified protocol commands & flags used by DSLogic */
-#define CMD_DSLOGIC_GET_REVID_VERSION  0xb1
-#define CMD_DSLOGIC_START      0xb2
-#define CMD_DSLOGIC_CONFIG     0xb3
-#define CMD_DSLOGIC_SETTING    0xb4
-
-#define CMD_START_FLAGS_DSLOGIC_STOP_POS       7
-#define CMD_START_FLAGS_DSLOGIC_STOP (1 << CMD_START_FLAGS_DSLOGIC_STOP_POS)
-
 struct fx2lafw_profile {
        uint16_t vid;
        uint16_t pid;
@@ -128,6 +125,9 @@ struct dev_context {
 
        /* Is this a DSLogic? */
        gboolean dslogic;
+       uint16_t dslogic_mode;
+       int dslogic_external_clock;
+       gboolean trigger_en;
 };
 
 SR_PRIV int fx2lafw_command_start_acquisition(const struct sr_dev_inst *sdi);
@@ -136,11 +136,9 @@ SR_PRIV gboolean match_manuf_prod(libusb_device *dev, const char *manufacturer,
 SR_PRIV int fx2lafw_dev_open(struct sr_dev_inst *sdi, struct sr_dev_driver *di);
 SR_PRIV struct dev_context *fx2lafw_dev_new(void);
 SR_PRIV void fx2lafw_abort_acquisition(struct dev_context *devc);
-SR_PRIV void fx2lafw_receive_transfer(struct libusb_transfer *transfer);
+SR_PRIV void LIBUSB_CALL fx2lafw_receive_transfer(struct libusb_transfer *transfer);
 SR_PRIV size_t fx2lafw_get_buffer_size(struct dev_context *devc);
 SR_PRIV unsigned int fx2lafw_get_number_of_transfers(struct dev_context *devc);
 SR_PRIV unsigned int fx2lafw_get_timeout(struct dev_context *devc);
 
-int dslogic_fpga_firmware_upload(struct libusb_device_handle *hdl,
-               const char *filename);
 #endif