| # SPDX-License-Identifier: GPL-2.0 |
| |
| menu "Bluetooth device drivers" |
| depends on BT |
| |
| config BT_INTEL |
| tristate |
| select REGMAP |
| |
| config BT_BCM |
| tristate |
| select FW_LOADER |
| |
| config BT_RTL |
| tristate |
| select FW_LOADER |
| |
| config BT_QCA |
| tristate |
| select FW_LOADER |
| |
| config BT_MTK |
| tristate |
| select FW_LOADER |
| |
| config BT_HCIBTUSB |
| tristate "HCI USB driver" |
| depends on USB |
| select BT_INTEL |
| help |
| Bluetooth HCI USB driver. |
| This driver is required if you want to use Bluetooth devices with |
| USB interface. |
| |
| Say Y here to compile support for Bluetooth USB devices into the |
| kernel or say M to compile it as module (btusb). |
| |
| config BT_HCIBTUSB_AUTOSUSPEND |
| bool "Enable USB autosuspend for Bluetooth USB devices by default" |
| depends on BT_HCIBTUSB |
| help |
| Say Y here to enable USB autosuspend for Bluetooth USB devices by |
| default. |
| |
| This can be overridden by passing btusb.enable_autosuspend=[y|n] |
| on the kernel commandline. |
| |
| config BT_HCIBTUSB_POLL_SYNC |
| bool "Enable USB poll_sync for Bluetooth USB devices by default" |
| depends on BT_HCIBTUSB |
| default y |
| help |
| poll_sync synchronizes the USB data and event endpoints by |
| prioritizing the later. |
| |
| Say Y here to enable USB poll_sync for Bluetooth USB devices by |
| default. |
| |
| config BT_HCIBTUSB_BCM |
| bool "Broadcom protocol support" |
| depends on BT_HCIBTUSB |
| select BT_BCM |
| default y |
| help |
| The Broadcom protocol support enables firmware and patchram |
| download support for Broadcom Bluetooth controllers. |
| |
| Say Y here to compile support for Broadcom protocol. |
| |
| config BT_HCIBTUSB_MTK |
| bool "MediaTek protocol support" |
| depends on BT_HCIBTUSB |
| select BT_MTK |
| default n |
| help |
| The MediaTek protocol support enables firmware download |
| support and chip initialization for MediaTek Bluetooth |
| USB controllers. |
| |
| Say Y here to compile support for MediaTek protocol. |
| |
| config BT_HCIBTUSB_RTL |
| bool "Realtek protocol support" |
| depends on BT_HCIBTUSB |
| select BT_RTL |
| default y |
| help |
| The Realtek protocol support enables firmware and configuration |
| download support for Realtek Bluetooth controllers. |
| |
| Say Y here to compile support for Realtek protocol. |
| |
| config BT_HCIBTSDIO |
| tristate "HCI SDIO driver" |
| depends on MMC |
| help |
| Bluetooth HCI SDIO driver. |
| This driver is required if you want to use Bluetooth device with |
| SDIO interface. |
| |
| Say Y here to compile support for Bluetooth SDIO devices into the |
| kernel or say M to compile it as module (btsdio). |
| |
| config BT_HCIUART |
| tristate "HCI UART driver" |
| depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS |
| depends on NVMEM || !NVMEM |
| depends on POWER_SEQUENCING || !POWER_SEQUENCING |
| depends on TTY |
| help |
| Bluetooth HCI UART driver. |
| This driver is required if you want to use Bluetooth devices with |
| serial port interface. You will also need this driver if you have |
| UART based Bluetooth PCMCIA and CF devices like Xircom Credit Card |
| adapter and BrainBoxes Bluetooth PC Card. |
| |
| Say Y here to compile support for Bluetooth UART devices into the |
| kernel or say M to compile it as module (hci_uart). |
| |
| config BT_HCIUART_SERDEV |
| bool |
| depends on SERIAL_DEV_BUS && BT_HCIUART |
| default y |
| |
| config BT_HCIUART_H4 |
| bool "UART (H4) protocol support" |
| depends on BT_HCIUART |
| help |
| UART (H4) is serial protocol for communication between Bluetooth |
| device and host. This protocol is required for most Bluetooth devices |
| with UART interface, including PCMCIA and CF cards. |
| |
| Say Y here to compile support for HCI UART (H4) protocol. |
| |
| config BT_HCIUART_NOKIA |
| tristate "UART Nokia H4+ protocol support" |
| depends on BT_HCIUART |
| depends on BT_HCIUART_SERDEV |
| depends on GPIOLIB |
| depends on PM |
| select BT_HCIUART_H4 |
| select BT_BCM |
| help |
| Nokia H4+ is serial protocol for communication between Bluetooth |
| device and host. This protocol is required for Bluetooth devices |
| with UART interface in Nokia devices. |
| |
| Say Y here to compile support for Nokia's H4+ protocol. |
| |
| config BT_HCIUART_BCSP |
| bool "BCSP protocol support" |
| depends on BT_HCIUART |
| select BITREVERSE |
| help |
| BCSP (BlueCore Serial Protocol) is serial protocol for communication |
| between Bluetooth device and host. This protocol is required for non |
| USB Bluetooth devices based on CSR BlueCore chip, including PCMCIA and |
| CF cards. |
| |
| Say Y here to compile support for HCI BCSP protocol. |
| |
| config BT_HCIUART_ATH3K |
| bool "Atheros AR300x serial support" |
| depends on BT_HCIUART |
| select BT_HCIUART_H4 |
| help |
| HCIATH3K (HCI Atheros AR300x) is a serial protocol for |
| communication between host and Atheros AR300x Bluetooth devices. |
| This protocol enables AR300x chips to be enabled with |
| power management support. |
| Enable this if you have Atheros AR300x serial Bluetooth device. |
| |
| Say Y here to compile support for HCI UART ATH3K protocol. |
| |
| config BT_HCIUART_LL |
| bool "HCILL protocol support" |
| depends on BT_HCIUART_SERDEV |
| select BT_HCIUART_H4 |
| help |
| HCILL (HCI Low Level) is a serial protocol for communication |
| between Bluetooth device and host. This protocol is required for |
| serial Bluetooth devices that are based on Texas Instruments' |
| BRF chips. |
| |
| Say Y here to compile support for HCILL protocol. |
| |
| config BT_HCIUART_3WIRE |
| bool "Three-wire UART (H5) protocol support" |
| depends on BT_HCIUART |
| depends on BT_HCIUART_SERDEV |
| help |
| The HCI Three-wire UART Transport Layer makes it possible to |
| user the Bluetooth HCI over a serial port interface. The HCI |
| Three-wire UART Transport Layer assumes that the UART |
| communication may have bit errors, overrun errors or burst |
| errors and thereby making CTS/RTS lines unnecessary. |
| |
| Say Y here to compile support for Three-wire UART protocol. |
| |
| config BT_HCIUART_INTEL |
| bool "Intel protocol support" |
| depends on BT_HCIUART |
| depends on GPIOLIB |
| select BT_HCIUART_H4 |
| select BT_INTEL |
| help |
| The Intel protocol support enables Bluetooth HCI over serial |
| port interface for Intel Bluetooth controllers. |
| |
| Say Y here to compile support for Intel protocol. |
| |
| config BT_HCIUART_BCM |
| bool "Broadcom protocol support" |
| depends on BT_HCIUART |
| depends on BT_HCIUART_SERDEV |
| depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT) |
| depends on GPIOLIB |
| select BT_HCIUART_H4 |
| select BT_BCM |
| help |
| The Broadcom protocol support enables Bluetooth HCI over serial |
| port interface for Broadcom Bluetooth controllers. |
| |
| Say Y here to compile support for Broadcom protocol. |
| |
| config BT_HCIUART_RTL |
| bool "Realtek protocol support" |
| depends on BT_HCIUART |
| depends on BT_HCIUART_SERDEV |
| depends on GPIOLIB |
| depends on (ACPI || SERIAL_DEV_CTRL_TTYPORT) |
| select BT_HCIUART_3WIRE |
| select BT_RTL |
| help |
| The Realtek protocol support enables Bluetooth HCI over 3-Wire |
| serial port interface for Realtek Bluetooth controllers. |
| |
| Say Y here to compile support for Realtek protocol. |
| |
| config BT_HCIUART_QCA |
| bool "Qualcomm Atheros protocol support" |
| depends on BT_HCIUART |
| depends on BT_HCIUART_SERDEV |
| select BT_HCIUART_H4 |
| select BT_QCA |
| help |
| The Qualcomm Atheros protocol supports HCI In-Band Sleep feature |
| over serial port interface(H4) between controller and host. |
| This protocol is required for UART clock control for QCA Bluetooth |
| devices. |
| |
| Say Y here to compile support for QCA protocol. |
| |
| config BT_HCIUART_AG6XX |
| bool "Intel AG6XX protocol support" |
| depends on BT_HCIUART |
| select BT_HCIUART_H4 |
| select BT_INTEL |
| help |
| The Intel/AG6XX protocol support enables Bluetooth HCI over serial |
| port interface for Intel ibt 2.1 Bluetooth controllers. |
| |
| Say Y here to compile support for Intel AG6XX protocol. |
| |
| config BT_HCIUART_MRVL |
| bool "Marvell protocol support" |
| depends on BT_HCIUART |
| depends on BT_HCIUART_SERDEV |
| select BT_HCIUART_H4 |
| help |
| Marvell is serial protocol for communication between Bluetooth |
| device and host. This protocol is required for most Marvell Bluetooth |
| devices with UART interface. |
| |
| Say Y here to compile support for HCI MRVL protocol. |
| |
| config BT_HCIUART_AML |
| bool "Amlogic protocol support" |
| depends on BT_HCIUART |
| depends on BT_HCIUART_SERDEV |
| select BT_HCIUART_H4 |
| select FW_LOADER |
| help |
| The Amlogic protocol support enables Bluetooth HCI over serial |
| port interface for Amlogic Bluetooth controllers. |
| |
| Say Y here to compile support for HCI AML protocol. |
| |
| config BT_HCIBCM203X |
| tristate "HCI BCM203x USB driver" |
| depends on USB |
| select FW_LOADER |
| help |
| Bluetooth HCI BCM203x USB driver. |
| This driver provides the firmware loading mechanism for the Broadcom |
| Blutonium based devices. |
| |
| Say Y here to compile support for HCI BCM203x devices into the |
| kernel or say M to compile it as module (bcm203x). |
| |
| |
| config BT_HCIBCM4377 |
| tristate "HCI BCM4377/4378/4387/4388 PCIe driver" |
| depends on PCI |
| select FW_LOADER |
| help |
| Support for Broadcom BCM4377/4378/4387/4388 Bluetooth chipsets |
| attached via PCIe. These are usually found in Apple machines. |
| |
| Say Y here to compile support for HCI BCM4377 family devices into the |
| kernel or say M to compile it as module (hci_bcm4377). |
| |
| config BT_HCIBPA10X |
| tristate "HCI BPA10x USB driver" |
| depends on USB |
| help |
| Bluetooth HCI BPA10x USB driver. |
| This driver provides support for the Digianswer BPA 100/105 Bluetooth |
| sniffer devices. |
| |
| Say Y here to compile support for HCI BPA10x devices into the |
| kernel or say M to compile it as module (bpa10x). |
| |
| config BT_HCIBFUSB |
| tristate "HCI BlueFRITZ! USB driver" |
| depends on USB |
| select FW_LOADER |
| help |
| Bluetooth HCI BlueFRITZ! USB driver. |
| This driver provides support for Bluetooth USB devices with AVM |
| interface: |
| AVM BlueFRITZ! USB |
| |
| Say Y here to compile support for HCI BFUSB devices into the |
| kernel or say M to compile it as module (bfusb). |
| |
| config BT_HCIDTL1 |
| tristate "HCI DTL1 (PC Card) driver" |
| depends on PCMCIA && HAS_IOPORT |
| help |
| Bluetooth HCI DTL1 (PC Card) driver. |
| This driver provides support for Bluetooth PCMCIA devices with |
| Nokia DTL1 interface: |
| Nokia Bluetooth Card |
| Socket Bluetooth CF Card |
| |
| Say Y here to compile support for HCI DTL1 devices into the |
| kernel or say M to compile it as module (dtl1_cs). |
| |
| config BT_HCIBT3C |
| tristate "HCI BT3C (PC Card) driver" |
| depends on PCMCIA && HAS_IOPORT |
| select FW_LOADER |
| help |
| Bluetooth HCI BT3C (PC Card) driver. |
| This driver provides support for Bluetooth PCMCIA devices with |
| 3Com BT3C interface: |
| 3Com Bluetooth Card (3CRWB6096) |
| HP Bluetooth Card |
| |
| Say Y here to compile support for HCI BT3C devices into the |
| kernel or say M to compile it as module (bt3c_cs). |
| |
| config BT_HCIBLUECARD |
| tristate "HCI BlueCard (PC Card) driver" |
| depends on PCMCIA && HAS_IOPORT |
| help |
| Bluetooth HCI BlueCard (PC Card) driver. |
| This driver provides support for Bluetooth PCMCIA devices with |
| Anycom BlueCard interface: |
| Anycom Bluetooth PC Card |
| Anycom Bluetooth CF Card |
| |
| Say Y here to compile support for HCI BlueCard devices into the |
| kernel or say M to compile it as module (bluecard_cs). |
| |
| config BT_HCIVHCI |
| tristate "HCI VHCI (Virtual HCI device) driver" |
| select WANT_DEV_COREDUMP |
| help |
| Bluetooth Virtual HCI device driver. |
| This driver is required if you want to use HCI Emulation software. |
| |
| Say Y here to compile support for virtual HCI devices into the |
| kernel or say M to compile it as module (hci_vhci). |
| |
| config BT_MRVL |
| tristate "Marvell Bluetooth driver support" |
| help |
| The core driver to support Marvell Bluetooth devices. |
| |
| This driver is required if you want to support |
| Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8977/8987/8997. |
| |
| Say Y here to compile Marvell Bluetooth driver |
| into the kernel or say M to compile it as module. |
| |
| config BT_MRVL_SDIO |
| tristate "Marvell BT-over-SDIO driver" |
| depends on BT_MRVL && MMC |
| select FW_LOADER |
| select WANT_DEV_COREDUMP |
| help |
| The driver for Marvell Bluetooth chipsets with SDIO interface. |
| |
| This driver is required if you want to use Marvell Bluetooth |
| devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997 |
| chipsets are supported. |
| |
| Say Y here to compile support for Marvell BT-over-SDIO driver |
| into the kernel or say M to compile it as module. |
| |
| config BT_ATH3K |
| tristate "Atheros firmware download driver" |
| depends on BT_HCIBTUSB |
| select FW_LOADER |
| help |
| Bluetooth firmware download driver. |
| This driver loads the firmware into the Atheros Bluetooth |
| chipset. |
| |
| Say Y here to compile support for "Atheros firmware download driver" |
| into the kernel or say M to compile it as module (ath3k). |
| |
| config BT_MTKSDIO |
| tristate "MediaTek HCI SDIO driver" |
| depends on MMC |
| depends on USB || !BT_HCIBTUSB_MTK |
| select BT_MTK |
| help |
| MediaTek Bluetooth HCI SDIO driver. |
| This driver is required if you want to use MediaTek Bluetooth |
| with SDIO interface. |
| |
| Say Y here to compile support for MediaTek Bluetooth SDIO devices |
| into the kernel or say M to compile it as module (btmtksdio). |
| |
| config BT_MTKUART |
| tristate "MediaTek HCI UART driver" |
| depends on SERIAL_DEV_BUS |
| depends on USB || !BT_HCIBTUSB_MTK |
| select BT_MTK |
| help |
| MediaTek Bluetooth HCI UART driver. |
| This driver is required if you want to use MediaTek Bluetooth |
| with serial interface. |
| |
| Say Y here to compile support for MediaTek Bluetooth UART devices |
| into the kernel or say M to compile it as module (btmtkuart). |
| |
| config BT_QCOMSMD |
| tristate "Qualcomm SMD based HCI support" |
| depends on RPMSG || (COMPILE_TEST && RPMSG=n) |
| depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n) |
| select BT_QCA |
| help |
| Qualcomm SMD based HCI driver. |
| This driver is used to bridge HCI data onto the shared memory |
| channels to the WCNSS core. |
| |
| Say Y here to compile support for HCI over Qualcomm SMD into the |
| kernel or say M to compile as a module. |
| |
| config BT_HCIRSI |
| tristate |
| help |
| Redpine BT driver. |
| This driver handles BT traffic from upper layers and pass |
| to the RSI_91x coex module for further scheduling to device |
| |
| Say Y here to compile support for HCI over Redpine into the |
| kernel or say M to compile as a module. |
| |
| config BT_VIRTIO |
| tristate "Virtio Bluetooth driver" |
| depends on VIRTIO |
| help |
| Virtio Bluetooth support driver. |
| This driver supports Virtio Bluetooth devices. |
| |
| Say Y here to compile support for HCI over Virtio into the |
| kernel or say M to compile as a module. |
| |
| config BT_NXPUART |
| tristate "NXP protocol support" |
| depends on SERIAL_DEV_BUS |
| select CRC32 |
| select CRC8 |
| help |
| NXP is serial driver required for NXP Bluetooth |
| devices with UART interface. |
| |
| Say Y here to compile support for NXP Bluetooth UART device into |
| the kernel, or say M here to compile as a module (btnxpuart). |
| |
| config BT_INTEL_PCIE |
| tristate "Intel HCI PCIe driver" |
| depends on PCI |
| select BT_INTEL |
| select FW_LOADER |
| help |
| Intel Bluetooth transport driver for PCIe. |
| This driver is required if you want to use Intel Bluetooth device |
| with PCIe interface. |
| |
| Say Y here to compiler support for Intel Bluetooth PCIe device into |
| the kernel or say M to compile it as module (btintel_pcie) |
| endmenu |