# SPDX-License-Identifier: GPL-2.0-only
config CRYPTO_DEV_CHELSIO
	tristate "Chelsio Crypto Co-processor Driver"
	depends on CHELSIO_T4
	select CRYPTO_LIB_AES
	select CRYPTO_SHA1
	select CRYPTO_SHA256
	select CRYPTO_SHA512
	select CRYPTO_AUTHENC
	select CRYPTO_GF128MUL
	---help---
	  The Chelsio Crypto Co-processor driver for T6 adapters.

	  For general information about Chelsio and our products, visit
	  our website at <http://www.chelsio.com>.

	  For customer support, please visit our customer support page at
	  <http://www.chelsio.com/support.html>.

	  Please send feedback to <linux-bugs@chelsio.com>.

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

config CHELSIO_IPSEC_INLINE
        bool "Chelsio IPSec XFRM Tx crypto offload"
        depends on CHELSIO_T4
	depends on CRYPTO_DEV_CHELSIO
        depends on XFRM_OFFLOAD
        depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
        default n
        ---help---
          Enable support for IPSec Tx Inline.

config CRYPTO_DEV_CHELSIO_TLS
        tristate "Chelsio Crypto Inline TLS Driver"
        depends on CHELSIO_T4
        depends on TLS
        select CRYPTO_DEV_CHELSIO
        ---help---
          Support Chelsio Inline TLS with Chelsio crypto accelerator.

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