# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) ST-Ericsson SA 2010
# Author: Shujuan Chen (shujuan.chen@stericsson.com)
#

config CRYPTO_DEV_UX500_CRYP
	tristate "UX500 crypto driver for CRYP block"
	depends on CRYPTO_DEV_UX500
	select CRYPTO_ALGAPI
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_DES
	help
	This selects the crypto driver for the UX500_CRYP hardware. It supports
	AES-ECB, CBC and CTR with keys sizes of 128, 192 and 256 bit sizes.

config CRYPTO_DEV_UX500_HASH
	tristate "UX500 crypto driver for HASH block"
	depends on CRYPTO_DEV_UX500
	select CRYPTO_HASH
	select CRYPTO_SHA1
	select CRYPTO_SHA256
	help
	  This selects the hash driver for the UX500_HASH hardware.
	  Depends on UX500/STM DMA if running in DMA mode.

config CRYPTO_DEV_UX500_DEBUG
	bool "Activate ux500 platform debug-mode for crypto and hash block"
	depends on CRYPTO_DEV_UX500_CRYP || CRYPTO_DEV_UX500_HASH
	help
	  Say Y if you want to add debug prints to ux500_hash and
	  ux500_cryp devices.
