#
# ISDN device configuration
#

menuconfig ISDN
	tristate "ISDN support"
	depends on NET
	depends on !S390
	---help---
	  ISDN ("Integrated Services Digital Networks", called RNIS in France)
	  is a special type of fully digital telephone service; it's mostly
	  used to connect to your Internet service provider (with SLIP or
	  PPP).  The main advantage is that the speed is higher than ordinary
	  modem/telephone connections, and that you can have voice
	  conversations while downloading stuff.  It only works if your
	  computer is equipped with an ISDN card and both you and your service
	  provider purchased an ISDN line from the phone company.  For
	  details, read <http://www.alumni.caltech.edu/~dank/isdn/> on the WWW.

	  Select this option if you want your kernel to support ISDN.

if ISDN

menu "Old ISDN4Linux"

config ISDN_I4L
	tristate "Old ISDN4Linux (deprecated)"
	---help---
	  This driver allows you to use an ISDN adapter for networking
	  connections and as dialin/out device.  The isdn-tty's have a built
	  in AT-compatible modem emulator.  Network devices support autodial,
	  channel-bundling, callback and caller-authentication without having
	  a daemon running.  A reduced T.70 protocol is supported with tty's
	  suitable for German BTX.  On D-Channel, the protocols EDSS1
	  (Euro-ISDN) and 1TR6 (German style) are supported.  See
	  <file:Documentation/isdn/README> for more information.

	  ISDN support in the linux kernel is moving towards a new API,
	  called CAPI (Common ISDN Application Programming Interface).
	  Therefore the old ISDN4Linux layer will eventually become obsolete.
	  It is still available, though, for use with adapters that are not
	  supported by the new CAPI subsystem yet.

if ISDN_I4L
source "drivers/isdn/i4l/Kconfig"
endif

endmenu

comment "CAPI subsystem"

config ISDN_CAPI
	tristate "CAPI2.0 support"
	help
	  This provides the CAPI (Common ISDN Application Programming
	  Interface, a standard making it easy for programs to access ISDN
	  hardware, see <http://www.capi.org/>.  This is needed for AVM's set
	  of active ISDN controllers like B1, T1, M1.

if ISDN_CAPI

source "drivers/isdn/capi/Kconfig"

source "drivers/isdn/hardware/Kconfig"

endif # ISDN_CAPI

endif # ISDN
