struct dev_context *devc;
struct clockselect_50 clockselect;
int frac, triggerpin, ret;
- uint8_t triggerselect = 0;
+ uint8_t triggerselect;
struct triggerinout triggerinout_conf;
struct triggerlut lut;
+ uint8_t regval;
if (sdi->status != SR_ST_ACTIVE)
return SR_ERR_DEV_CLOSED;
/* Enter trigger programming mode. */
sigma_set_register(WRITE_TRIGGER_SELECT1, 0x20, devc);
- /* 100 and 200 MHz mode. */
+ triggerselect = 0;
if (devc->cur_samplerate >= SR_MHZ(100)) {
+ /* 100 and 200 MHz mode. */
sigma_set_register(WRITE_TRIGGER_SELECT1, 0x81, devc);
/* Find which pin to trigger on from mask. */
if (devc->trigger.fallingmask)
triggerselect |= 1 << 3;
- /* All other modes. */
} else if (devc->cur_samplerate <= SR_MHZ(50)) {
+ /* All other modes. */
sigma_build_basic_trigger(&lut, devc);
sigma_write_trigger_lut(&lut, devc);
/* Start acqusition. */
gettimeofday(&devc->start_tv, 0);
- sigma_set_register(WRITE_MODE, 0x0d, devc);
+ regval = WMR_TRGRES | WMR_SDRAMWRITEEN;
+#if ASIX_SIGMA_WITH_TRIGGER
+ regval |= WMR_TRGEN;
+#endif
+ sigma_set_register(WRITE_MODE, regval, devc);
std_session_send_df_header(sdi);