Bluetooth: btbcm: Support pcm configuration
authorAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
Tue, 26 Nov 2019 07:17:30 +0000 (08:17 +0100)
committerJohan Hedberg <johan.hedberg@intel.com>
Wed, 27 Nov 2019 07:09:55 +0000 (09:09 +0200)
commit528379902337102b0264fe5343eafb3d6c59fa45
tree7bf6a421019828ad694605a47773f7b62f8e5f86
parent5d6f391073d5c1c903ac12be72c66b96b2ae93f4
Bluetooth: btbcm: Support pcm configuration

Add BCM vendor specific command to configure PCM parameters. The new
vendor opcode allows us to set the sco routing, the pcm interface rate,
and a few other pcm specific options (frame sync, sync mode, and clock
mode). See broadcom-bluetooth.txt in Documentation for more information
about valid values for those settings.

Here is an example trace where this opcode was used to configure
a BCM4354:

        < HCI Command: Vendor (0x3f|0x001c) plen 5
                01 02 00 01 01
        > HCI Event: Command Complete (0x0e) plen 4
        Vendor (0x3f|0x001c) ncmd 1
                Status: Success (0x00)

We can read back the values as well with ocf 0x001d to confirm the
values that were set:
        $ hcitool cmd 0x3f 0x001d
        < HCI Command: ogf 0x3f, ocf 0x001d, plen 0
        > HCI Event: 0x0e plen 9
        01 1D FC 00 01 02 00 01 01

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
drivers/bluetooth/btbcm.c
drivers/bluetooth/btbcm.h