# SPDX-License-Identifier: GPL-2.0-only
#
# 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 || CPM1) && HAS_IOPORT
	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 CPM1
	default CPM1
	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 && HAS_IOPORT
	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 && HAS_IOPORT
	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 && HAS_IOPORT
	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 && HAS_IOPORT
	help
	  Enable support for Winbond 6692 PCI chip based cards.

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

config MISDN_HDLC
	tristate
	select CRC_CCITT
	select BITREVERSE

config MISDN_IPAC
	tristate
	depends on MISDN

config MISDN_ISAR
	tristate
	depends on MISDN

