I'm trying to detect what driver is responsible for providing the HCI interface for the Raspberry Pi 3 Bluetooth module.
Here is an equivalent of what I'd like to achieve but for a USB dongle.
user@lime:~$ hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 00:1A:7D:DA:71:13 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING
RX bytes:616 acl:0 sco:0 events:37 errors:0
TX bytes:977 acl:0 sco:0 commands:37 errors:0
Because of Bus: USB
i know it's a usb device.
user@lime:~$ lsusb
Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
The dongle is: Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio...
user@lime:~$ lsusb -t
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
|__ Port 1: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 1: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
Based on the port (4) and device (2) I see that the driver used is btusb
.
Applying the same procedure for the UART connected chip on the RPi3.
Running hciconfig
results in:
$ hciconfig
hci0: Type: BR/EDR Bus: UART
BD Address: B8:27:EB:E7:80:CE ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING
RX bytes:717 acl:0 sco:0 events:42 errors:0
TX bytes:1532 acl:0 sco:0 commands:42 errors:0
The Bus: UART
confirms it's a UART connected device.
How do I find the driver in use?