Re: [PATCH v2 2/2] dt-bindings: net: bluetooth: Add device property nvm-postfix for QCA6174

From: Rocky Liao
Date: Tue Apr 09 2019 - 10:49:02 EST


On 2019-04-09 22:03, Rob Herring wrote:
On Tue, Apr 9, 2019 at 5:15 AM Rocky Liao <rjliao@xxxxxxxxxxxxxx> wrote:

On 2019-04-04 20:32, Marc Gonzalez wrote:
> +robh
>
> On 04/04/2019 11:08, Rocky Liao wrote:
>
>> This patchs patch adds an optional device property nvm-postfix to
>> allow the
>> driver to load customized nvm file based on this property
>
> While text /before/ is indeed called a "prefix", text /after/ is not a
> "postfix",
> but a "suffix".
>
>
>> Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git
>> a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> index 824c0e2..70cda4b 100644
>> --- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> +++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> @@ -16,6 +16,7 @@ Optional properties for compatible string
>> qcom,qca6174-bt:
>>
>> - enable-gpios: gpio specifier used to enable chip
>> - clocks: clock provided to the controller (SUSCLK_32KHZ)
>> + - nvm-postfix: nvm file postfix to load customized nvm file
>
> The device tree is supposed to describe hardware.
>
> The name of which file to load can hardly be considered part of the HW.
>
> Possible solutions:
> 1) derive the file name from the compatible string
> 2) pass the name as a module parameter
> 3) something else
>
>
>> @@ -39,6 +40,7 @@ serial@7570000 {
>>
>> enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
>> clocks = <&divclk4>;
>> + nvm-postfix = "i2s";
>> };
>> };
>
> If one provides the entire suffix, including the underscore, then you
> can
> simplify the code:
>
> snprintf(config.fwname, sizeof(config.fwname), "qca/nvm_%08x%s.bin",
> soc_ver, suffix ? suffix : "");
>
> Regards
.
Hi Marc,

The major purpose for that property is about the BT audio bus type, can
it be considered as part of the HW? If yes maybe we can use a property
name "audio-bus" to reflect that.

If not then I will adopt the solution 1 to add a new compatible string
"{ .compatible = "qcom,qca6174-bt-i2s" }" and load specific nvm for this
compatible string, please feel free to let me know if any other
concerns.

I don't think the suggestion was to add the nvm string to the
compatible, but rather compatible strings serve as a map key. Having
board specific firmware files for wifi/bt is pretty common, but
parameters for 'i2s' is a bit strange. So a better explanation of what
parameters this contains would help. How/when does it vary, for
example?

Also, if it is only a handful of parameters, making them DT properties
is preferred.

Rob

Ok, I prefer to go with adding a device property "firmware-name" with full firmware name as you suggested in previous comment.
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project