Re: [PATCH v2 1/4] dt-bindings: bluetooth: add 'qcom,product-variant'

From: Cheng Jiang
Date: Wed Nov 20 2024 - 23:03:07 EST


Hi Dmitry,

On 11/20/2024 6:43 PM, Dmitry Baryshkov wrote:
> On Wed, Nov 20, 2024 at 05:54:25PM +0800, Cheng Jiang wrote:
>> Several Qualcomm projects will use the same Bluetooth chip, each
>> focusing on different features. For instance, consumer projects
>> prioritize the A2DP SRC feature, while IoT projects focus on the A2DP
>> SINK feature, which may have more optimizations for coexistence when
>> acting as a SINK. Due to the patch size, it is not feasible to include
>> all features in a single firmware.
>>
>> Therefore, the 'product-variant' devicetree property is used to provide
>> product information for the Bluetooth driver to load the appropriate
>> firmware.
>>
>> If this property is not defined, the default firmware will be loaded,
>> ensuring there are no backward compatibility issues with older
>> devicetrees.
>>
>> The product-variant defines like this:
>> 0 - 15 (16 bits) are product line specific definitions
>> 16 - 23 (8 bits) are for the product line.
>> 24 - 31 (8 bits) are reserved for future use, 0 currently
>
> Please use text strings instead of encoding this information into random
> integers and then using just 3 bits out of 32.
Ack. Originally intended to make it more flexible for future use. It can be
text strings for current requirement.
>
>>
>> |---------------------------------------------------------------------|
>> | 32 Bits |
>> |---------------------------------------------------------------------|
>> | 31 - 24 (bits) | 23 - 16 (bits) | 15 - 0 (16 bits) |
>> |---------------------------------------------------------------------|
>> | Reserved | 0: default | 0: default |
>> | | 1: CE | |
>> | | 2: IoT | |
>> | | 3: Auto | |
>> | | 4: Reserved | |
>> |---------------------------------------------------------------------|
>>
>> Signed-off-by: Cheng Jiang <quic_chejiang@xxxxxxxxxxx>
>> ---
>> .../bindings/net/bluetooth/qualcomm-bluetooth.yaml | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
>> index 7bb68311c609..9019fe7bcdc6 100644
>> --- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
>> +++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
>> @@ -110,6 +110,12 @@ properties:
>> description:
>> boot firmware is incorrectly passing the address in big-endian order
>>
>> + qcom,product-variant:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description:
>> + specify the product information for driver to load the appropriate firmware
>
> DT describes hardware. Is this a hardware property?

It has been added to identify the firmware image for the platform. The driver
parses it, and then the rampatch is selected from a specify directory. Currently,
there is a 'firmware-name' parameter, but it is only used to specify the NVM
(config) file. We also need to specify the rampatch (TLV file).


Can we re-use the "firmware-name"? add two segments like the following?
firmware-name = "rampatch_xx.tlv", "nvm_xx.bin";

Or add a new property to specify the rampatch file?
rampatch-name = "rampatch_xx.tlv";

>
>> +
>> +
>> required:
>> - compatible
>>
>> --
>> 2.25.1
>>
>