Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Bluetooth: btbcm: Support the BCM4354 Bluetooth UART device

Support the BCM4354 chip and introduce vendor specific command
parameter definitions.

Signed-off-by: Ilya Faenson <ifaenson@broadcom.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

authored by

Ilya Faenson and committed by
Marcel Holtmann
40db5f0e 5c698e8b

+33
+2
drivers/bluetooth/btbcm.c
··· 243 243 } bcm_uart_subver_table[] = { 244 244 { 0x410e, "BCM43341B0" }, /* 002.001.014 */ 245 245 { 0x4406, "BCM4324B3" }, /* 002.004.006 */ 246 + { 0x610c, "BCM4354" }, /* 003.001.012 */ 246 247 { } 247 248 }; 248 249 ··· 280 279 281 280 switch ((rev & 0xf000) >> 12) { 282 281 case 0: 282 + case 1: 283 283 case 3: 284 284 for (i = 0; bcm_uart_subver_table[i].name; i++) { 285 285 if (subver == bcm_uart_subver_table[i].subver) {
+31
drivers/bluetooth/btbcm.h
··· 33 33 __u8 type; 34 34 } __packed; 35 35 36 + struct bcm_set_sleep_mode { 37 + __u8 sleep_mode; 38 + __u8 idle_host; 39 + __u8 idle_dev; 40 + __u8 bt_wake_active; 41 + __u8 host_wake_active; 42 + __u8 allow_host_sleep; 43 + __u8 combine_modes; 44 + __u8 tristate_control; 45 + __u8 usb_auto_sleep; 46 + __u8 usb_resume_timeout; 47 + __u8 pulsed_host_wake; 48 + __u8 break_to_host; 49 + } __packed; 50 + 51 + struct bcm_set_pcm_int_params { 52 + __u8 routing; 53 + __u8 rate; 54 + __u8 frame_sync; 55 + __u8 sync_mode; 56 + __u8 clock_mode; 57 + } __packed; 58 + 59 + struct bcm_set_pcm_format_params { 60 + __u8 lsb_first; 61 + __u8 fill_value; 62 + __u8 fill_method; 63 + __u8 fill_num; 64 + __u8 right_justify; 65 + } __packed; 66 + 36 67 #if IS_ENABLED(CONFIG_BT_BCM) 37 68 38 69 int btbcm_check_bdaddr(struct hci_dev *hdev);