Commit 4abb96c7 authored by Federico Vaga's avatar Federico Vaga

lib: add flag to remove zero-offset

When the ZERO flag is set, the function will remove any zero-offset applied.
This is used to reset the auto-clear status
Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 4b79f254
...@@ -295,9 +295,13 @@ enum adc_offset_auto_clear_flags { ...@@ -295,9 +295,13 @@ enum adc_offset_auto_clear_flags {
ADC_OFFSET_AC_F_SOFTWARE=0x00000004, /**< use software mechanism, ADC_OFFSET_AC_F_SOFTWARE=0x00000004, /**< use software mechanism,
it implies manual it implies manual
configuration */ configuration */
ADC_OFFSET_AC_F_ZERO=0x00000008, /**< it sets the zero-offset to zero;
which means that it removes any
previously set zero-offset. */
__ADC_OFFSET_AC_F_MASK=(ADC_OFFSET_AC_F_MANUAL | __ADC_OFFSET_AC_F_MASK=(ADC_OFFSET_AC_F_MANUAL |
ADC_OFFSET_AC_F_RESTORE | ADC_OFFSET_AC_F_RESTORE |
ADC_OFFSET_AC_F_SOFTWARE), /**< used internally */ ADC_OFFSET_AC_F_SOFTWARE |
ADC_OFFSET_AC_F_ZERO), /**< used internally */
}; };
/** /**
......
...@@ -988,6 +988,14 @@ static int adc_100m14b4cha_offset_auto_clear(struct adc_dev *dev, ...@@ -988,6 +988,14 @@ static int adc_100m14b4cha_offset_auto_clear(struct adc_dev *dev,
int err, err_rst; int err, err_rst;
uint32_t range; uint32_t range;
if (flags & ADC_OFFSET_AC_F_ZERO) {
offset = 0;
return adc_100m14b4cha_config_chn(dev, chan,
__ADC_CONF_CHN_OFFSET_ZERO,
(uint32_t *)&offset,
ADC_CONF_SET);
}
flags |= ADC_OFFSET_AC_F_SOFTWARE; flags |= ADC_OFFSET_AC_F_SOFTWARE;
err = __cfg_offac_save(dev, chan, &tmpcfg, flags); err = __cfg_offac_save(dev, chan, &tmpcfg, flags);
......
...@@ -707,6 +707,9 @@ static int adc_acq_offset_auto_clear(struct adc_dev *adc, ...@@ -707,6 +707,9 @@ static int adc_acq_offset_auto_clear(struct adc_dev *adc,
case 'a': case 'a':
flags |= ADC_OFFSET_AC_F_RESTORE; flags |= ADC_OFFSET_AC_F_RESTORE;
break; break;
case 'z':
flags |= ADC_OFFSET_AC_F_ZERO;
break;
default: default:
fprintf(stderr, fprintf(stderr,
"%s: invalid offset auto-clear mode '%c' (valid modes: {a: automatic, m: manual})", "%s: invalid offset auto-clear mode '%c' (valid modes: {a: automatic, m: manual})",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment