AP6210/AP6212/AP6330 Bluetooth Support for Allwinner SBCs

wens recently spent some time figuring out Bluetooth support within the kernel using device tree and serdev for various Allwinner SoC based SBCs using AMPAK modules. These modules are based on chips from Broadcom’s Wireless IoT division, now Cypress. Previously we could already enable Bluetooth using a combination of userspace utilities and sysfs GPIO toggling. However this was quite fragile, depending on other devices (WiFi) enabling the required clocks and regulators. Having Bluetooth enabled with kernel drivers handling power sequencing and firmware would simplify userspace by not having every user hunt down the required “magical” scripts.

This is now achievable using the new serdev (Serial Device) subsystem, which allows us to describe and bind slave devices to UARTs. A Bluetooth device node is attached to the UART device node, describing clocks, regulators, and GPIO lines. The kernel driver would do all the power sequencing and also take care of uploading the firmware and registering the Bluetooth HCI device.

The patch series was developed and tested on Cubietech and Bananapi SBCs, with AP6210, AP6212, and AP6330 modules.


more about wens hard work :

[PATCH 5/5] DO NOT MERGE: ARM: dts: bananapi: Add Camera support


[U-Boot,v2,0/5] sunxi: Add support for ALL-H3-CC H2+/H5 variants


[PATCH v3 0/4] allwinner: a64: add SRAM controller / system control


[PATCH net-next v2 00/15] ARM: sun8i: r40: Add Ethernet support



Any chance to ask for Chen-Yu Tsai’s help and get his/her Broadcom AP6212 bluetooth working driver? Thanks!

I am using bpi m2u and needing a working bluetooth driver for it

Currently, I use Armbian 5.66, 5.69, 5.71. All are with a non-working bluetooth driver. I actually tried 2017-08-28-debian-9-stretch-mate-desktop-preview-bpi-m2u-sd-emmc.img and its bluetooth worked. I saw some activities. So my device should be good.

WiFi don’t work! Help! Armbian.

uname -a
Linux BPI_M3 4.19.20-sunxi #5.75 SMP Sun Feb 10 21:36:17 CET 2019 armv7l GNU/Linux