# SPDX-License-Identifier: GPL-2.0-only
config CRYPTO_DEV_CCP_DD
	tristate "Secure Processor device driver"
	depends on CPU_SUP_AMD || ARM64
	default m
	help
	  Provides AMD Secure Processor device driver.
	  If you choose 'M' here, this module will be called ccp.

config CRYPTO_DEV_SP_CCP
	bool "Cryptographic Coprocessor device"
	default y
	depends on CRYPTO_DEV_CCP_DD
	select HW_RANDOM
	select DMA_ENGINE
	select DMADEVICES
	select CRYPTO_SHA1
	select CRYPTO_SHA256
	help
	  Provides the support for AMD Cryptographic Coprocessor (CCP) device
	  which can be used to offload encryption operations such as SHA, AES
	  and more.

config CRYPTO_DEV_CCP_CRYPTO
	tristate "Encryption and hashing offload support"
	default m
	depends on CRYPTO_DEV_CCP_DD
	depends on CRYPTO_DEV_SP_CCP
	select CRYPTO_HASH
	select CRYPTO_SKCIPHER
	select CRYPTO_AUTHENC
	select CRYPTO_RSA
	select CRYPTO_LIB_AES
	help
	  Support for using the cryptographic API with the AMD Cryptographic
	  Coprocessor. This module supports offload of SHA and AES algorithms.
	  If you choose 'M' here, this module will be called ccp_crypto.

config CRYPTO_DEV_SP_PSP
	bool "Platform Security Processor (PSP) device"
	default y
	depends on CRYPTO_DEV_CCP_DD && X86_64
	help
	 Provide support for the AMD Platform Security Processor (PSP).
	 The PSP is a dedicated processor that provides support for key
	 management commands in Secure Encrypted Virtualization (SEV) mode,
	 along with software-based Trusted Execution Environment (TEE) to
	 enable third-party trusted applications.

config CRYPTO_DEV_CCP_DEBUGFS
	bool "Enable CCP Internals in DebugFS"
	default n
	depends on CRYPTO_DEV_SP_CCP
	help
	  Expose CCP device information such as operation statistics, feature
	  information, and descriptor queue contents.
