* [PATCH v4 1/2] dt-bindings: net: bluetooth: nxp: Add support to set BD address @ 2025-01-15 10:46 Neeraj Sanjay Kale 2025-01-15 10:46 ` [PATCH v4 2/2] Bluetooth: btnxpuart: Add support for " Neeraj Sanjay Kale 2025-01-15 11:29 ` [v4,1/2] dt-bindings: net: bluetooth: nxp: Add support to " bluez.test.bot 0 siblings, 2 replies; 3+ messages in thread From: Neeraj Sanjay Kale @ 2025-01-15 10:46 UTC (permalink / raw) To: marcel, luiz.dentz, robh, krzk+dt, conor+dt Cc: linux-bluetooth, linux-kernel, devicetree, amitkumar.karwar, neeraj.sanjaykale, sherry.sun, ziniu.wang_1, johan.korsnes, kristian.krohn, manjeet.gupta Allow user to set custom BD address for NXP chipsets. Signed-off-by: Neeraj Sanjay Kale <neeraj.sanjaykale@nxp.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- .../devicetree/bindings/net/bluetooth/nxp,88w8987-bt.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/bluetooth/nxp,88w8987-bt.yaml b/Documentation/devicetree/bindings/net/bluetooth/nxp,88w8987-bt.yaml index 0a2d7baf5db3..499c816071ec 100644 --- a/Documentation/devicetree/bindings/net/bluetooth/nxp,88w8987-bt.yaml +++ b/Documentation/devicetree/bindings/net/bluetooth/nxp,88w8987-bt.yaml @@ -17,6 +17,9 @@ description: maintainers: - Neeraj Sanjay Kale <neeraj.sanjaykale@nxp.com> +allOf: + - $ref: bluetooth-controller.yaml# + properties: compatible: enum: @@ -43,7 +46,7 @@ properties: required: - compatible -additionalProperties: false +unevaluatedProperties: false examples: - | @@ -54,5 +57,6 @@ examples: fw-init-baudrate = <3000000>; firmware-name = "uartuart8987_bt_v0.bin"; device-wakeup-gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; + local-bd-address = [11 22 33 44 55 66]; }; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v4 2/2] Bluetooth: btnxpuart: Add support for set BD address 2025-01-15 10:46 [PATCH v4 1/2] dt-bindings: net: bluetooth: nxp: Add support to set BD address Neeraj Sanjay Kale @ 2025-01-15 10:46 ` Neeraj Sanjay Kale 2025-01-15 11:29 ` [v4,1/2] dt-bindings: net: bluetooth: nxp: Add support to " bluez.test.bot 1 sibling, 0 replies; 3+ messages in thread From: Neeraj Sanjay Kale @ 2025-01-15 10:46 UTC (permalink / raw) To: marcel, luiz.dentz, robh, krzk+dt, conor+dt Cc: linux-bluetooth, linux-kernel, devicetree, amitkumar.karwar, neeraj.sanjaykale, sherry.sun, ziniu.wang_1, johan.korsnes, kristian.krohn, manjeet.gupta This adds support for setting BD address during hci registration. NXP FW does not allow vendor commands unless it receives a reset command after FW download and initialization done. As a workaround, the .set_bdaddr callback function will first send the HCI reset command, followed by the actual vendor command to set BD address. Signed-off-by: Loic Poulain <loic.poulain@linaro.org> Signed-off-by: Johan Korsnes <johan.korsnes@remarkable.no> Signed-off-by: Kristian Husevåg Krohn <kristian.krohn@remarkable.no> Tested-by: Neeraj Sanjay Kale <neeraj.sanjaykale@nxp.com> Signed-off-by: Neeraj Sanjay Kale <neeraj.sanjaykale@nxp.com> --- v4: hci0 interface shows RAW mode if 'local-bd-address' not defined and HCI_QUIRK_USE_BDADDR_PROPERTY is set. Add Quirk only if device tree property 'local-bd-address' found. (Neeraj) --- drivers/bluetooth/btnxpuart.c | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/drivers/bluetooth/btnxpuart.c b/drivers/bluetooth/btnxpuart.c index 1230045d78a5..f237c0264e0e 100644 --- a/drivers/bluetooth/btnxpuart.c +++ b/drivers/bluetooth/btnxpuart.c @@ -1197,6 +1197,34 @@ static int nxp_set_ind_reset(struct hci_dev *hdev, void *data) return hci_recv_frame(hdev, skb); } +static int nxp_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr) +{ + u8 data[8] = { 0xfe, 0x06, 0, 0, 0, 0, 0, 0 }; + struct sk_buff *skb; + int err; + + memcpy(data + 2, bdaddr, 6); + + skb = __hci_cmd_sync(hdev, HCI_OP_RESET, 0, NULL, HCI_INIT_TIMEOUT); + if (IS_ERR(skb)) { + err = PTR_ERR(skb); + bt_dev_err(hdev, "Reset before setting local-bd-addr failed (%ld)", + PTR_ERR(skb)); + return err; + } + kfree_skb(skb); + + skb = __hci_cmd_sync(hdev, 0xfc22, sizeof(data), data, HCI_CMD_TIMEOUT); + if (IS_ERR(skb)) { + err = PTR_ERR(skb); + bt_dev_err(hdev, "Changing device address failed (%d)", err); + return err; + } + kfree_skb(skb); + + return 0; +} + /* NXP protocol */ static int nxp_setup(struct hci_dev *hdev) { @@ -1500,6 +1528,7 @@ static int nxp_serdev_probe(struct serdev_device *serdev) { struct hci_dev *hdev; struct btnxpuart_dev *nxpdev; + bdaddr_t ba; nxpdev = devm_kzalloc(&serdev->dev, sizeof(*nxpdev), GFP_KERNEL); if (!nxpdev) @@ -1547,8 +1576,16 @@ static int nxp_serdev_probe(struct serdev_device *serdev) hdev->send = nxp_enqueue; hdev->hw_error = nxp_hw_err; hdev->shutdown = nxp_shutdown; + hdev->set_bdaddr = nxp_set_bdaddr; + SET_HCIDEV_DEV(hdev, &serdev->dev); + device_property_read_u8_array(&nxpdev->serdev->dev, + "local-bd-address", + (u8 *)&ba, sizeof(ba)); + if (bacmp(&ba, BDADDR_ANY)) + set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); + if (hci_register_dev(hdev) < 0) { dev_err(&serdev->dev, "Can't register HCI device\n"); goto probe_fail; -- 2.25.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* RE: [v4,1/2] dt-bindings: net: bluetooth: nxp: Add support to set BD address 2025-01-15 10:46 [PATCH v4 1/2] dt-bindings: net: bluetooth: nxp: Add support to set BD address Neeraj Sanjay Kale 2025-01-15 10:46 ` [PATCH v4 2/2] Bluetooth: btnxpuart: Add support for " Neeraj Sanjay Kale @ 2025-01-15 11:29 ` bluez.test.bot 1 sibling, 0 replies; 3+ messages in thread From: bluez.test.bot @ 2025-01-15 11:29 UTC (permalink / raw) To: linux-bluetooth, neeraj.sanjaykale [-- Attachment #1: Type: text/plain, Size: 1848 bytes --] This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=925659 ---Test result--- Test Summary: CheckPatch PENDING 0.37 seconds GitLint PENDING 0.26 seconds SubjectPrefix FAIL 0.43 seconds BuildKernel PASS 24.30 seconds CheckAllWarning PASS 26.13 seconds CheckSparse PASS 29.59 seconds BuildKernel32 PASS 25.06 seconds TestRunnerSetup PASS 419.74 seconds TestRunner_l2cap-tester PASS 21.05 seconds TestRunner_iso-tester PASS 38.26 seconds TestRunner_bnep-tester PASS 5.92 seconds TestRunner_mgmt-tester PASS 121.42 seconds TestRunner_rfcomm-tester PASS 7.63 seconds TestRunner_sco-tester PASS 9.44 seconds TestRunner_ioctl-tester PASS 8.37 seconds TestRunner_mesh-tester PASS 5.98 seconds TestRunner_smp-tester PASS 10.51 seconds TestRunner_userchan-tester PASS 8.25 seconds IncrementalBuild PENDING 0.56 seconds Details ############################## Test: CheckPatch - PENDING Desc: Run checkpatch.pl script Output: ############################## Test: GitLint - PENDING Desc: Run gitlint Output: ############################## Test: SubjectPrefix - FAIL Desc: Check subject contains "Bluetooth" prefix Output: "Bluetooth: " prefix is not specified in the subject ############################## Test: IncrementalBuild - PENDING Desc: Incremental build with the patches in the series Output: --- Regards, Linux Bluetooth ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-15 11:29 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-01-15 10:46 [PATCH v4 1/2] dt-bindings: net: bluetooth: nxp: Add support to set BD address Neeraj Sanjay Kale 2025-01-15 10:46 ` [PATCH v4 2/2] Bluetooth: btnxpuart: Add support for " Neeraj Sanjay Kale 2025-01-15 11:29 ` [v4,1/2] dt-bindings: net: bluetooth: nxp: Add support to " bluez.test.bot
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.