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@xxxxxxxxxx> --- .../net/bluetooth/qualcomm-bluetooth.yaml | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) 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: -- 2.43.2