meta-raspberrypi/recipes-connectivity/bluez5/bluez5/0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch
toolmmy 1317a894fa bluez5: Add bluez5 support for brcm43438 on raspberrypi3.
This patch adds the bluetooth support for the brcm43438 module on the raspberrypi3 by
deploying the modules firmware and changing the targeting firmware path. In addition
the brcm43438.service adds the automatically attaching (hciattach) for systemd environments.
The following steps can be used to manually configure the brcm43438:

root@raspberrypi3:~# hciattach /dev/ttyAMA0 bcm43xx-3wire
bcm43xx_init
Flash firmware /lib/firmware/brcm/BCM43430A1.hcd
Set Controller UART speed to 3000000 bit/s
Device setup complete
root@raspberrypi3:~# hciconfig
hci0:   Type: BR/EDR  Bus: UART
        BD Address: B8:27:EB:6C:85:BE  ACL MTU: 1021:8  SCO MTU: 64:1
        DOWN
        RX bytes:983 acl:0 sco:0 events:33 errors:0
        TX bytes:887 acl:0 sco:0 commands:33 errors:0

root@raspberrypi3:~# /usr/lib/bluez5/bluetooth/bluetoothd -e -n -E
root@raspberrypi3:~# bluetoothctl
[NEW] Controller B8:27:EB:6C:85:BE raspberrypi3 [default]
[bluetooth]# power on
[CHG] Controller B8:27:EB:6C:85:BE Class: 0x400000
Changing power on succeeded
[CHG] Controller B8:27:EB:6C:85:BE Powered: yes
[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:6C:85:BE Discovering: yes
[NEW] Device 00:1C:05:FF:F9:F8 Nonin3230_501585326

NOTE: SERIAL_CONSOLE must configured to ttyS0 instead of ttyAMA0 (used by the brcm43438). See pending patch from Martin Bergek

Signed-off-by: Tom Doehring <toolmmy@gmail.com>
2016-04-22 16:41:33 +02:00

38 lines
1.1 KiB
Diff

From e145c9621f976063e5c573db1f2053d906f63427 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Tue, 16 Feb 2016 16:39:09 +0000
Subject: [PATCH 2/4] bcm43xx: The UART speed must be reset after the firmware download
---
tools/hciattach_bcm43xx.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/tools/hciattach_bcm43xx.c b/tools/hciattach_bcm43xx.c
index 81f38cb..0b792e0 100644
--- a/tools/hciattach_bcm43xx.c
+++ b/tools/hciattach_bcm43xx.c
@@ -366,11 +366,8 @@ int bcm43xx_init(int fd, int def_speed, int speed, struct termios *ti,
return -1;
if (bcm43xx_locate_patch(FIRMWARE_DIR, chip_name, fw_path)) {
- fprintf(stderr, "Patch not found, continue anyway\n");
+ fprintf(stderr, "Patch not found for %s, continue anyway\n", chip_name);
} else {
- if (bcm43xx_set_speed(fd, ti, speed))
- return -1;
-
if (bcm43xx_load_firmware(fd, fw_path))
return -1;
@@ -380,6 +377,7 @@ int bcm43xx_init(int fd, int def_speed, int speed, struct termios *ti,
return -1;
}
+ sleep(1);
if (bcm43xx_reset(fd))
return -1;
}
--
1.9.1