drivers: sensor: qdec_mcux: update phase bit in register

Update single phase bit in register when changing data->qdec_config.
Otherwise the changed settings has no effect.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
This commit is contained in:
Jeppe Odgaard 2023-07-13 14:42:52 +02:00 committed by Carles Cufí
commit 30a2326d0b

View file

@ -42,6 +42,7 @@ static enc_decoder_work_mode_t int_to_work_mode(int32_t val)
static int qdec_mcux_attr_set(const struct device *dev, enum sensor_channel ch,
enum sensor_attribute attr, const struct sensor_value *val)
{
const struct qdec_mcux_config *config = dev->config;
struct qdec_mcux_data *data = dev->data;
if (ch != SENSOR_CHAN_ROTATION) {
@ -59,6 +60,8 @@ static int qdec_mcux_attr_set(const struct device *dev, enum sensor_channel ch,
case SENSOR_ATTR_QDEC_ENABLE_SINGLE_PHASE:
data->qdec_config.decoderWorkMode =
int_to_work_mode(val->val1);
WRITE_BIT(config->base->CTRL, ENC_CTRL_PH1_SHIFT, val->val1);
return 0;
default:
return -ENOTSUP;