Skip to content

Commit 162f812

Browse files
Loic Poulainholtmann
authored andcommitted
Bluetooth: hci_uart: Add Marvell support
This patch introduces support for Marvell Bluetooth controller over UART (8897 for now). In order to send the final firmware at full speed, a helper firmware is firstly sent. Firmware download is driven by the controller which sends request firmware packets (including expected size). This driver is a global rework of the one proposed by Amitkumar Karwar <[email protected]>. Signed-off-by: Loic Poulain <[email protected]> Signed-off-by: Marcel Holtmann <[email protected]>
1 parent 9e69130 commit 162f812

File tree

5 files changed

+412
-1
lines changed

5 files changed

+412
-1
lines changed

drivers/bluetooth/Kconfig

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,17 @@ config BT_HCIUART_AG6XX
180180

181181
Say Y here to compile support for Intel AG6XX protocol.
182182

183+
config BT_HCIUART_MRVL
184+
bool "Marvell protocol support"
185+
depends on BT_HCIUART
186+
select BT_HCIUART_H4
187+
help
188+
Marvell is serial protocol for communication between Bluetooth
189+
device and host. This protocol is required for most Marvell Bluetooth
190+
devices with UART interface.
191+
192+
Say Y here to compile support for HCI MRVL protocol.
193+
183194
config BT_HCIBCM203X
184195
tristate "HCI BCM203x USB driver"
185196
depends on USB

drivers/bluetooth/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ hci_uart-$(CONFIG_BT_HCIUART_INTEL) += hci_intel.o
3838
hci_uart-$(CONFIG_BT_HCIUART_BCM) += hci_bcm.o
3939
hci_uart-$(CONFIG_BT_HCIUART_QCA) += hci_qca.o
4040
hci_uart-$(CONFIG_BT_HCIUART_AG6XX) += hci_ag6xx.o
41+
hci_uart-$(CONFIG_BT_HCIUART_MRVL) += hci_mrvl.o
4142
hci_uart-objs := $(hci_uart-y)
4243

4344
ccflags-y += -D__CHECK_ENDIAN__

drivers/bluetooth/hci_ldisc.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,9 @@ static int __init hci_uart_init(void)
810810
#ifdef CONFIG_BT_HCIUART_AG6XX
811811
ag6xx_init();
812812
#endif
813+
#ifdef CONFIG_BT_HCIUART_MRVL
814+
mrvl_init();
815+
#endif
813816

814817
return 0;
815818
}
@@ -845,6 +848,9 @@ static void __exit hci_uart_exit(void)
845848
#ifdef CONFIG_BT_HCIUART_AG6XX
846849
ag6xx_deinit();
847850
#endif
851+
#ifdef CONFIG_BT_HCIUART_MRVL
852+
mrvl_deinit();
853+
#endif
848854

849855
/* Release tty registration of line discipline */
850856
err = tty_unregister_ldisc(N_HCI);

0 commit comments

Comments
 (0)