# SPDX-License-Identifier: GPL-2.0

config CRYPTO_DEV_HISI_SEC
	tristate "Support for Hisilicon SEC crypto block cipher accelerator"
	select CRYPTO_SKCIPHER
	select CRYPTO_ALGAPI
	select CRYPTO_LIB_DES
	select SG_SPLIT
	depends on ARM64 || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Support for Hisilicon SEC Engine in Hip06 and Hip07

	  To compile this as a module, choose M here: the module
	  will be called hisi_sec.

config CRYPTO_DEV_HISI_SEC2
	tristate "Support for HiSilicon SEC2 crypto block cipher accelerator"
	select CRYPTO_SKCIPHER
	select CRYPTO_ALGAPI
	select CRYPTO_LIB_DES
	select CRYPTO_DEV_HISI_QM
	select CRYPTO_AEAD
	select CRYPTO_AUTHENC
	select CRYPTO_HMAC
	select CRYPTO_SHA1
	select CRYPTO_SHA256
	select CRYPTO_SHA512
	select CRYPTO_SM4_GENERIC
	depends on PCI_MSI
	depends on UACCE || UACCE=n
	depends on ARM64 || (COMPILE_TEST && 64BIT)
	depends on ACPI
	help
	  Support for HiSilicon SEC Engine of version 2 in crypto subsystem.
	  It provides AES, SM4, and 3DES algorithms with ECB
	  CBC, and XTS cipher mode, and AEAD algorithms.

	  To compile this as a module, choose M here: the module
          will be called hisi_sec2.

config CRYPTO_DEV_HISI_QM
	tristate
	depends on ARM64 || COMPILE_TEST
	depends on PCI_MSI
	depends on UACCE || UACCE=n
	depends on ACPI
	help
	  HiSilicon accelerator engines use a common queue management
	  interface. Specific engine driver may use this module.

config CRYPTO_DEV_HISI_ZIP
	tristate "Support for HiSilicon ZIP accelerator"
	depends on PCI_MSI
	depends on ARM64 || (COMPILE_TEST && 64BIT)
	depends on !CPU_BIG_ENDIAN || COMPILE_TEST
	depends on UACCE || UACCE=n
	depends on ACPI
	select CRYPTO_DEV_HISI_QM
	help
	  Support for HiSilicon ZIP Driver

config CRYPTO_DEV_HISI_HPRE
	tristate "Support for HISI HPRE accelerator"
	depends on PCI_MSI
	depends on UACCE || UACCE=n
	depends on ARM64 || (COMPILE_TEST && 64BIT)
	depends on ACPI
	select CRYPTO_DEV_HISI_QM
	select CRYPTO_DH
	select CRYPTO_RSA
	select CRYPTO_CURVE25519
	select CRYPTO_ECDH
	help
	  Support for HiSilicon HPRE(High Performance RSA Engine)
	  accelerator, which can accelerate RSA and DH algorithms.

config CRYPTO_DEV_HISI_TRNG
	tristate "Support for HISI TRNG Driver"
	depends on ARM64 && ACPI
	select HW_RANDOM
	select CRYPTO_RNG
	help
	  Support for HiSilicon TRNG Driver.
