0001
0002 #ifndef __ATMEL_SHA_REGS_H__
0003 #define __ATMEL_SHA_REGS_H__
0004
0005 #define SHA_REG_DIGEST(x) (0x80 + ((x) * 0x04))
0006 #define SHA_REG_DIN(x) (0x40 + ((x) * 0x04))
0007
0008 #define SHA_CR 0x00
0009 #define SHA_CR_START (1 << 0)
0010 #define SHA_CR_FIRST (1 << 4)
0011 #define SHA_CR_SWRST (1 << 8)
0012 #define SHA_CR_WUIHV (1 << 12)
0013 #define SHA_CR_WUIEHV (1 << 13)
0014
0015 #define SHA_MR 0x04
0016 #define SHA_MR_MODE_MASK (0x3 << 0)
0017 #define SHA_MR_MODE_MANUAL 0x0
0018 #define SHA_MR_MODE_AUTO 0x1
0019 #define SHA_MR_MODE_PDC 0x2
0020 #define SHA_MR_MODE_IDATAR0 0x2
0021 #define SHA_MR_PROCDLY (1 << 4)
0022 #define SHA_MR_UIHV (1 << 5)
0023 #define SHA_MR_UIEHV (1 << 6)
0024 #define SHA_MR_ALGO_MASK GENMASK(10, 8)
0025 #define SHA_MR_ALGO_SHA1 (0 << 8)
0026 #define SHA_MR_ALGO_SHA256 (1 << 8)
0027 #define SHA_MR_ALGO_SHA384 (2 << 8)
0028 #define SHA_MR_ALGO_SHA512 (3 << 8)
0029 #define SHA_MR_ALGO_SHA224 (4 << 8)
0030 #define SHA_MR_HMAC (1 << 11)
0031 #define SHA_MR_DUALBUFF (1 << 16)
0032
0033 #define SHA_FLAGS_ALGO_MASK SHA_MR_ALGO_MASK
0034 #define SHA_FLAGS_SHA1 SHA_MR_ALGO_SHA1
0035 #define SHA_FLAGS_SHA256 SHA_MR_ALGO_SHA256
0036 #define SHA_FLAGS_SHA384 SHA_MR_ALGO_SHA384
0037 #define SHA_FLAGS_SHA512 SHA_MR_ALGO_SHA512
0038 #define SHA_FLAGS_SHA224 SHA_MR_ALGO_SHA224
0039 #define SHA_FLAGS_HMAC SHA_MR_HMAC
0040 #define SHA_FLAGS_HMAC_SHA1 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA1)
0041 #define SHA_FLAGS_HMAC_SHA256 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA256)
0042 #define SHA_FLAGS_HMAC_SHA384 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA384)
0043 #define SHA_FLAGS_HMAC_SHA512 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA512)
0044 #define SHA_FLAGS_HMAC_SHA224 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA224)
0045 #define SHA_FLAGS_MODE_MASK (SHA_FLAGS_HMAC | SHA_FLAGS_ALGO_MASK)
0046
0047 #define SHA_IER 0x10
0048 #define SHA_IDR 0x14
0049 #define SHA_IMR 0x18
0050 #define SHA_ISR 0x1C
0051 #define SHA_INT_DATARDY (1 << 0)
0052 #define SHA_INT_ENDTX (1 << 1)
0053 #define SHA_INT_TXBUFE (1 << 2)
0054 #define SHA_INT_URAD (1 << 8)
0055 #define SHA_ISR_URAT_MASK (0x7 << 12)
0056 #define SHA_ISR_URAT_IDR (0x0 << 12)
0057 #define SHA_ISR_URAT_ODR (0x1 << 12)
0058 #define SHA_ISR_URAT_MR (0x2 << 12)
0059 #define SHA_ISR_URAT_WO (0x5 << 12)
0060
0061 #define SHA_MSR 0x20
0062 #define SHA_BCR 0x30
0063
0064 #define SHA_HW_VERSION 0xFC
0065
0066 #define SHA_TPR 0x108
0067 #define SHA_TCR 0x10C
0068 #define SHA_TNPR 0x118
0069 #define SHA_TNCR 0x11C
0070 #define SHA_PTCR 0x120
0071 #define SHA_PTCR_TXTEN (1 << 8)
0072 #define SHA_PTCR_TXTDIS (1 << 9)
0073 #define SHA_PTSR 0x124
0074 #define SHA_PTSR_TXTEN (1 << 8)
0075
0076 #endif