diff options
Diffstat (limited to 'arch/arm/include/asm/arch-npcm8xx/sha.h')
-rw-r--r-- | arch/arm/include/asm/arch-npcm8xx/sha.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/arch/arm/include/asm/arch-npcm8xx/sha.h b/arch/arm/include/asm/arch-npcm8xx/sha.h new file mode 100644 index 0000000000..ec0ec9ce1f --- /dev/null +++ b/arch/arm/include/asm/arch-npcm8xx/sha.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ + +#ifndef _NPCM_SHA_H_ +#define _NPCM_SHA_H_ + +#define HASH_DIG_H_NUM 8 + +/* SHA type */ +enum npcm_sha_type { + npcm_sha_type_sha2 = 0, + npcm_sha_type_sha1, + npcm_sha_type_num +}; + +struct npcm_sha_regs { + unsigned int hash_data_in; + unsigned char hash_ctr_sts; + unsigned char reserved_0[0x03]; + unsigned char hash_cfg; + unsigned char reserved_1[0x03]; + unsigned char hash_ver; + unsigned char reserved_2[0x13]; + unsigned int hash_dig[HASH_DIG_H_NUM]; +}; + +#define HASH_CTR_STS_SHA_EN BIT(0) +#define HASH_CTR_STS_SHA_BUSY BIT(1) +#define HASH_CTR_STS_SHA_RST BIT(2) +#define HASH_CFG_SHA1_SHA2 BIT(0) + +int npcm_sha_calc(u8 type, const u8 *buf, u32 len, u8 *digest); +int npcm_sha_selftest(u8 type); + +#endif |