From: Loic Poulain <loic.poulain@intel.com>
To: "Jérôme de Bretagne" <jerome.debretagne@gmail.com>,
linux-bluetooth@vger.kernel.org
Subject: Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ?
Date: Sun, 28 Feb 2016 20:54:40 +0100 [thread overview]
Message-ID: <56D35080.1010003@intel.com> (raw)
In-Reply-To: <CA+kEDGFX31qxxDsFYR-vdcb1UhH65xoZ0sxKcY9xFxC_J=GNfQ@mail.gmail.com>
Hi Jerome,
> It seems this BCM4324(1) rev B5 chipset is not initialized from a
> Bluetooth point of view, while working great for Wi-Fi.
I suppose this combo chip uses SDIO bus for WiFi and UART for Bluetooth.
If so, you need to attach the correct UART port to the hci_uart line
discipline from user-space.
> I've seen recent patches adding support for some devices simply by
> adding their respective ACPI ID in hci_bcm.c (BCM2E7C for MacBook
> 2015, BCM2E65 for the Asus T100TAF, BCM2E54 for the HP Omni 10) so
> I've just taken a look at the data listed by the ACPI subsystem on
> this tablet:
>
> $ ls /sys/bus/acpi/devices/BCM* -d1
> /sys/bus/acpi/devices/BCM2E3C:00
> /sys/bus/acpi/devices/BCM2E55:00
Usually, Broadcom BT controller is described in the ACPI table.
You can retrieve your ACPI table at /sys/firmware/acpi/tables/DSDT and
decompile it with iasl.
You should have a Bluetooth node (BTHX):
Device (BTH1)
{
Name (_HID, "BCM...")
With some gpio/irq resources. (0: wakeup, 1: power-, 2:host-wakeup).
> Neither of these 2 IDs (BCM2E3C, BCM2E55) is listed in hci_bcm.c. It's
> just a guess at this stage but could one of these be the missing
> element required in hci_bcm.c to initialize Bluetooth on the Lenovo
> ThinkPad 8 Tablet maybe? I don't know if the following commands might
> give a hint to filter between the two IDs:
>
> $ cat /sys/bus/acpi/devices/BCM2E3C\:00/status
> 0
> $ cat /sys/bus/acpi/devices/BCM2E55\:00/status
> 15
Check in your acpi table if one of them matches a bluetooth node.
Then, try to add it in the acpi device id list in hci_bcm.c.
Second step is to attach the device, but you need to find the correct
tty to use.
If your ACPI table is correct, BCM acpi device should appear as a child
of a tty device in sysfs.
The physical_node symlink in your device directory (sys/bus/acpi...)
gives you the hierarchical path.
Now, you can run btattach (bluez tool):
$ btattach -B /dev/ttySX -P bcm
And check that hci0 has been created
$ hciconfig
Regards,
Loic
--
Intel Open Source Technology Center
http://oss.intel.com/
next prev parent reply other threads:[~2016-02-28 19:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CA+kEDGEHfsODon6aOdLU86E9c0Lfs-4bo=ycEZz3MdEa1qLrKw@mail.gmail.com>
2016-02-22 9:17 ` Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? Arend Van Spriel
2016-02-28 17:56 ` Jérôme de Bretagne
2016-02-28 18:23 ` Jérôme de Bretagne
2016-02-28 19:54 ` Loic Poulain [this message]
[not found] ` <CA+kEDGHbzH9VPRUaz5-JPsU5kHTDk8UwGGmt94rGVXiG1KY-Ow@mail.gmail.com>
2016-02-28 22:58 ` Loic Poulain
2016-03-06 13:22 ` Jérôme de Bretagne
2016-03-07 9:42 ` Loic Poulain
2016-03-07 10:48 ` Jérôme de Bretagne
2016-03-07 15:06 ` Loic Poulain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56D35080.1010003@intel.com \
--to=loic.poulain@intel.com \
--cc=jerome.debretagne@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.