xref: /openbmc/linux/drivers/crypto/atmel-tdes-regs.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
213802005SNicolas Royer #ifndef __ATMEL_TDES_REGS_H__
313802005SNicolas Royer #define __ATMEL_TDES_REGS_H__
413802005SNicolas Royer 
513802005SNicolas Royer #define TDES_CR			0x00
613802005SNicolas Royer #define TDES_CR_START			(1 << 0)
713802005SNicolas Royer #define TDES_CR_SWRST			(1 << 8)
813802005SNicolas Royer #define TDES_CR_LOADSEED		(1 << 16)
913802005SNicolas Royer 
1013802005SNicolas Royer #define	TDES_MR			0x04
1113802005SNicolas Royer #define TDES_MR_CYPHER_DEC		(0 << 0)
1213802005SNicolas Royer #define TDES_MR_CYPHER_ENC		(1 << 0)
1313802005SNicolas Royer #define TDES_MR_TDESMOD_MASK	(0x3 << 1)
1413802005SNicolas Royer #define TDES_MR_TDESMOD_DES		(0x0 << 1)
1513802005SNicolas Royer #define TDES_MR_TDESMOD_TDES	(0x1 << 1)
1613802005SNicolas Royer #define TDES_MR_TDESMOD_XTEA	(0x2 << 1)
1713802005SNicolas Royer #define TDES_MR_KEYMOD_3KEY		(0 << 4)
1813802005SNicolas Royer #define TDES_MR_KEYMOD_2KEY		(1 << 4)
1913802005SNicolas Royer #define TDES_MR_SMOD_MASK		(0x3 << 8)
2013802005SNicolas Royer #define TDES_MR_SMOD_MANUAL		(0x0 << 8)
2113802005SNicolas Royer #define TDES_MR_SMOD_AUTO		(0x1 << 8)
2213802005SNicolas Royer #define TDES_MR_SMOD_PDC		(0x2 << 8)
2313802005SNicolas Royer #define TDES_MR_OPMOD_MASK		(0x3 << 12)
2413802005SNicolas Royer #define TDES_MR_OPMOD_ECB		(0x0 << 12)
2513802005SNicolas Royer #define TDES_MR_OPMOD_CBC		(0x1 << 12)
2613802005SNicolas Royer #define TDES_MR_OPMOD_OFB		(0x2 << 12)
2713802005SNicolas Royer #define TDES_MR_OPMOD_CFB		(0x3 << 12)
2813802005SNicolas Royer #define TDES_MR_LOD				(0x1 << 15)
2913802005SNicolas Royer #define TDES_MR_CFBS_MASK		(0x3 << 16)
3013802005SNicolas Royer #define TDES_MR_CFBS_64b		(0x0 << 16)
3113802005SNicolas Royer #define TDES_MR_CFBS_32b		(0x1 << 16)
3213802005SNicolas Royer #define TDES_MR_CFBS_16b		(0x2 << 16)
3313802005SNicolas Royer #define TDES_MR_CFBS_8b			(0x3 << 16)
3413802005SNicolas Royer #define TDES_MR_CKEY_MASK		(0xF << 20)
3513802005SNicolas Royer #define TDES_MR_CKEY_OFFSET		20
3613802005SNicolas Royer #define TDES_MR_CTYPE_MASK		(0x3F << 24)
3713802005SNicolas Royer #define TDES_MR_CTYPE_OFFSET	24
3813802005SNicolas Royer 
3913802005SNicolas Royer #define	TDES_IER		0x10
4013802005SNicolas Royer #define	TDES_IDR		0x14
4113802005SNicolas Royer #define	TDES_IMR		0x18
4213802005SNicolas Royer #define	TDES_ISR		0x1C
4313802005SNicolas Royer #define TDES_INT_DATARDY		(1 << 0)
4413802005SNicolas Royer #define TDES_INT_ENDRX			(1 << 1)
4513802005SNicolas Royer #define TDES_INT_ENDTX			(1 << 2)
4613802005SNicolas Royer #define TDES_INT_RXBUFF			(1 << 3)
4713802005SNicolas Royer #define TDES_INT_TXBUFE			(1 << 4)
4813802005SNicolas Royer #define TDES_INT_URAD			(1 << 8)
4913802005SNicolas Royer #define TDES_ISR_URAT_MASK		(0x3 << 12)
5013802005SNicolas Royer #define TDES_ISR_URAT_IDR		(0x0 << 12)
5113802005SNicolas Royer #define TDES_ISR_URAT_ODR		(0x1 << 12)
5213802005SNicolas Royer #define TDES_ISR_URAT_MR		(0x2 << 12)
5313802005SNicolas Royer #define TDES_ISR_URAT_WO		(0x3 << 12)
5413802005SNicolas Royer 
5513802005SNicolas Royer 
5613802005SNicolas Royer #define	TDES_KEY1W1R	0x20
5713802005SNicolas Royer #define	TDES_KEY1W2R	0x24
5813802005SNicolas Royer #define	TDES_KEY2W1R	0x28
5913802005SNicolas Royer #define	TDES_KEY2W2R	0x2C
6013802005SNicolas Royer #define	TDES_KEY3W1R	0x30
6113802005SNicolas Royer #define	TDES_KEY3W2R	0x34
6213802005SNicolas Royer #define	TDES_IDATA1R	0x40
6313802005SNicolas Royer #define	TDES_IDATA2R	0x44
6413802005SNicolas Royer #define	TDES_ODATA1R	0x50
6513802005SNicolas Royer #define	TDES_ODATA2R	0x54
6613802005SNicolas Royer #define	TDES_IV1R		0x60
6713802005SNicolas Royer #define	TDES_IV2R		0x64
6813802005SNicolas Royer 
6913802005SNicolas Royer #define	TDES_XTEARNDR	0x70
7013802005SNicolas Royer #define	TDES_XTEARNDR_XTEA_RNDS_MASK	(0x3F << 0)
7113802005SNicolas Royer #define	TDES_XTEARNDR_XTEA_RNDS_OFFSET	0
7213802005SNicolas Royer 
731f858040SNicolas Royer #define	TDES_HW_VERSION	0xFC
741f858040SNicolas Royer 
7513802005SNicolas Royer #define TDES_RPR		0x100
7613802005SNicolas Royer #define TDES_RCR		0x104
7713802005SNicolas Royer #define TDES_TPR		0x108
7813802005SNicolas Royer #define TDES_TCR		0x10C
7913802005SNicolas Royer #define TDES_RNPR		0x118
8013802005SNicolas Royer #define TDES_RNCR		0x11C
8113802005SNicolas Royer #define TDES_TNPR		0x118
8213802005SNicolas Royer #define TDES_TNCR		0x11C
8313802005SNicolas Royer #define TDES_PTCR		0x120
8413802005SNicolas Royer #define TDES_PTCR_RXTEN			(1 << 0)
8513802005SNicolas Royer #define TDES_PTCR_RXTDIS		(1 << 1)
8613802005SNicolas Royer #define TDES_PTCR_TXTEN			(1 << 8)
8713802005SNicolas Royer #define TDES_PTCR_TXTDIS		(1 << 9)
8813802005SNicolas Royer #define TDES_PTSR		0x124
8913802005SNicolas Royer #define TDES_PTSR_RXTEN			(1 << 0)
9013802005SNicolas Royer #define TDES_PTSR_TXTEN			(1 << 8)
9113802005SNicolas Royer 
9213802005SNicolas Royer #endif /* __ATMEL_TDES_REGS_H__ */
93