summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Abbott <abbotti@mev.co.uk>2013-10-18 14:40:49 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-10-19 13:47:23 -0700
commit6c661434f98dfe0ad301a4910b6209b0541c0239 (patch)
tree0d317f21046b71246b5d4406b2db01fa23998e42
parentf8d939e411f57a5facdfba66be2404f5ed238e30 (diff)
staging: comedi: s626: clock polarity and direction are the same
When setting up an encoder channel, the setup value includes a polarity and direction, but these are the same bit of the setup value: S626_CLKPOL_POS = S626_CNTDIR_UP = 0 S626_CLKPOL_NEG = S626_CNTDIR_DOWN = 1 In the construction of the setup value, both the CLKPOL and the CNTDIR constants are shifted by the same amount `S626_BF_CLKPOL`. Only the following combinations are set up currently (this may change if user configuration of the encoder is implemented properly): (S626_CLKPOL_POS << S626_BF_CLKPOL) (S626_CLKPOL_POS << S626_BF_CLKPOL) | (S626_CNTDIR_UP << S626_BF_CLKPOL) (S626_CLKPOL_POS << S626_BF_CLKPOL) | (S626_CNTDIR_DOWN << S626_BF_CLKPOL) The first two are used in "counter" mode and is equivalent to: (S626_CLKPOL_POS << S626_BF_CLKPOL) The last one is used in "timer" mode and is equivalent to: (S626_CNTDIR_DOWN << S626_BF_CLKPOL) Use the shorter equivalents. The comments in "s626.h" indicate that the 'CLKPOL' constants make more sense for the "counter" mode (when the encoders operate as up/down counters) and the 'CNTDIR' constants make more sense for the "timer" mode. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/comedi/drivers/s626.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/staging/comedi/drivers/s626.c b/drivers/staging/comedi/drivers/s626.c
index d9aba7ce862d..dd138a095624 100644
--- a/drivers/staging/comedi/drivers/s626.c
+++ b/drivers/staging/comedi/drivers/s626.c
@@ -2036,8 +2036,6 @@ static void s626_timer_load(struct comedi_device *dev,
(S626_INDXSRC_SOFT << S626_BF_INDXSRC) |
/* Operating mode is Timer. */
(S626_CLKSRC_TIMER << S626_BF_CLKSRC) |
- /* Active high clock. */
- (S626_CLKPOL_POS << S626_BF_CLKPOL) |
/* Count direction is Down. */
(S626_CNTDIR_DOWN << S626_BF_CLKPOL) |
/* Clock multiplier is 1x. */
@@ -2528,8 +2526,6 @@ static void s626_counters_init(struct comedi_device *dev)
(S626_CLKSRC_COUNTER << S626_BF_CLKSRC) |
/* Active high clock. */
(S626_CLKPOL_POS << S626_BF_CLKPOL) |
- /* Count direction is up. */
- (S626_CNTDIR_UP << S626_BF_CLKPOL) |
/* Clock multiplier is 1x. */
(S626_CLKMULT_1X << S626_BF_CLKMULT) |
/* Enabled by index */