diff mbox series

[v2,1/4] dt-bindings: bluetooth: add new wcn3991 compatible to fix bd_addr

Message ID 20240318110855.31954-2-johan+linaro@kernel.org
State New
Headers show
Series Bluetooth: qca: fix device-address endianness | expand

Commit Message

Johan Hovold March 18, 2024, 11:08 a.m. UTC
Several Qualcomm Bluetooth controllers lack persistent storage for the
device address and instead one can be provided by the boot firmware
using the 'local-bd-address' devicetree property.

The Bluetooth bindings clearly says that the address should be specified
in little-endian order, but due to a long-standing bug in the Qualcomm
driver which reversed the address some bootloaders have been providing
the address in big-endian order instead.

The only device out there that should be affected by this is the WCN3991
used in some Chromebooks. To maintain backwards compatibility, mark the
current compatible string as deprecated and add a new
'qcom,wcn3991-bt-bdaddr-le' for firmware which conforms with the
binding.

Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
 .../net/bluetooth/qualcomm-bluetooth.yaml     | 29 +++++++++++--------
 1 file changed, 17 insertions(+), 12 deletions(-)
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
index eba2f3026ab0..b6fce6d02138 100644
--- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
@@ -15,18 +15,22 @@  description:
 
 properties:
   compatible:
-    enum:
-      - qcom,qca2066-bt
-      - qcom,qca6174-bt
-      - qcom,qca9377-bt
-      - qcom,wcn3988-bt
-      - qcom,wcn3990-bt
-      - qcom,wcn3991-bt
-      - qcom,wcn3998-bt
-      - qcom,qca6390-bt
-      - qcom,wcn6750-bt
-      - qcom,wcn6855-bt
-      - qcom,wcn7850-bt
+    oneOf:
+      - enum:
+          - qcom,qca2066-bt
+          - qcom,qca6174-bt
+          - qcom,qca9377-bt
+          - qcom,wcn3988-bt
+          - qcom,wcn3990-bt
+          - qcom,wcn3991-bt-bdaddr-le
+          - qcom,wcn3998-bt
+          - qcom,qca6390-bt
+          - qcom,wcn6750-bt
+          - qcom,wcn6855-bt
+          - qcom,wcn7850-bt
+      - enum:
+          - qcom,wcn3991-bt
+        deprecated: true
 
   enable-gpios:
     maxItems: 1
@@ -122,6 +126,7 @@  allOf:
               - qcom,wcn3988-bt
               - qcom,wcn3990-bt
               - qcom,wcn3991-bt
+              - qcom,wcn3991-bt-bdaddr-le
               - qcom,wcn3998-bt
     then:
       required: