# SPDX-License-Identifier: GPL-2.0-only
#
# CAIF physical drivers
#

menuconfig CAIF_DRIVERS
	bool "CAIF transport drivers"
	depends on CAIF
	help
	  Enable this to see CAIF physical drivers.

if CAIF_DRIVERS

config CAIF_TTY
	tristate "CAIF TTY transport driver"
	depends on CAIF && TTY
	default n
	help
	  The CAIF TTY transport driver is a Line Discipline (ldisc)
	  identified as N_CAIF. When this ldisc is opened from user space
	  it will redirect the TTY's traffic into the CAIF stack.

config CAIF_HSI
	tristate "CAIF HSI transport driver"
	depends on CAIF
	default n
	help
	  The CAIF low level driver for CAIF over HSI.
	  Be aware that if you enable this then you also need to
	  enable a low-level HSI driver.

config CAIF_VIRTIO
	tristate "CAIF virtio transport driver"
	depends on CAIF && HAS_DMA
	select VHOST_RING
	select VIRTIO
	select GENERIC_ALLOCATOR
	default n
	help
	  The CAIF driver for CAIF over Virtio.

endif # CAIF_DRIVERS
