diff options
author | Frederic Danis <frederic.danis@linux.intel.com> | 2015-07-27 12:02:25 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2015-07-30 07:18:08 -0400 |
commit | 4a546ec364633fcbe5709811230d7e0580c9dc1d (patch) | |
tree | 80ad9bcd42b97108be7093b310690dcfb37ab5a3 /drivers/bluetooth/btbcm.c | |
parent | fa4cf04e65cb7f75c147e2cc80f0f472b0d93534 (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.c | 8 |
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 | ||
38 | int btbcm_check_bdaddr(struct hci_dev *hdev) | 39 | int 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 */ |