xref: /openbmc/linux/drivers/crypto/atmel-sha-regs.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2ebc82efaSNicolas Royer #ifndef __ATMEL_SHA_REGS_H__
3ebc82efaSNicolas Royer #define __ATMEL_SHA_REGS_H__
4ebc82efaSNicolas Royer 
5ebc82efaSNicolas Royer #define SHA_REG_DIGEST(x)		(0x80 + ((x) * 0x04))
6ebc82efaSNicolas Royer #define SHA_REG_DIN(x)			(0x40 + ((x) * 0x04))
7ebc82efaSNicolas Royer 
8ebc82efaSNicolas Royer #define SHA_CR				0x00
9ebc82efaSNicolas Royer #define SHA_CR_START			(1 << 0)
10ebc82efaSNicolas Royer #define SHA_CR_FIRST			(1 << 4)
11ebc82efaSNicolas Royer #define SHA_CR_SWRST			(1 << 8)
127cee3508SCyrille Pitchen #define SHA_CR_WUIHV			(1 << 12)
137cee3508SCyrille Pitchen #define SHA_CR_WUIEHV			(1 << 13)
14ebc82efaSNicolas Royer 
15ebc82efaSNicolas Royer #define SHA_MR				0x04
16ebc82efaSNicolas Royer #define SHA_MR_MODE_MASK		(0x3 << 0)
17ebc82efaSNicolas Royer #define SHA_MR_MODE_MANUAL		0x0
18ebc82efaSNicolas Royer #define SHA_MR_MODE_AUTO		0x1
19ebc82efaSNicolas Royer #define SHA_MR_MODE_PDC			0x2
20563c47dfSCyrille Pitchen #define SHA_MR_MODE_IDATAR0		0x2
21ebc82efaSNicolas Royer #define SHA_MR_PROCDLY			(1 << 4)
227cee3508SCyrille Pitchen #define SHA_MR_UIHV			(1 << 5)
237cee3508SCyrille Pitchen #define SHA_MR_UIEHV			(1 << 6)
24f07cebadSCyrille Pitchen #define SHA_MR_ALGO_MASK		GENMASK(10, 8)
25ebc82efaSNicolas Royer #define SHA_MR_ALGO_SHA1		(0 << 8)
26ebc82efaSNicolas Royer #define SHA_MR_ALGO_SHA256		(1 << 8)
27d4905b38SNicolas Royer #define SHA_MR_ALGO_SHA384		(2 << 8)
28d4905b38SNicolas Royer #define SHA_MR_ALGO_SHA512		(3 << 8)
29d4905b38SNicolas Royer #define SHA_MR_ALGO_SHA224		(4 << 8)
3081d8750bSCyrille Pitchen #define SHA_MR_HMAC			(1 << 11)
31d4905b38SNicolas Royer #define	SHA_MR_DUALBUFF			(1 << 16)
32ebc82efaSNicolas Royer 
3389a82ef8SCyrille Pitchen #define SHA_FLAGS_ALGO_MASK	SHA_MR_ALGO_MASK
3489a82ef8SCyrille Pitchen #define SHA_FLAGS_SHA1		SHA_MR_ALGO_SHA1
3589a82ef8SCyrille Pitchen #define SHA_FLAGS_SHA256	SHA_MR_ALGO_SHA256
3689a82ef8SCyrille Pitchen #define SHA_FLAGS_SHA384	SHA_MR_ALGO_SHA384
3789a82ef8SCyrille Pitchen #define SHA_FLAGS_SHA512	SHA_MR_ALGO_SHA512
3889a82ef8SCyrille Pitchen #define SHA_FLAGS_SHA224	SHA_MR_ALGO_SHA224
3989a82ef8SCyrille Pitchen #define SHA_FLAGS_HMAC		SHA_MR_HMAC
4089a82ef8SCyrille Pitchen #define SHA_FLAGS_HMAC_SHA1	(SHA_FLAGS_HMAC | SHA_FLAGS_SHA1)
4189a82ef8SCyrille Pitchen #define SHA_FLAGS_HMAC_SHA256	(SHA_FLAGS_HMAC | SHA_FLAGS_SHA256)
4289a82ef8SCyrille Pitchen #define SHA_FLAGS_HMAC_SHA384	(SHA_FLAGS_HMAC | SHA_FLAGS_SHA384)
4389a82ef8SCyrille Pitchen #define SHA_FLAGS_HMAC_SHA512	(SHA_FLAGS_HMAC | SHA_FLAGS_SHA512)
4489a82ef8SCyrille Pitchen #define SHA_FLAGS_HMAC_SHA224	(SHA_FLAGS_HMAC | SHA_FLAGS_SHA224)
4589a82ef8SCyrille Pitchen #define SHA_FLAGS_MODE_MASK	(SHA_FLAGS_HMAC | SHA_FLAGS_ALGO_MASK)
4689a82ef8SCyrille Pitchen 
47ebc82efaSNicolas Royer #define SHA_IER				0x10
48ebc82efaSNicolas Royer #define SHA_IDR				0x14
49ebc82efaSNicolas Royer #define SHA_IMR				0x18
50ebc82efaSNicolas Royer #define SHA_ISR				0x1C
51ebc82efaSNicolas Royer #define SHA_INT_DATARDY			(1 << 0)
52ebc82efaSNicolas Royer #define SHA_INT_ENDTX			(1 << 1)
53ebc82efaSNicolas Royer #define SHA_INT_TXBUFE			(1 << 2)
54ebc82efaSNicolas Royer #define SHA_INT_URAD			(1 << 8)
55ebc82efaSNicolas Royer #define SHA_ISR_URAT_MASK		(0x7 << 12)
56ebc82efaSNicolas Royer #define SHA_ISR_URAT_IDR		(0x0 << 12)
57ebc82efaSNicolas Royer #define SHA_ISR_URAT_ODR		(0x1 << 12)
58ebc82efaSNicolas Royer #define SHA_ISR_URAT_MR			(0x2 << 12)
59ebc82efaSNicolas Royer #define SHA_ISR_URAT_WO			(0x5 << 12)
60ebc82efaSNicolas Royer 
6181d8750bSCyrille Pitchen #define SHA_MSR				0x20
6281d8750bSCyrille Pitchen #define SHA_BCR				0x30
6381d8750bSCyrille Pitchen 
64d4905b38SNicolas Royer #define	SHA_HW_VERSION		0xFC
65d4905b38SNicolas Royer 
66ebc82efaSNicolas Royer #define SHA_TPR				0x108
67ebc82efaSNicolas Royer #define SHA_TCR				0x10C
68ebc82efaSNicolas Royer #define SHA_TNPR			0x118
69ebc82efaSNicolas Royer #define SHA_TNCR			0x11C
70ebc82efaSNicolas Royer #define SHA_PTCR			0x120
71ebc82efaSNicolas Royer #define SHA_PTCR_TXTEN		(1 << 8)
72ebc82efaSNicolas Royer #define SHA_PTCR_TXTDIS		(1 << 9)
73ebc82efaSNicolas Royer #define SHA_PTSR			0x124
74ebc82efaSNicolas Royer #define SHA_PTSR_TXTEN		(1 << 8)
75ebc82efaSNicolas Royer 
76ebc82efaSNicolas Royer #endif /* __ATMEL_SHA_REGS_H__ */
77