Re: [PATCH v3 3/4] bluetooth: hci_uart: add LL protocol serdev driver support
From: Rob Herring <hidden>
Date: 2017-04-19 20:47:23
Also in:
linux-arm-kernel, linux-bluetooth, linux-devicetree
On Mon, Apr 17, 2017 at 3:11 PM, Adam Ford [off-list ref] wrote:
On Thu, Apr 13, 2017 at 10:03 AM, Rob Herring [off-list ref] wrote:quoted
Turns out that the LL protocol and the TI-ST are the same thing AFAICT. The TI-ST adds firmware loading, GPIO control, and shared access for NFC, FM radio, etc. For now, we're only implementing what is needed for BT. This mirrors other drivers like BCM and Intel, but uses the new serdev bus. The firmware loading is greatly simplified by using existing infrastructure to send commands. It may be a bit slower than the original code using synchronous functions, but the real bottleneck is likely doing firmware load at 115.2kbps.I am using pdata-quirks to drive my wl1283 Bluetooth on a DM3730. I have the Bluetooth set to 3000000 baud in pdata quirks. Looking at the binding, I don't see an option to set the baudrate. Is there (or will there) be a way to set the baud rate of the Bluetooth?
If you read hci_ti_probe, you will see it is already there. The default is 3Mbps and the DT can override that with "max-speed". The intent is that 3Mbps is the max the device can do and max-speed is only for board or host limitations. Though I just checked the datasheet on the 1835 and it can go up to 4364kbps. No datasheets for wl1283, so I have no idea what the max is.
quoted
+static int hci_ti_probe(struct serdev_device *serdev) +{ + struct hci_uart *hu; + struct ll_device *lldev; + u32 max_speed = 3000000;
[...]
quoted
+ of_property_read_u32(serdev->dev.of_node, "max-speed", &max_speed); + hci_uart_set_speeds(hu, 115200, max_speed);