#
# Hardware for mISDN
#
comment "mISDN hardware drivers"

config MISDN_HFCPCI
	tristate "Support for HFC PCI cards"
	depends on MISDN
	depends on PCI
	help
	  Enable support for cards with Cologne Chip AG's
          HFC PCI chip.

config MISDN_HFCMULTI
	tristate "Support for HFC multiport cards (HFC-4S/8S/E1)"
	depends on PCI || 8xx
	depends on MISDN
	help
	  Enable support for cards with Cologne Chip AG's HFC multiport
	  chip. There are three types of chips that are quite similar,
	  but the interface is different:
	   * HFC-4S (4 S/T interfaces on one chip)
	   * HFC-8S (8 S/T interfaces on one chip)
	   * HFC-E1 (E1 interface for 2Mbit ISDN)

config MISDN_HFCMULTI_8xx
	bool "Support for XHFC embedded board in HFC multiport driver"
	depends on MISDN
	depends on MISDN_HFCMULTI
	depends on 8xx
	default 8xx
	help
	  Enable support for the XHFC embedded solution from Speech Design.

config MISDN_HFCUSB
	tristate "Support for HFC-S USB based TAs"
	depends on USB
	help
	  Enable support for USB ISDN TAs with Cologne Chip AG's
	  HFC-S USB ISDN Controller

config MISDN_AVMFRITZ
	tristate "Support for AVM FRITZ!CARD PCI"
	depends on MISDN
	depends on PCI
	select MISDN_IPAC
	help
	  Enable support for AVMs FRITZ!CARD PCI cards

config MISDN_SPEEDFAX
	tristate "Support for Sedlbauer Speedfax+"
	depends on MISDN
	depends on PCI
	select MISDN_IPAC
	select MISDN_ISAR
	help
	  Enable support for Sedlbauer Speedfax+.

config MISDN_INFINEON
	tristate "Support for cards with Infineon chipset"
	depends on MISDN
	depends on PCI
	select MISDN_IPAC
	help
	  Enable support for cards with ISAC + HSCX, IPAC or IPAC-SX
	  chip from Infineon (former manufacturer Siemens).

config MISDN_W6692
	tristate "Support for cards with Winbond 6692"
	depends on MISDN
	depends on PCI
	help
	  Enable support for Winbond 6692 PCI chip based cards.

config MISDN_NETJET
	tristate "Support for NETJet cards"
	depends on MISDN
	depends on PCI
	depends on TTY
	select MISDN_IPAC
	select ISDN_HDLC
	select ISDN_I4L
	help
	  Enable support for Traverse Technologies NETJet PCI cards.


config MISDN_IPAC
	tristate
	depends on MISDN

config MISDN_ISAR
	tristate
	depends on MISDN

