summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortangweikang <[email protected]>2019-08-12 13:47:03 +0800
committertangweikang <[email protected]>2019-08-12 13:47:03 +0800
commit2b9a9e0163a833ca426109738507442d31a089fb (patch)
treef48bcd2ee7832228a081930dd12569aac3829624
parente5dc60e3cfc5551c18308dd4d2dad1069c6e5f2f (diff)
[components][drivers] update : Move clear_count() function from ops->control() to ops->clear_count()
-rw-r--r--components/drivers/include/drivers/encoder.h1
-rw-r--r--components/drivers/misc/encoder.c4
2 files changed, 4 insertions, 1 deletions
diff --git a/components/drivers/include/drivers/encoder.h b/components/drivers/include/drivers/encoder.h
index 57cb47e6fb..f338f9e845 100644
--- a/components/drivers/include/drivers/encoder.h
+++ b/components/drivers/include/drivers/encoder.h
@@ -38,6 +38,7 @@ struct rt_encoder_ops
{
rt_err_t (*init)(struct rt_encoder_device *encoder);
rt_int32_t (*get_count)(struct rt_encoder_device *encoder);
+ rt_err_t (*clear_count)(struct rt_encoder_device *encoder);
rt_err_t (*control)(struct rt_encoder_device *encoder, rt_uint32_t cmd, void *args);
};
diff --git a/components/drivers/misc/encoder.c b/components/drivers/misc/encoder.c
index ec799bd5fe..e9e1da0f40 100644
--- a/components/drivers/misc/encoder.c
+++ b/components/drivers/misc/encoder.c
@@ -77,12 +77,14 @@ static rt_err_t rt_encoder_control(struct rt_device *dev, int cmd, void *args)
encoder = (struct rt_encoder_device *)dev;
switch (cmd)
{
+ case ENCODER_CMD_CLEAR_COUNT:
+ result = encoder->ops->clear_count(encoder);
+ break;
case ENCODER_CMD_GET_TYPE:
*(enum rt_encoder_type *)args = encoder->type;
break;
case ENCODER_CMD_ENABLE:
case ENCODER_CMD_DISABLE:
- case ENCODER_CMD_CLEAR_COUNT:
result = encoder->ops->control(encoder, cmd, args);
break;
default: