summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth/btbcm.c
diff options
context:
space:
mode:
authorFrederic Danis <frederic.danis@linux.intel.com>2015-07-27 12:02:25 -0400
committerMarcel Holtmann <marcel@holtmann.org>2015-07-30 07:18:08 -0400
commit4a546ec364633fcbe5709811230d7e0580c9dc1d (patch)
tree80ad9bcd42b97108be7093b310690dcfb37ab5a3 /drivers/bluetooth/btbcm.c
parentfa4cf04e65cb7f75c147e2cc80f0f472b0d93534 (diff)
Bluetooth: btbcm: Add BCM4330B1 UART device
Add "waiting for configuration" address. Add lmp_subver and firmware name for BCM4330B1 controller. Signed-off-by: Frederic Danis <frederic.danis@linux.intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth/btbcm.c')
-rw-r--r--drivers/bluetooth/btbcm.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
index 9ceb8ac68fdc..02ed816a18f9 100644
--- a/drivers/bluetooth/btbcm.c
+++ b/drivers/bluetooth/btbcm.c
@@ -34,6 +34,7 @@
34 34
35#define BDADDR_BCM20702A0 (&(bdaddr_t) {{0x00, 0xa0, 0x02, 0x70, 0x20, 0x00}}) 35#define BDADDR_BCM20702A0 (&(bdaddr_t) {{0x00, 0xa0, 0x02, 0x70, 0x20, 0x00}})
36#define BDADDR_BCM4324B3 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb3, 0x24, 0x43}}) 36#define BDADDR_BCM4324B3 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb3, 0x24, 0x43}})
37#define BDADDR_BCM4330B1 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb1, 0x30, 0x43}})
37 38
38int btbcm_check_bdaddr(struct hci_dev *hdev) 39int btbcm_check_bdaddr(struct hci_dev *hdev)
39{ 40{
@@ -66,9 +67,13 @@ int btbcm_check_bdaddr(struct hci_dev *hdev)
66 * 67 *
67 * The address 43:24:B3:00:00:00 indicates a BCM4324B3 controller 68 * The address 43:24:B3:00:00:00 indicates a BCM4324B3 controller
68 * with waiting for configuration state. 69 * with waiting for configuration state.
70 *
71 * The address 43:30:B1:00:00:00 indicates a BCM4330B1 controller
72 * with waiting for configuration state.
69 */ 73 */
70 if (!bacmp(&bda->bdaddr, BDADDR_BCM20702A0) || 74 if (!bacmp(&bda->bdaddr, BDADDR_BCM20702A0) ||
71 !bacmp(&bda->bdaddr, BDADDR_BCM4324B3)) { 75 !bacmp(&bda->bdaddr, BDADDR_BCM4324B3) ||
76 !bacmp(&bda->bdaddr, BDADDR_BCM4330B1)) {
72 BT_INFO("%s: BCM: Using default device address (%pMR)", 77 BT_INFO("%s: BCM: Using default device address (%pMR)",
73 hdev->name, &bda->bdaddr); 78 hdev->name, &bda->bdaddr);
74 set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); 79 set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
@@ -241,6 +246,7 @@ static const struct {
241 u16 subver; 246 u16 subver;
242 const char *name; 247 const char *name;
243} bcm_uart_subver_table[] = { 248} bcm_uart_subver_table[] = {
249 { 0x4103, "BCM4330B1" }, /* 002.001.003 */
244 { 0x410e, "BCM43341B0" }, /* 002.001.014 */ 250 { 0x410e, "BCM43341B0" }, /* 002.001.014 */
245 { 0x4406, "BCM4324B3" }, /* 002.004.006 */ 251 { 0x4406, "BCM4324B3" }, /* 002.004.006 */
246 { 0x610c, "BCM4354" }, /* 003.001.012 */ 252 { 0x610c, "BCM4354" }, /* 003.001.012 */