config CRYPTO_DEV_ALLWINNER
	bool "Support for Allwinner cryptographic offloader"
	depends on ARCH_SUNXI || COMPILE_TEST
	default y if ARCH_SUNXI
	help
	  Say Y here to get to see options for Allwinner hardware crypto devices

config CRYPTO_DEV_SUN4I_SS
	tristate "Support for Allwinner Security System cryptographic accelerator"
	depends on ARCH_SUNXI
	depends on PM
	depends on CRYPTO_DEV_ALLWINNER
	select CRYPTO_MD5
	select CRYPTO_SHA1
	select CRYPTO_AES
	select CRYPTO_LIB_DES
	select CRYPTO_SKCIPHER
	help
	  Some Allwinner SoC have a crypto accelerator named
	  Security System. Select this if you want to use it.
	  The Security System handle AES/DES/3DES ciphers in CBC mode
	  and SHA1 and MD5 hash algorithms.

	  To compile this driver as a module, choose M here: the module
	  will be called sun4i-ss.

config CRYPTO_DEV_SUN4I_SS_PRNG
	bool "Support for Allwinner Security System PRNG"
	depends on CRYPTO_DEV_SUN4I_SS
	select CRYPTO_RNG
	help
	  Select this option if you want to provide kernel-side support for
	  the Pseudo-Random Number Generator found in the Security System.

config CRYPTO_DEV_SUN4I_SS_DEBUG
	bool "Enable sun4i-ss stats"
	depends on CRYPTO_DEV_SUN4I_SS
	depends on DEBUG_FS
	help
	  Say y to enable sun4i-ss debug stats.
	  This will create /sys/kernel/debug/sun4i-ss/stats for displaying
	  the number of requests per algorithm.

config CRYPTO_DEV_SUN8I_CE
	tristate "Support for Allwinner Crypto Engine cryptographic offloader"
	select CRYPTO_SKCIPHER
	select CRYPTO_ENGINE
	select CRYPTO_ECB
	select CRYPTO_CBC
	select CRYPTO_AES
	select CRYPTO_DES
	depends on CRYPTO_DEV_ALLWINNER
	depends on PM
	help
	  Select y here to have support for the crypto Engine available on
	  Allwinner SoC H2+, H3, H5, H6, R40 and A64.
	  The Crypto Engine handle AES/3DES ciphers in ECB/CBC mode.

	  To compile this driver as a module, choose M here: the module
	  will be called sun8i-ce.

config CRYPTO_DEV_SUN8I_CE_DEBUG
	bool "Enable sun8i-ce stats"
	depends on CRYPTO_DEV_SUN8I_CE
	depends on DEBUG_FS
	help
	  Say y to enable sun8i-ce debug stats.
	  This will create /sys/kernel/debug/sun8i-ce/stats for displaying
	  the number of requests per flow and per algorithm.

config CRYPTO_DEV_SUN8I_CE_HASH
	bool "Enable support for hash on sun8i-ce"
	depends on CRYPTO_DEV_SUN8I_CE
	select CRYPTO_MD5
	select CRYPTO_SHA1
	select CRYPTO_SHA256
	select CRYPTO_SHA512
	help
	  Say y to enable support for hash algorithms.

config CRYPTO_DEV_SUN8I_CE_PRNG
	bool "Support for Allwinner Crypto Engine PRNG"
	depends on CRYPTO_DEV_SUN8I_CE
	select CRYPTO_RNG
	help
	  Select this option if you want to provide kernel-side support for
	  the Pseudo-Random Number Generator found in the Crypto Engine.

config CRYPTO_DEV_SUN8I_CE_TRNG
	bool "Support for Allwinner Crypto Engine TRNG"
	depends on CRYPTO_DEV_SUN8I_CE
	select HW_RANDOM
	help
	  Select this option if you want to provide kernel-side support for
	  the True Random Number Generator found in the Crypto Engine.

config CRYPTO_DEV_SUN8I_SS
	tristate "Support for Allwinner Security System cryptographic offloader"
	select CRYPTO_SKCIPHER
	select CRYPTO_ENGINE
	select CRYPTO_ECB
	select CRYPTO_CBC
	select CRYPTO_AES
	select CRYPTO_DES
	depends on CRYPTO_DEV_ALLWINNER
	depends on PM
	help
	  Select y here to have support for the Security System available on
	  Allwinner SoC A80, A83T.
	  The Security System handle AES/3DES ciphers in ECB/CBC mode.

	  To compile this driver as a module, choose M here: the module
	  will be called sun8i-ss.

config CRYPTO_DEV_SUN8I_SS_DEBUG
	bool "Enable sun8i-ss stats"
	depends on CRYPTO_DEV_SUN8I_SS
	depends on DEBUG_FS
	help
	  Say y to enable sun8i-ss debug stats.
	  This will create /sys/kernel/debug/sun8i-ss/stats for displaying
	  the number of requests per flow and per algorithm.

config CRYPTO_DEV_SUN8I_SS_PRNG
	bool "Support for Allwinner Security System PRNG"
	depends on CRYPTO_DEV_SUN8I_SS
	select CRYPTO_RNG
	help
	  Select this option if you want to provide kernel-side support for
	  the Pseudo-Random Number Generator found in the Security System.

config CRYPTO_DEV_SUN8I_SS_HASH
	bool "Enable support for hash on sun8i-ss"
	depends on CRYPTO_DEV_SUN8I_SS
	select CRYPTO_MD5
	select CRYPTO_SHA1
	select CRYPTO_SHA256
	help
	  Say y to enable support for hash algorithms.
