config ISDN_DRV_AVMB1_VERBOSE_REASON
	bool "Verbose reason code reporting"
	default y
	help
	  If you say Y here, the CAPI drivers will give verbose reasons for
	  disconnecting. This will increase the size of the kernel by 7 KB. If
	  unsure, say Y.

config CAPI_TRACE
	bool "CAPI trace support"
	default y
	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).
	  This will increase the size of the kernelcapi module by 20 KB.
	  If unsure, say Y.

config ISDN_CAPI_MIDDLEWARE
	bool "CAPI2.0 Middleware support"
	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.

config ISDN_CAPI_CAPI20
	tristate "CAPI2.0 /dev/capi support"
	help
	  This option will provide the CAPI 2.0 interface to userspace
	  applications via /dev/capi20. Applications should use the
	  standardized libcapi20 to access this functionality.  You should say
	  Y/M here.

config ISDN_CAPI_CAPIFS_BOOL
	bool "CAPI2.0 filesystem support (DEPRECATED)"
	depends on ISDN_CAPI_MIDDLEWARE && ISDN_CAPI_CAPI20
	help
	  This option provides a special file system, similar to /dev/pts with
	  device nodes for the special ttys established by using the
	  middleware extension above.
	  You no longer need this, udev fully replaces it. This feature is
	  scheduled for removal.

config ISDN_CAPI_CAPIFS
	tristate
	depends on ISDN_CAPI_CAPIFS_BOOL
	default ISDN_CAPI_CAPI20

config ISDN_CAPI_CAPIDRV
	tristate "CAPI2.0 capidrv interface support"
	depends on ISDN_I4L
	help
	  This option provides the glue code to hook up CAPI driven cards to
	  the legacy isdn4linux link layer.  If you have a card which is
	  supported by a CAPI driver, but still want to use old features like
	  ippp interfaces or ttyI emulation, say Y/M here.
