Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* __ATMEL_SHA_REGS_H__ */