Add support for the BCM43438A1 Bluetooth capability. It also adds a serial 'shim' to allow any regular serial port that can support a Bluetooth H4 interface (i.e. it has RTS/CTS) to be used to drive a Bluetooth device (Get a handle to it via hci_uart_getdevice("/dev/xxx") and then pass it to the btuart_register function.

Most of the bluetooth and wifi chips appear to need external firmware, and the 43438 is no exception. Fortunately, since Cypress got involved, these are much more straightforward to obtain and are shipped as part of their SDK, which is downloadable from their website.  Those firmwares are already provided as C arrays, so their names just need updating to;

const unsigned char bt_firmware_hcd -> The bt firmware array.

const int bt_firmware_len = sizeof(bt_firmware_hcd);
This commit is contained in:
Dave Marples
2019-09-21 07:16:37 -06:00
committed by Gregory Nutt
parent 218da47318
commit 05bbbec3e1
8 changed files with 748 additions and 43 deletions
@@ -113,6 +113,9 @@
/* Construct OpCode from OGF and OCF */
#define BT_OGF_VENDOR 0x18
#define BT_HC_VN_READ_CONT_FEATURES BT_OP(BT_OGF_VENDOR, 0x06E)
#define BT_OP(ogf, ocf) ((ocf) | ((ogf) << 10))
#define BT_HCI_OP_DISCONNECT BT_OP(BT_OGF_LINK_CTRL, 0x0006)