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

From: Dmitry Baryshkov
Date: Mon Mar 18 2024 - 09:01:16 EST


On Mon, 18 Mar 2024 at 13:09, Johan Hovold <johan+linaro@xxxxxxxxxx> wrote:
>
> 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

This compatible doesn't describe new hardware kind. As such, I think,
the better way would be to continue using qcom,wcn3991-bt compatible
string + add some kind of qcom,bt-addr-le property.

> + - 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
>
>


--
With best wishes
Dmitry