diff options
author | Andreas Fritiofson <andreas.fritiofson@gmail.com> | 2014-02-17 00:27:09 +0100 |
---|---|---|
committer | Andreas Fritiofson <andreas.fritiofson@gmail.com> | 2014-06-28 09:27:19 +0000 |
commit | 36772a7ed0c31a99c721d1ea9131a8ecc56a263d (patch) | |
tree | fe43ec6bfe5fa5a15f1733410d56b8e0c9db456c /src/jtag/swd.h | |
parent | 0e95ec4070258649f2638780581f61a1082d171c (diff) |
swd: Improve parity calculation and move it to types.h
It could be reused by SWD drivers and in other places.
Change-Id: Ieed0cf70c111a73d3a42ed59f46a0cdd177a73d5
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/1957
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Diffstat (limited to 'src/jtag/swd.h')
-rw-r--r-- | src/jtag/swd.h | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/src/jtag/swd.h b/src/jtag/swd.h index c628fa84..b75a83e3 100644 --- a/src/jtag/swd.h +++ b/src/jtag/swd.h @@ -32,17 +32,6 @@ #define SWD_CMD_PARK (0 << 7) /* not driven by host (pull high) */ /* followed by TRN, 3-bits of ACK, TRN */ -/* pbit16 holds precomputed parity bits for each nibble */ -#define pbit(parity, nibble) ((parity) << (nibble)) - -static const uint16_t pbit16 = - pbit(0, 0) | pbit(1, 1) | pbit(1, 2) | pbit(0, 3) - | pbit(1, 4) | pbit(0, 5) | pbit(0, 6) | pbit(1, 7) - | pbit(1, 8) | pbit(0, 9) | pbit(0, 0xa) | pbit(1, 0xb) - | pbit(0, 0xc) | pbit(1, 0xd) | pbit(1, 0xe) | pbit(0, 0xf); - -#define nibble_parity(nibble) (pbit16 & pbit(1, (nibble))) - /** * Construct a "cmd" byte, in lSB bit order, which swd_driver.read_reg() * and swd_driver.write_reg() methods will use directly. @@ -54,7 +43,7 @@ static inline uint8_t swd_cmd(bool is_read, bool is_ap, uint8_t regnum) | ((regnum & 0xc) << 1); /* 8 cmd bits 4:1 may be set */ - if (nibble_parity(cmd >> 1)) + if (parity_u32(cmd)) cmd |= SWD_CMD_PARITY; /* driver handles START, STOP, and TRN */ |