config CRYPTO_DEV_KEEMBAY_OCS_AES_SM4
	tristate "Support for Intel Keem Bay OCS AES/SM4 HW acceleration"
	depends on HAS_IOMEM
	depends on ARCH_KEEMBAY || COMPILE_TEST
	select CRYPTO_SKCIPHER
	select CRYPTO_AEAD
	select CRYPTO_ENGINE
	help
	  Support for Intel Keem Bay Offload and Crypto Subsystem (OCS) AES and
	  SM4 cipher hardware acceleration for use with Crypto API.

	  Provides HW acceleration for the following transformations:
	  cbc(aes), ctr(aes), ccm(aes), gcm(aes), cbc(sm4), ctr(sm4), ccm(sm4)
	  and gcm(sm4).

	  Optionally, support for the following transformations can also be
	  enabled: ecb(aes), cts(cbc(aes)), ecb(sm4) and cts(cbc(sm4)).

config CRYPTO_DEV_KEEMBAY_OCS_AES_SM4_ECB
	bool "Support for Intel Keem Bay OCS AES/SM4 ECB HW acceleration"
	depends on CRYPTO_DEV_KEEMBAY_OCS_AES_SM4
	help
	  Support for Intel Keem Bay Offload and Crypto Subsystem (OCS)
	  AES/SM4 ECB mode hardware acceleration for use with Crypto API.

	  Provides OCS version of ecb(aes) and ecb(sm4)

	  Intel does not recommend use of ECB mode with AES/SM4.

config CRYPTO_DEV_KEEMBAY_OCS_AES_SM4_CTS
	bool "Support for Intel Keem Bay OCS AES/SM4 CTS HW acceleration"
	depends on CRYPTO_DEV_KEEMBAY_OCS_AES_SM4
	help
	  Support for Intel Keem Bay Offload and Crypto Subsystem (OCS)
	  AES/SM4 CBC with CTS mode hardware acceleration for use with
	  Crypto API.

	  Provides OCS version of cts(cbc(aes)) and cts(cbc(sm4)).

	  Intel does not recommend use of CTS mode with AES/SM4.

config CRYPTO_DEV_KEEMBAY_OCS_HCU
	tristate "Support for Intel Keem Bay OCS HCU HW acceleration"
	select CRYPTO_HASH
	select CRYPTO_ENGINE
	depends on HAS_IOMEM
	depends on ARCH_KEEMBAY || COMPILE_TEST
	depends on OF || COMPILE_TEST
	help
	  Support for Intel Keem Bay Offload and Crypto Subsystem (OCS) Hash
	  Control Unit (HCU) hardware acceleration for use with Crypto API.

	  Provides OCS HCU hardware acceleration of sha256, sha384, sha512, and
	  sm3, as well as the HMAC variant of these algorithms.

	  Say Y or M if you're building for the Intel Keem Bay SoC. If compiled
	  as a module, the module will be called keembay-ocs-hcu.

	  If unsure, say N.

config CRYPTO_DEV_KEEMBAY_OCS_HCU_HMAC_SHA224
	bool "Enable sha224 and hmac(sha224) support in Intel Keem Bay OCS HCU"
	depends on CRYPTO_DEV_KEEMBAY_OCS_HCU
	help
	  Enables support for sha224 and hmac(sha224) algorithms in the Intel
	  Keem Bay OCS HCU driver. Intel recommends not to use these
	  algorithms.

	  Provides OCS HCU hardware acceleration of sha224 and hmac(224).

	  If unsure, say N.
