The wireless variant of the ConnectCore 8X SOM integrates a Qualcomm QCA6574 wireless chipset with the following features:
-
Bluetooth 4.2, ANT+, backwards compatible with Bluetooth 4.1, 4.0, 3.x, 2.x, and 1.0
-
Bluetooth and WLAN coexistence
Digi Embedded Yocto defines the dey-bluetooth feature that builds the bluez5 package for working with the Bluetooth interface. This package installs all the required libraries and tools to use Bluetooth.
Digi Embedded Yocto supports the core specification 4.2 (GAP, L2CAP, RFCOMM, SDP, GATT), including Classic Bluetooth and Bluetooth Smart (Low Energy). The Linux Bluez stack supports additional Bluetooth Classic and Low Energy profiles that are not specifically validated. See the Bluez documentation for details.
If you own a Bluetooth-capable ConnectCore 8X but you don’t need to use Bluetooth, see Disable Bluetooth for instructions on disabling the interface. |
Kernel configuration
The Bluetooth interface is managed by the following kernel configuration options:
-
HCI UART driver (CONFIG_BT_HCIUART)
-
UART (H4) protocol support (CONFIG_BT_HCIUART_H4)
These options are enabled as built-in on the default ConnectCore 8X kernel configuration file.
Kernel driver
The Bluetooth driver is located at:
File | Description |
---|---|
UART (H4) protocol support |
Device tree bindings
There are no specific device tree bindings for the Bluetooth. A Bluetooth node is given as a device tree placeholder for U-Boot to fill in the Bluetooth interface MAC address. This address is then programmed into the device by the Digi Embedded Yocto bluez init script.
Bluetooth interfaces
Disable Bluetooth
Bluetooth is enabled by default on the ConnectCore 8X variants that support it. To disable the Bluetooth interface, add the following lines to your platform device tree:
/* Disable Bluetooth */
/delete-node/ &{/bluetooth};
&lpuart1 {
/* Drive BT_EN low to disable Bluetooth */
pinctrl-assert-gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
};
This patch:
-
deletes the
bluetooth
node of the device tree. The existence of this node triggers the initialization scripts that bring up the Bluetooth interface, so these won’t start when the node is missing.Expect a harmless error message in U-Boot reporting that it couldn’t find the bluetooth
node to fill in its MAC address. -
makes use of the UART node (the UART connected to the Bluetooth chip), to drive the BT_EN line low, thus disabling the Bluetooth chip.
With Bluetooth disabled, you may use that UART for other purposes, or its lines as GPIOs (this requires disabling the UART and redefining the IOMUX of the pads).