atmel-sha-regs.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __ATMEL_SHA_REGS_H__
  3. #define __ATMEL_SHA_REGS_H__
  4. #define SHA_REG_DIGEST(x) (0x80 + ((x) * 0x04))
  5. #define SHA_REG_DIN(x) (0x40 + ((x) * 0x04))
  6. #define SHA_CR 0x00
  7. #define SHA_CR_START (1 << 0)
  8. #define SHA_CR_FIRST (1 << 4)
  9. #define SHA_CR_SWRST (1 << 8)
  10. #define SHA_CR_WUIHV (1 << 12)
  11. #define SHA_CR_WUIEHV (1 << 13)
  12. #define SHA_MR 0x04
  13. #define SHA_MR_MODE_MASK (0x3 << 0)
  14. #define SHA_MR_MODE_MANUAL 0x0
  15. #define SHA_MR_MODE_AUTO 0x1
  16. #define SHA_MR_MODE_PDC 0x2
  17. #define SHA_MR_MODE_IDATAR0 0x2
  18. #define SHA_MR_PROCDLY (1 << 4)
  19. #define SHA_MR_UIHV (1 << 5)
  20. #define SHA_MR_UIEHV (1 << 6)
  21. #define SHA_MR_ALGO_MASK GENMASK(10, 8)
  22. #define SHA_MR_ALGO_SHA1 (0 << 8)
  23. #define SHA_MR_ALGO_SHA256 (1 << 8)
  24. #define SHA_MR_ALGO_SHA384 (2 << 8)
  25. #define SHA_MR_ALGO_SHA512 (3 << 8)
  26. #define SHA_MR_ALGO_SHA224 (4 << 8)
  27. #define SHA_MR_HMAC (1 << 11)
  28. #define SHA_MR_DUALBUFF (1 << 16)
  29. #define SHA_FLAGS_ALGO_MASK SHA_MR_ALGO_MASK
  30. #define SHA_FLAGS_SHA1 SHA_MR_ALGO_SHA1
  31. #define SHA_FLAGS_SHA256 SHA_MR_ALGO_SHA256
  32. #define SHA_FLAGS_SHA384 SHA_MR_ALGO_SHA384
  33. #define SHA_FLAGS_SHA512 SHA_MR_ALGO_SHA512
  34. #define SHA_FLAGS_SHA224 SHA_MR_ALGO_SHA224
  35. #define SHA_FLAGS_HMAC SHA_MR_HMAC
  36. #define SHA_FLAGS_HMAC_SHA1 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA1)
  37. #define SHA_FLAGS_HMAC_SHA256 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA256)
  38. #define SHA_FLAGS_HMAC_SHA384 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA384)
  39. #define SHA_FLAGS_HMAC_SHA512 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA512)
  40. #define SHA_FLAGS_HMAC_SHA224 (SHA_FLAGS_HMAC | SHA_FLAGS_SHA224)
  41. #define SHA_FLAGS_MODE_MASK (SHA_FLAGS_HMAC | SHA_FLAGS_ALGO_MASK)
  42. #define SHA_IER 0x10
  43. #define SHA_IDR 0x14
  44. #define SHA_IMR 0x18
  45. #define SHA_ISR 0x1C
  46. #define SHA_INT_DATARDY (1 << 0)
  47. #define SHA_INT_ENDTX (1 << 1)
  48. #define SHA_INT_TXBUFE (1 << 2)
  49. #define SHA_INT_URAD (1 << 8)
  50. #define SHA_ISR_URAT_MASK (0x7 << 12)
  51. #define SHA_ISR_URAT_IDR (0x0 << 12)
  52. #define SHA_ISR_URAT_ODR (0x1 << 12)
  53. #define SHA_ISR_URAT_MR (0x2 << 12)
  54. #define SHA_ISR_URAT_WO (0x5 << 12)
  55. #define SHA_MSR 0x20
  56. #define SHA_BCR 0x30
  57. #define SHA_HW_VERSION 0xFC
  58. #define SHA_TPR 0x108
  59. #define SHA_TCR 0x10C
  60. #define SHA_TNPR 0x118
  61. #define SHA_TNCR 0x11C
  62. #define SHA_PTCR 0x120
  63. #define SHA_PTCR_TXTEN (1 << 8)
  64. #define SHA_PTCR_TXTDIS (1 << 9)
  65. #define SHA_PTSR 0x124
  66. #define SHA_PTSR_TXTEN (1 << 8)
  67. #endif /* __ATMEL_SHA_REGS_H__ */