diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-23 18:59:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-23 18:59:10 -0400 |
commit | 0bd3fbd4abeafa19ae0302d25194468b022d1a56 (patch) | |
tree | 1fc34b25666c97b85dfb7199e48b2e074ffde264 /drivers/crypto/ux500/cryp/cryp_p.h | |
parent | 0b87da68a0f0a7bf7f7446cf64f92e672bd68ef8 (diff) | |
parent | ef45b834319f8a18f257a40ba4bce6b829ef1708 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto updates from Herbert Xu:
- New cipher/hash driver for ARM ux500.
- Code clean-up for aesni-intel.
- Misc fixes.
Fixed up conflicts in arch/arm/mach-ux500/devices-common.h, where quite
frankly some of it made no sense at all (the pull brought in a
declaration for the dbx500_add_platform_device_noirq() function, which
neither exists nor is used anywhere).
Also some trivial add-add context conflicts in the Kconfig file in
drivers/{char/hw_random,crypto}/
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
crypto: aesni-intel - move more common code to ablk_init_common
crypto: aesni-intel - use crypto_[un]register_algs
crypto: ux500 - Cleanup hardware identification
crypto: ux500 - Update DMA handling for 3.4
mach-ux500: crypto - core support for CRYP/HASH module.
crypto: ux500 - Add driver for HASH hardware
crypto: ux500 - Add driver for CRYP hardware
hwrng: Kconfig - modify default state for atmel-rng driver
hwrng: omap - use devm_request_and_ioremap
crypto: crypto4xx - move up err_request_irq label
crypto, xor: Sanitize checksumming function selection output
crypto: caam - add backward compatible string sec4.0
Diffstat (limited to 'drivers/crypto/ux500/cryp/cryp_p.h')
-rw-r--r-- | drivers/crypto/ux500/cryp/cryp_p.h | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/drivers/crypto/ux500/cryp/cryp_p.h b/drivers/crypto/ux500/cryp/cryp_p.h new file mode 100644 index 000000000000..6dcffe15c2bc --- /dev/null +++ b/drivers/crypto/ux500/cryp/cryp_p.h | |||
@@ -0,0 +1,123 @@ | |||
1 | /** | ||
2 | * Copyright (C) ST-Ericsson SA 2010 | ||
3 | * Author: Shujuan Chen <shujuan.chen@stericsson.com> for ST-Ericsson. | ||
4 | * Author: Jonas Linde <jonas.linde@stericsson.com> for ST-Ericsson. | ||
5 | * Author: Joakim Bech <joakim.xx.bech@stericsson.com> for ST-Ericsson. | ||
6 | * Author: Berne Hebark <berne.herbark@stericsson.com> for ST-Ericsson. | ||
7 | * Author: Niklas Hernaeus <niklas.hernaeus@stericsson.com> for ST-Ericsson. | ||
8 | * License terms: GNU General Public License (GPL) version 2 | ||
9 | */ | ||
10 | |||
11 | #ifndef _CRYP_P_H_ | ||
12 | #define _CRYP_P_H_ | ||
13 | |||
14 | #include <linux/io.h> | ||
15 | #include <linux/bitops.h> | ||
16 | |||
17 | #include "cryp.h" | ||
18 | #include "cryp_irqp.h" | ||
19 | |||
20 | /** | ||
21 | * Generic Macros | ||
22 | */ | ||
23 | #define CRYP_SET_BITS(reg_name, mask) \ | ||
24 | writel_relaxed((readl_relaxed(reg_name) | mask), reg_name) | ||
25 | |||
26 | #define CRYP_WRITE_BIT(reg_name, val, mask) \ | ||
27 | writel_relaxed(((readl_relaxed(reg_name) & ~(mask)) |\ | ||
28 | ((val) & (mask))), reg_name) | ||
29 | |||
30 | #define CRYP_TEST_BITS(reg_name, val) \ | ||
31 | (readl_relaxed(reg_name) & (val)) | ||
32 | |||
33 | #define CRYP_PUT_BITS(reg, val, shift, mask) \ | ||
34 | writel_relaxed(((readl_relaxed(reg) & ~(mask)) | \ | ||
35 | (((u32)val << shift) & (mask))), reg) | ||
36 | |||
37 | /** | ||
38 | * CRYP specific Macros | ||
39 | */ | ||
40 | #define CRYP_PERIPHERAL_ID0 0xE3 | ||
41 | #define CRYP_PERIPHERAL_ID1 0x05 | ||
42 | |||
43 | #define CRYP_PERIPHERAL_ID2_DB8500 0x28 | ||
44 | #define CRYP_PERIPHERAL_ID3 0x00 | ||
45 | |||
46 | #define CRYP_PCELL_ID0 0x0D | ||
47 | #define CRYP_PCELL_ID1 0xF0 | ||
48 | #define CRYP_PCELL_ID2 0x05 | ||
49 | #define CRYP_PCELL_ID3 0xB1 | ||
50 | |||
51 | /** | ||
52 | * CRYP register default values | ||
53 | */ | ||
54 | #define MAX_DEVICE_SUPPORT 2 | ||
55 | |||
56 | /* Priv set, keyrden set and datatype 8bits swapped set as default. */ | ||
57 | #define CRYP_CR_DEFAULT 0x0482 | ||
58 | #define CRYP_DMACR_DEFAULT 0x0 | ||
59 | #define CRYP_IMSC_DEFAULT 0x0 | ||
60 | #define CRYP_DIN_DEFAULT 0x0 | ||
61 | #define CRYP_DOUT_DEFAULT 0x0 | ||
62 | #define CRYP_KEY_DEFAULT 0x0 | ||
63 | #define CRYP_INIT_VECT_DEFAULT 0x0 | ||
64 | |||
65 | /** | ||
66 | * CRYP Control register specific mask | ||
67 | */ | ||
68 | #define CRYP_CR_SECURE_MASK BIT(0) | ||
69 | #define CRYP_CR_PRLG_MASK BIT(1) | ||
70 | #define CRYP_CR_ALGODIR_MASK BIT(2) | ||
71 | #define CRYP_CR_ALGOMODE_MASK (BIT(5) | BIT(4) | BIT(3)) | ||
72 | #define CRYP_CR_DATATYPE_MASK (BIT(7) | BIT(6)) | ||
73 | #define CRYP_CR_KEYSIZE_MASK (BIT(9) | BIT(8)) | ||
74 | #define CRYP_CR_KEYRDEN_MASK BIT(10) | ||
75 | #define CRYP_CR_KSE_MASK BIT(11) | ||
76 | #define CRYP_CR_START_MASK BIT(12) | ||
77 | #define CRYP_CR_INIT_MASK BIT(13) | ||
78 | #define CRYP_CR_FFLUSH_MASK BIT(14) | ||
79 | #define CRYP_CR_CRYPEN_MASK BIT(15) | ||
80 | #define CRYP_CR_CONTEXT_SAVE_MASK (CRYP_CR_SECURE_MASK |\ | ||
81 | CRYP_CR_PRLG_MASK |\ | ||
82 | CRYP_CR_ALGODIR_MASK |\ | ||
83 | CRYP_CR_ALGOMODE_MASK |\ | ||
84 | CRYP_CR_DATATYPE_MASK |\ | ||
85 | CRYP_CR_KEYSIZE_MASK |\ | ||
86 | CRYP_CR_KEYRDEN_MASK |\ | ||
87 | CRYP_CR_DATATYPE_MASK) | ||
88 | |||
89 | |||
90 | #define CRYP_SR_INFIFO_READY_MASK (BIT(0) | BIT(1)) | ||
91 | #define CRYP_SR_IFEM_MASK BIT(0) | ||
92 | #define CRYP_SR_BUSY_MASK BIT(4) | ||
93 | |||
94 | /** | ||
95 | * Bit position used while setting bits in register | ||
96 | */ | ||
97 | #define CRYP_CR_PRLG_POS 1 | ||
98 | #define CRYP_CR_ALGODIR_POS 2 | ||
99 | #define CRYP_CR_ALGOMODE_POS 3 | ||
100 | #define CRYP_CR_DATATYPE_POS 6 | ||
101 | #define CRYP_CR_KEYSIZE_POS 8 | ||
102 | #define CRYP_CR_KEYRDEN_POS 10 | ||
103 | #define CRYP_CR_KSE_POS 11 | ||
104 | #define CRYP_CR_START_POS 12 | ||
105 | #define CRYP_CR_INIT_POS 13 | ||
106 | #define CRYP_CR_CRYPEN_POS 15 | ||
107 | |||
108 | #define CRYP_SR_BUSY_POS 4 | ||
109 | |||
110 | /** | ||
111 | * CRYP PCRs------PC_NAND control register | ||
112 | * BIT_MASK | ||
113 | */ | ||
114 | #define CRYP_DMA_REQ_MASK (BIT(1) | BIT(0)) | ||
115 | #define CRYP_DMA_REQ_MASK_POS 0 | ||
116 | |||
117 | |||
118 | struct cryp_system_context { | ||
119 | /* CRYP Register structure */ | ||
120 | struct cryp_register *p_cryp_reg[MAX_DEVICE_SUPPORT]; | ||
121 | }; | ||
122 | |||
123 | #endif | ||