+ uint32_t devopts_cg[MAX_DEVOPTS_CG];
+ int num_devopts_cg = 0;
+
+ if (!cg) {
+ switch (key) {
+ case SR_CONF_DEVICE_OPTIONS:
+ return STD_CONFIG_LIST(key, data, sdi, cg, NULL, drvopts, devopts);
+ case SR_CONF_SAMPLERATE:
+ *data = std_gvar_samplerates_steps(ARRAY_AND_SIZE(samplerates));
+ break;
+ default:
+ return SR_ERR_NA;
+ }
+ } else {
+ switch (key) {
+ case SR_CONF_DEVICE_OPTIONS:
+ if (bl_acme_get_probe_type(cg) == PROBE_ENRG)
+ devopts_cg[num_devopts_cg++] = HAS_PROBE_FACTOR;
+ if (bl_acme_probe_has_pws(cg))
+ devopts_cg[num_devopts_cg++] = HAS_POWER_OFF;
+
+ *data = std_gvar_array_u32(devopts_cg, num_devopts_cg);
+ break;
+ default:
+ return SR_ERR_NA;
+ }
+ }