# SPDX-License-Identifier: GPL-2.0-only
config ISDN_CAPI
	def_bool ISDN && BT
	help
	  This provides CAPI (the Common ISDN Application Programming
	  Interface) Version 2.0, a standard making it easy for programs to
	  access ISDN hardware in a device independent way. (For details see
	  <http://www.capi.org/>.)  CAPI supports making and accepting voice
	  and data connections, controlling call options and protocols,
	  as well as ISDN supplementary services like call forwarding or
	  three-party conferences (if supported by the specific hardware
	  driver).

	  This subsystem requires a hardware specific driver.
	  See CONFIG_BT_CMTP for the last remaining regular driver
	  in the kernel that uses the CAPI subsystem.

config CAPI_TRACE
	def_bool BT_CMTP
	help
	  If you say Y here, the kernelcapi driver can make verbose traces
	  of CAPI messages. This feature can be enabled/disabled via IOCTL for
	  every controller (default disabled).

config ISDN_CAPI_MIDDLEWARE
	def_bool BT_CMTP && TTY
	help
	  This option will enhance the capabilities of the /dev/capi20
	  interface.  It will provide a means of moving a data connection,
	  established via the usual /dev/capi20 interface to a special tty
	  device.  If you want to use pppd with pppdcapiplugin to dial up to
	  your ISP, say Y here.
