# 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_BLKCIPHER
	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.
