summaryrefslogtreecommitdiff
path: root/include/linux/bitrev.h
diff options
context:
space:
mode:
authorMike Dunn <mikedunn@newsguy.com>2013-04-12 11:59:17 -0700
committerMarek Vasut <marex@denx.de>2013-05-05 23:47:04 +0200
commit0dd9c7a924f9a7b15fdb15d9005fd5506965f49f (patch)
tree710ead4a7e11dcf2e1ff2088c51170fa0589206f /include/linux/bitrev.h
parent5ed6f447af60aabd2669d913f673793c1ce48f47 (diff)
downloadu-boot-imx-0dd9c7a924f9a7b15fdb15d9005fd5506965f49f.zip
u-boot-imx-0dd9c7a924f9a7b15fdb15d9005fd5506965f49f.tar.gz
u-boot-imx-0dd9c7a924f9a7b15fdb15d9005fd5506965f49f.tar.bz2
lib: import bitrev library from the linux kernel
This patch adds the bitrev library from the linux kernel. This is a simple algorithm that uses an 8 bit look-up table to reverse the bits in data types of 8, 16, or 32 bit widths. The docg4 nand flash driver uses it. [port from linux kernel v3.9 commit 7ee32a6d30d1c8a3b7a07a6269da8f0a08662927] [originally added: v2.6.20 by commit a5cfc1ec58a07074dacb6aa8c79eff864c966d12] Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
Diffstat (limited to 'include/linux/bitrev.h')
-rw-r--r--include/linux/bitrev.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/linux/bitrev.h b/include/linux/bitrev.h
new file mode 100644
index 0000000..a61d956
--- /dev/null
+++ b/include/linux/bitrev.h
@@ -0,0 +1,23 @@
+/*
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+ *
+ * Based on bitrev from the Linux kernel, by Akinobu Mita
+ */
+
+#ifndef _LINUX_BITREV_H
+#define _LINUX_BITREV_H
+
+#include <linux/types.h>
+
+extern u8 const byte_rev_table[256];
+
+static inline u8 bitrev8(u8 byte)
+{
+ return byte_rev_table[byte];
+}
+
+u16 bitrev16(u16 in);
+u32 bitrev32(u32 in);
+
+#endif /* _LINUX_BITREV_H */