atmel-sha-regs.h 2.3 KB

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