2019-11-15 02:12:25

by Abhishek Pandit-Subedi

[permalink] [raw]
Subject: [PATCH v5 0/4] Bluetooth: hci_bcm: Additional changes for BCM4354 support


While adding support for the BCM4354, I discovered a few more things
that weren't working as they should have.

First, we disallow serdev from setting the baudrate on BCM4354. Serdev
sets the oper_speed first before calling hu->setup() in
hci_uart_setup(). On the BCM4354, this results in bcm_setup() failing
when the hci reset times out.

Next, we add support for setting the PCM parameters, which consists of
a pair of vendor specific opcodes to set the pcm parameters. The
documentation for these params are available in the brcm_patchram_plus
package (i.e. https://github.com/balena-os/brcm_patchram_plus). This is
necessary for PCM to work properly.

All changes were tested with rk3288-veyron-minnie.dts.


Changes in v5:
- Rename parameters to bt-* and read as integer instead of bytestring
- Update documentation with defaults and put values in header
- Changed patch order

Changes in v4:
- Fix incorrect function name in hci_bcm

Changes in v3:
- Change disallow baudrate setting to return -EBUSY if called before
ready. bcm_proto is no longer modified and is back to being const.
- Changed btbcm_set_pcm_params to btbcm_set_pcm_int_params
- Changed brcm,sco-routing to brcm,bt-sco-routing

Changes in v2:
- Use match data to disallow baudrate setting
- Parse pcm parameters by name instead of as a byte string
- Fix prefix for dt-bindings commit

Abhishek Pandit-Subedi (4):
Bluetooth: hci_bcm: Disallow set_baudrate for BCM4354
Bluetooth: btbcm: Support pcm configuration
dt-bindings: net: broadcom-bluetooth: Add pcm config
Bluetooth: hci_bcm: Support pcm params in dts

.../bindings/net/broadcom-bluetooth.txt | 20 ++++-
drivers/bluetooth/btbcm.c | 19 +++++
drivers/bluetooth/btbcm.h | 8 ++
drivers/bluetooth/hci_bcm.c | 78 ++++++++++++++++++-
include/dt-bindings/bluetooth/brcm.h | 32 ++++++++
5 files changed, 154 insertions(+), 3 deletions(-)
create mode 100644 include/dt-bindings/bluetooth/brcm.h

--
2.24.0.432.g9d3f5f5b63-goog