diff mbox series

[v1,1/1] arm64: dts: qcom: qcs8300-ride: enable BT on qcs8300-ride

Message ID 20250211104421.1172892-2-quic_chejiang@quicinc.com (mailing list archive)
State New
Headers show
Series Enable BT for qcs8300-ride | expand

Commit Message

Cheng Jiang Feb. 11, 2025, 10:44 a.m. UTC
Enable BT on qcs8300-ride by adding a node for the BT module. Since the
platform uses the QCA6698 Bluetooth chip. While the QCA6698 shares th
same IP core as the WCN6855, it has different RF components and RAM sizes,
requiring new firmware files. Use the firmware-name property to specify
the NVM and rampatch firmware to load.

Signed-off-by: Cheng Jiang <quic_chejiang@quicinc.com>
---
 arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 24 +++++++++++++++++++++++
 1 file changed, 24 insertions(+)

Comments

Krzysztof Kozlowski Feb. 11, 2025, 11:03 a.m. UTC | #1
On 11/02/2025 11:44, Cheng Jiang wrote:
>  	};
>  };
>  
> +&uart2 {
> +	status = "okay";
> +	bluetooth: bluetooth {

Why do you need the label?

> +		compatible = "qcom,wcn6855-bt";
> +		firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&bt_en_state>;
> +		enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; /* BT_EN */
> +
> +		vddio-supply       = <&vreg_conn_pa>;         /* bt-vdd-ctrl1-supply */
> +		vddbtcxmx-supply   = <&vreg_conn_1p8>;        /* bt-vdd-ctrl2-supply */

Only one space before '='.

I think this has multiple test failures.

Best regards,
Krzysztof
Konrad Dybcio Feb. 11, 2025, 2:34 p.m. UTC | #2
On 11.02.2025 11:44 AM, Cheng Jiang wrote:
> Enable BT on qcs8300-ride by adding a node for the BT module. Since the
> platform uses the QCA6698 Bluetooth chip. While the QCA6698 shares th
> same IP core as the WCN6855, it has different RF components and RAM sizes,
> requiring new firmware files. Use the firmware-name property to specify
> the NVM and rampatch firmware to load.
> 
> Signed-off-by: Cheng Jiang <quic_chejiang@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 24 +++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> index a6991e8e2df6..93458773b72d 100644
> --- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> @@ -17,6 +17,7 @@ / {
>  
>  	aliases {
>  		serial0 = &uart7;
> +		serial1 = &uart2;
>  	};
>  
>  	chosen {
> @@ -451,6 +452,13 @@ &serdes0 {
>  };
>  
>  &tlmm {
> +	bt_en_state: bt-en-state {
> +		pins = "gpio55";
> +		function = "normal";
> +		output-low;
> +		bias-pull-down;
> +	};
> +
>  	ethernet0_default: ethernet0-default-state {
>  		ethernet0_mdc: ethernet0-mdc-pins {
>  			pins = "gpio5";
> @@ -544,6 +552,22 @@ wlan_en_state: wlan-en-state {
>  	};
>  };
>  
> +&uart2 {
> +	status = "okay";
> +	bluetooth: bluetooth {

Please add a newline between the last property and subnodes

> +		compatible = "qcom,wcn6855-bt";
> +		firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&bt_en_state>;

You should use qcom,wcn6855-pmu (see e.g. sc8280xp-crd.dts)

> +		enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; /* BT_EN */
> +
> +		vddio-supply       = <&vreg_conn_pa>;         /* bt-vdd-ctrl1-supply */
> +		vddbtcxmx-supply   = <&vreg_conn_1p8>;        /* bt-vdd-ctrl2-supply */

Drop these comments
Cheng Jiang Feb. 13, 2025, 5:56 a.m. UTC | #3
Hi Krzysztof,

On 2/11/2025 7:03 PM, Krzysztof Kozlowski wrote:
> On 11/02/2025 11:44, Cheng Jiang wrote:
>>  	};
>>  };
>>  
>> +&uart2 {
>> +	status = "okay";
>> +	bluetooth: bluetooth {
> 
> Why do you need the label?
> 
Yes, label is not needed. 
>> +		compatible = "qcom,wcn6855-bt";
>> +		firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
>> +
>> +		pinctrl-names = "default";
>> +		pinctrl-0 = <&bt_en_state>;
>> +		enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; /* BT_EN */
>> +
>> +		vddio-supply       = <&vreg_conn_pa>;         /* bt-vdd-ctrl1-supply */
>> +		vddbtcxmx-supply   = <&vreg_conn_1p8>;        /* bt-vdd-ctrl2-supply */
> 
> Only one space before '='.
> 
> I think this has multiple test failures.
> 
Ack, Will change in next version. 

> Best regards,
> Krzysztof
Cheng Jiang Feb. 13, 2025, 5:59 a.m. UTC | #4
Hi Konrad,

On 2/11/2025 10:34 PM, Konrad Dybcio wrote:
> On 11.02.2025 11:44 AM, Cheng Jiang wrote:
>> Enable BT on qcs8300-ride by adding a node for the BT module. Since the
>> platform uses the QCA6698 Bluetooth chip. While the QCA6698 shares th
>> same IP core as the WCN6855, it has different RF components and RAM sizes,
>> requiring new firmware files. Use the firmware-name property to specify
>> the NVM and rampatch firmware to load.
>>
>> Signed-off-by: Cheng Jiang <quic_chejiang@quicinc.com>
>> ---
>>  arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 24 +++++++++++++++++++++++
>>  1 file changed, 24 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
>> index a6991e8e2df6..93458773b72d 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
>> @@ -17,6 +17,7 @@ / {
>>  
>>  	aliases {
>>  		serial0 = &uart7;
>> +		serial1 = &uart2;
>>  	};
>>  
>>  	chosen {
>> @@ -451,6 +452,13 @@ &serdes0 {
>>  };
>>  
>>  &tlmm {
>> +	bt_en_state: bt-en-state {
>> +		pins = "gpio55";
>> +		function = "normal";
>> +		output-low;
>> +		bias-pull-down;
>> +	};
>> +
>>  	ethernet0_default: ethernet0-default-state {
>>  		ethernet0_mdc: ethernet0-mdc-pins {
>>  			pins = "gpio5";
>> @@ -544,6 +552,22 @@ wlan_en_state: wlan-en-state {
>>  	};
>>  };
>>  
>> +&uart2 {
>> +	status = "okay";
>> +	bluetooth: bluetooth {
> 
> Please add a newline between the last property and subnodes
> 
Ack.
>> +		compatible = "qcom,wcn6855-bt";
>> +		firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
>> +
>> +		pinctrl-names = "default";
>> +		pinctrl-0 = <&bt_en_state>;
> 
> You should use qcom,wcn6855-pmu (see e.g. sc8280xp-crd.dts)
> 
Ack. Will use the power sequence for BT power control. 
>> +		enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; /* BT_EN */
>> +
>> +		vddio-supply       = <&vreg_conn_pa>;         /* bt-vdd-ctrl1-supply */
>> +		vddbtcxmx-supply   = <&vreg_conn_1p8>;        /* bt-vdd-ctrl2-supply */
> 
> Drop these comments
> 
Ack.
Krzysztof Kozlowski Feb. 13, 2025, 7:36 a.m. UTC | #5
On 13/02/2025 06:56, Cheng Jiang wrote:
> Yes, label is not needed. 
>>> +		compatible = "qcom,wcn6855-bt";
>>> +		firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
>>> +
>>> +		pinctrl-names = "default";
>>> +		pinctrl-0 = <&bt_en_state>;
>>> +		enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; /* BT_EN */
>>> +
>>> +		vddio-supply       = <&vreg_conn_pa>;         /* bt-vdd-ctrl1-supply */
>>> +		vddbtcxmx-supply   = <&vreg_conn_1p8>;        /* bt-vdd-ctrl2-supply */
>>
>> Only one space before '='.
>>
>> I think this has multiple test failures.
>>
> Ack, Will change in next version. 

Are you going to test it as well?

Best regards,
Krzysztof
Cheng Jiang Feb. 13, 2025, 10:35 a.m. UTC | #6
Hi Krzysztof,

On 2/13/2025 3:36 PM, Krzysztof Kozlowski wrote:
> On 13/02/2025 06:56, Cheng Jiang wrote:
>> Yes, label is not needed. 
>>>> +		compatible = "qcom,wcn6855-bt";
>>>> +		firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
>>>> +
>>>> +		pinctrl-names = "default";
>>>> +		pinctrl-0 = <&bt_en_state>;
>>>> +		enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; /* BT_EN */
>>>> +
>>>> +		vddio-supply       = <&vreg_conn_pa>;         /* bt-vdd-ctrl1-supply */
>>>> +		vddbtcxmx-supply   = <&vreg_conn_1p8>;        /* bt-vdd-ctrl2-supply */
>>>
>>> Only one space before '='.
>>>
>>> I think this has multiple test failures.
>>>
>> Ack, Will change in next version. 
> 
> Are you going to test it as well?
> 
Yes, I will test it. Thanks! 

> Best regards,
> Krzysztof
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index a6991e8e2df6..93458773b72d 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -17,6 +17,7 @@  / {
 
 	aliases {
 		serial0 = &uart7;
+		serial1 = &uart2;
 	};
 
 	chosen {
@@ -451,6 +452,13 @@  &serdes0 {
 };
 
 &tlmm {
+	bt_en_state: bt-en-state {
+		pins = "gpio55";
+		function = "normal";
+		output-low;
+		bias-pull-down;
+	};
+
 	ethernet0_default: ethernet0-default-state {
 		ethernet0_mdc: ethernet0-mdc-pins {
 			pins = "gpio5";
@@ -544,6 +552,22 @@  wlan_en_state: wlan-en-state {
 	};
 };
 
+&uart2 {
+	status = "okay";
+	bluetooth: bluetooth {
+		compatible = "qcom,wcn6855-bt";
+		firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&bt_en_state>;
+		enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; /* BT_EN */
+
+		vddio-supply       = <&vreg_conn_pa>;         /* bt-vdd-ctrl1-supply */
+		vddbtcxmx-supply   = <&vreg_conn_1p8>;        /* bt-vdd-ctrl2-supply */
+		max-speed = <3200000>;
+	};
+};
+
 &uart7 {
 	status = "okay";
 };