/* 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