* [PATCH v1 1/2] Bluetooth: dt-bindings: net: bluetooth: add BCM4384
2026-08-27 11:02 [PATCH v1 0/2] Add support for the Synaptics BCM4384 Bluetooth controller Andy Chang
@ 2026-08-27 11:02 ` Andy Chang
2026-08-27 16:38 ` Conor Dooley
2026-08-27 11:02 ` [PATCH v1 2/2] Bluetooth: btbcm: Add Synaptics 4384 chip support Andy Chang
1 sibling, 1 reply; 4+ messages in thread
From: Andy Chang @ 2026-08-27 11:02 UTC (permalink / raw)
To: linux-bluetooth, Marcel Holtmann, Luiz Augusto von Dentz
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
Linus Walleij, linux-kernel, Andy Chang
Add the brcm,bcm4384-bt compatible string to support the
Synaptics BCM4384 Bluetooth controller.
Signed-off-by: Andy Chang <andy.chang@synaptics.corp-partner.google.com>
---
.../devicetree/bindings/net/bluetooth/brcm,bluetooth.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/net/bluetooth/brcm,bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/brcm,bluetooth.yaml
index 95501e858e6f..612d21123aaa 100644
--- a/Documentation/devicetree/bindings/net/bluetooth/brcm,bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/bluetooth/brcm,bluetooth.yaml
@@ -31,6 +31,7 @@ properties:
- brcm,bcm43540-bt
- brcm,bcm4335a0
- brcm,bcm4349-bt
+ - brcm,bcm4384-bt
- cypress,cyw4373a0-bt
- infineon,cyw55572-bt
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v1 2/2] Bluetooth: btbcm: Add Synaptics 4384 chip support
2026-08-27 11:02 [PATCH v1 0/2] Add support for the Synaptics BCM4384 Bluetooth controller Andy Chang
2026-08-27 11:02 ` [PATCH v1 1/2] Bluetooth: dt-bindings: net: bluetooth: add BCM4384 Andy Chang
@ 2026-08-27 11:02 ` Andy Chang
1 sibling, 0 replies; 4+ messages in thread
From: Andy Chang @ 2026-08-27 11:02 UTC (permalink / raw)
To: linux-bluetooth, Marcel Holtmann, Luiz Augusto von Dentz
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
Linus Walleij, linux-kernel, Andy Chang
Add support for the Synaptics 4384 Bluetooth controller
by adding the corresponding chip IDs.
Tested on the VIM3 platform. Verified that the controller initializes
successfully and that firmware loading and basic Bluetooth operation
work as expected.
The VIM3 is a Khadas single-board computer that I used as the host
platform for testing the BCM4384 Bluetooth controller.
Signed-off-by: Andy Chang <andy.chang@synaptics.corp-partner.google.com>
---
drivers/bluetooth/btbcm.c | 6 +++++-
drivers/bluetooth/hci_bcm.c | 1 +
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
index 463d59890bef..63c4c788d9c4 100644
--- a/drivers/bluetooth/btbcm.c
+++ b/drivers/bluetooth/btbcm.c
@@ -31,6 +31,7 @@
#define BDADDR_BCM4334B0 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb0, 0x34, 0x43}})
#define BDADDR_BCM4345C5 (&(bdaddr_t) {{0xac, 0x1f, 0x00, 0xc5, 0x45, 0x43}})
#define BDADDR_BCM43341B (&(bdaddr_t) {{0xac, 0x1f, 0x00, 0x1b, 0x34, 0x43}})
+#define BDADDR_BCM4384B0 (&(bdaddr_t) {{0x93, 0x76, 0x00, 0xb0, 0x84, 0x43}})
#define BCM_FW_NAME_LEN 64
#define BCM_FW_NAME_COUNT_MAX 4
@@ -130,7 +131,8 @@ int btbcm_check_bdaddr(struct hci_dev *hdev)
!bacmp(&bda->bdaddr, BDADDR_BCM4345C5) ||
!bacmp(&bda->bdaddr, BDADDR_BCM43430A0) ||
!bacmp(&bda->bdaddr, BDADDR_BCM43430A1) ||
- !bacmp(&bda->bdaddr, BDADDR_BCM43341B)) {
+ !bacmp(&bda->bdaddr, BDADDR_BCM43341B) ||
+ !bacmp(&bda->bdaddr, BDADDR_BCM4384B0)) {
/* Try falling back to BDADDR EFI variable */
if (btbcm_set_bdaddr_from_efi(hdev) != 0) {
bt_dev_info(hdev, "BCM: Using default device address (%pMR)",
@@ -514,6 +516,8 @@ static const struct bcm_subver_table bcm_uart_subver_table[] = {
{ 0x4106, "BCM4335A0" }, /* 002.001.006 */
{ 0x410c, "BCM43430B0" }, /* 002.001.012 */
{ 0x2119, "BCM4373A0" }, /* 001.001.025 */
+ { 0x2128, "BCM4384A0" }, /* 001.001.040 */
+ { 0x4119, "BCM4384B0" }, /* 002.001.025 */
{ }
};
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index 9a103db7e355..e70b9f3fd968 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -1593,6 +1593,7 @@ static const struct of_device_id bcm_bluetooth_of_match[] = {
{ .compatible = "brcm,bcm4349-bt", .data = &bcm43438_device_data },
{ .compatible = "brcm,bcm43540-bt", .data = &bcm4354_device_data },
{ .compatible = "brcm,bcm4335a0" },
+ { .compatible = "brcm,bcm4384-bt" },
{ .compatible = "cypress,cyw4373a0-bt", .data = &cyw4373a0_device_data },
{ .compatible = "infineon,cyw55572-bt", .data = &cyw55572_device_data },
{ },
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread