# SPDX-License-Identifier: GPL-2.0-only
#
# Chelsio inline crypto configuration
#

config CHELSIO_INLINE_CRYPTO
	bool "Chelsio Inline Crypto support"
	depends on CHELSIO_T4
	default y
	help
	  Enable support for inline crypto.
	  Allows enable/disable from list of inline crypto drivers.

if CHELSIO_INLINE_CRYPTO

config CRYPTO_DEV_CHELSIO_TLS
	tristate "Chelsio Crypto Inline TLS Driver"
	depends on CHELSIO_T4
	depends on TLS_TOE
	help
	  Support Chelsio Inline TLS with Chelsio crypto accelerator.
	  Enable inline TLS support for Tx and Rx.

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

config CHELSIO_IPSEC_INLINE
       tristate "Chelsio IPSec XFRM Tx crypto offload"
       depends on CHELSIO_T4
       depends on XFRM_OFFLOAD
       depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
       help
        Support Chelsio Inline IPsec with Chelsio crypto accelerator.
        Enable inline IPsec support for Tx.

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

config CHELSIO_TLS_DEVICE
        tristate "Chelsio Inline KTLS Offload"
        depends on CHELSIO_T4
        depends on TLS
        depends on TLS_DEVICE
        help
          This flag enables support for kernel tls offload over Chelsio T6
          crypto accelerator. CONFIG_CHELSIO_TLS_DEVICE flag can be enabled
          only if CONFIG_TLS and CONFIG_TLS_DEVICE flags are enabled.

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

endif # CHELSIO_INLINE_CRYPTO
