[PATCH v2] arm64: dts: qcom: qcs6490-rb3gen2: enable Bluetooth

Janaki Ramaiah Thota posted 1 patch 1 month, 2 weeks ago
There is a newer version of this series
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 122 ++++++++++++++++++-
1 file changed, 121 insertions(+), 1 deletion(-)
[PATCH v2] arm64: dts: qcom: qcs6490-rb3gen2: enable Bluetooth
Posted by Janaki Ramaiah Thota 1 month, 2 weeks ago
Add Bluetooth and UART7 support for qcs6490-rb3gen2.

Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
---
 arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 122 ++++++++++++++++++-
 1 file changed, 121 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index 0d45662b8028..c0bc44be7dd4 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: BSD-3-Clause
 /*
- * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 /dts-v1/;
@@ -32,6 +32,8 @@
 
 	aliases {
 		serial0 = &uart5;
+		bluetooth0 = &bluetooth;
+		serial1 = &uart7;
 	};
 
 	chosen {
@@ -688,6 +690,39 @@
 	status = "okay";
 };
 
+&qup_uart7_cts {
+	/*
+	 * Configure a bias-bus-hold on CTS to lower power
+	 * usage when Bluetooth is turned off. Bus hold will
+	 * maintain a low power state regardless of whether
+	 * the Bluetooth module drives the pin in either
+	 * direction or leaves the pin fully unpowered.
+	 */
+	bias-bus-hold;
+};
+
+&qup_uart7_rts {
+	/* We'll drive RTS, so no pull */
+	drive-strength = <2>;
+	bias-disable;
+};
+
+&qup_uart7_rx {
+	/*
+	 * Configure a pull-up on RX. This is needed to avoid
+	 * garbage data when the TX pin of the Bluetooth module is
+	 * in tri-state (module powered off or not driving the
+	 * signal yet).
+	 */
+	bias-pull-up;
+};
+
+&qup_uart7_tx {
+	/* We'll drive TX, so no pull */
+	drive-strength = <2>;
+	bias-disable;
+};
+
 &qupv3_id_0 {
 	status = "okay";
 };
@@ -719,12 +754,97 @@
 &tlmm {
 	gpio-reserved-ranges = <32 2>, /* ADSP */
 			       <48 4>; /* NFC */
+	bt_en: bt-en-state {
+		pins = "gpio85";
+		function = "gpio";
+		output-low;
+		bias-disable;
+	};
+
+	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
+		pins = "gpio28";
+		function = "gpio";
+		/*
+		 * Configure a bias-bus-hold on CTS to lower power
+		 * usage when Bluetooth is turned off. Bus hold will
+		 * maintain a low power state regardless of whether
+		 * the Bluetooth module drives the pin in either
+		 * direction or leaves the pin fully unpowered.
+		 */
+		bias-bus-hold;
+	};
+
+	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
+		pins = "gpio29";
+		function = "gpio";
+		/*
+		 * Configure pull-down on RTS. As RTS is active low
+		 * signal, pull it low to indicate the BT SoC that it
+		 * can wakeup the system anytime from suspend state by
+		 * pulling RX low (by sending wakeup bytes).
+		 */
+		bias-pull-down;
+	};
+
+	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
+		pins = "gpio31";
+		function = "gpio";
+		/*
+		 * Configure a pull-up on RX. This is needed to avoid
+		 * garbage data when the TX pin of the Bluetooth module
+		 * is floating which may cause spurious wakeups.
+		 */
+		bias-pull-up;
+	};
+
+	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
+		pins = "gpio30";
+		function = "gpio";
+		/*
+		 * Configure pull-up on TX when it isn't actively driven
+		 * to prevent BT SoC from receiving garbage during sleep.
+		 */
+		bias-pull-up;
+	};
+
+	sw_ctrl: sw-ctrl-state {
+		pins = "gpio86";
+		function = "gpio";
+		bias-pull-down;
+	};
 };
 
 &uart5 {
 	status = "okay";
 };
 
+&uart7 {
+	status = "okay";
+	/delete-property/interrupts;
+	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
+				<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
+	pinctrl-names = "default", "sleep";
+	pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>,
+			<&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
+
+	bluetooth: bluetooth {
+		compatible = "qcom,wcn6750-bt";
+		pinctrl-names = "default";
+		pinctrl-0 = <&bt_en>, <&sw_ctrl>;
+		enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
+		swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
+		vddaon-supply = <&vreg_s7b_0p972>;
+		vddbtcxmx-supply = <&vreg_s7b_0p972>;
+		vddrfacmn-supply = <&vreg_s7b_0p972>;
+		vddrfa0p8-supply = <&vreg_s7b_0p972>;
+		vddrfa1p7-supply = <&vreg_s1b_1p872>;
+		vddrfa1p2-supply = <&vreg_s8b_1p272>;
+		vddrfa2p2-supply = <&vreg_s1c_2p19>;
+		vddasd-supply = <&vreg_l11c_2p8>;
+		max-speed = <3200000>;
+	};
+};
+
 &usb_1 {
 	status = "okay";
 };
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Re: [PATCH v2] arm64: dts: qcom: qcs6490-rb3gen2: enable Bluetooth
Posted by Rob Herring (Arm) 1 month, 2 weeks ago
On Thu, 10 Oct 2024 16:21:07 +0530, Janaki Ramaiah Thota wrote:
> Add Bluetooth and UART7 support for qcs6490-rb3gen2.
> 
> Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 122 ++++++++++++++++++-
>  1 file changed, 121 insertions(+), 1 deletion(-)
> 


My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

  pip3 install dtschema --upgrade


New warnings running 'make CHECK_DTBS=y qcom/qcs6490-rb3gen2.dtb' for 20241010105107.30118-1-quic_janathot@quicinc.com:

arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dtb: bluetooth: 'vddio-supply' is a required property
	from schema $id: http://devicetree.org/schemas/net/bluetooth/qualcomm-bluetooth.yaml#
Re: [PATCH v2] arm64: dts: qcom: qcs6490-rb3gen2: enable Bluetooth
Posted by Dmitry Baryshkov 1 month, 2 weeks ago
On Thu, Oct 10, 2024 at 04:21:07PM GMT, Janaki Ramaiah Thota wrote:
> Add Bluetooth and UART7 support for qcs6490-rb3gen2.
> 
> Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 122 ++++++++++++++++++-
>  1 file changed, 121 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> index 0d45662b8028..c0bc44be7dd4 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> @@ -1,6 +1,6 @@
>  // SPDX-License-Identifier: BSD-3-Clause
>  /*
> - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
> + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
>   */
>  
>  /dts-v1/;
> @@ -32,6 +32,8 @@
>  
>  	aliases {
>  		serial0 = &uart5;
> +		bluetooth0 = &bluetooth;
> +		serial1 = &uart7;
>  	};
>  
>  	chosen {
> @@ -688,6 +690,39 @@
>  	status = "okay";
>  };
>  

Please review the file carefully and find the right spot for these
parts.

> +&qup_uart7_cts {
> +	/*
> +	 * Configure a bias-bus-hold on CTS to lower power
> +	 * usage when Bluetooth is turned off. Bus hold will
> +	 * maintain a low power state regardless of whether
> +	 * the Bluetooth module drives the pin in either
> +	 * direction or leaves the pin fully unpowered.
> +	 */
> +	bias-bus-hold;
> +};
> +
> +&qup_uart7_rts {
> +	/* We'll drive RTS, so no pull */
> +	drive-strength = <2>;
> +	bias-disable;
> +};
> +
> +&qup_uart7_rx {
> +	/*
> +	 * Configure a pull-up on RX. This is needed to avoid
> +	 * garbage data when the TX pin of the Bluetooth module is
> +	 * in tri-state (module powered off or not driving the
> +	 * signal yet).
> +	 */
> +	bias-pull-up;
> +};
> +
> +&qup_uart7_tx {
> +	/* We'll drive TX, so no pull */
> +	drive-strength = <2>;
> +	bias-disable;
> +};
> +
>  &qupv3_id_0 {
>  	status = "okay";
>  };
> @@ -719,12 +754,97 @@
>  &tlmm {
>  	gpio-reserved-ranges = <32 2>, /* ADSP */
>  			       <48 4>; /* NFC */
> +	bt_en: bt-en-state {
> +		pins = "gpio85";
> +		function = "gpio";
> +		output-low;
> +		bias-disable;
> +	};
> +
> +	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
> +		pins = "gpio28";
> +		function = "gpio";
> +		/*
> +		 * Configure a bias-bus-hold on CTS to lower power
> +		 * usage when Bluetooth is turned off. Bus hold will
> +		 * maintain a low power state regardless of whether
> +		 * the Bluetooth module drives the pin in either
> +		 * direction or leaves the pin fully unpowered.
> +		 */
> +		bias-bus-hold;
> +	};
> +
> +	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
> +		pins = "gpio29";
> +		function = "gpio";
> +		/*
> +		 * Configure pull-down on RTS. As RTS is active low
> +		 * signal, pull it low to indicate the BT SoC that it
> +		 * can wakeup the system anytime from suspend state by
> +		 * pulling RX low (by sending wakeup bytes).
> +		 */
> +		bias-pull-down;
> +	};
> +
> +	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
> +		pins = "gpio31";
> +		function = "gpio";
> +		/*
> +		 * Configure a pull-up on RX. This is needed to avoid
> +		 * garbage data when the TX pin of the Bluetooth module
> +		 * is floating which may cause spurious wakeups.
> +		 */
> +		bias-pull-up;
> +	};
> +
> +	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
> +		pins = "gpio30";
> +		function = "gpio";
> +		/*
> +		 * Configure pull-up on TX when it isn't actively driven
> +		 * to prevent BT SoC from receiving garbage during sleep.
> +		 */
> +		bias-pull-up;
> +	};
> +
> +	sw_ctrl: sw-ctrl-state {
> +		pins = "gpio86";
> +		function = "gpio";
> +		bias-pull-down;
> +	};
>  };
>  
>  &uart5 {
>  	status = "okay";
>  };
>  
> +&uart7 {
> +	status = "okay";
> +	/delete-property/interrupts;
> +	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
> +				<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;

Why? Is it a UART interrupt? Or a BT-related interrupt?

> +	pinctrl-names = "default", "sleep";
> +	pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>,
> +			<&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
> +
> +	bluetooth: bluetooth {
> +		compatible = "qcom,wcn6750-bt";

Please use pwrseq and define the PMU unit.

> +		pinctrl-names = "default";
> +		pinctrl-0 = <&bt_en>, <&sw_ctrl>;
> +		enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
> +		swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
> +		vddaon-supply = <&vreg_s7b_0p972>;
> +		vddbtcxmx-supply = <&vreg_s7b_0p972>;
> +		vddrfacmn-supply = <&vreg_s7b_0p972>;
> +		vddrfa0p8-supply = <&vreg_s7b_0p972>;
> +		vddrfa1p7-supply = <&vreg_s1b_1p872>;
> +		vddrfa1p2-supply = <&vreg_s8b_1p272>;
> +		vddrfa2p2-supply = <&vreg_s1c_2p19>;
> +		vddasd-supply = <&vreg_l11c_2p8>;
> +		max-speed = <3200000>;
> +	};
> +};
> +
>  &usb_1 {
>  	status = "okay";
>  };
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
> 

-- 
With best wishes
Dmitry
Re: [PATCH v2] arm64: dts: qcom: qcs6490-rb3gen2: enable Bluetooth
Posted by Janaki Ramaiah Thota 1 month ago

On 10/10/2024 6:09 PM, Dmitry Baryshkov wrote:
> On Thu, Oct 10, 2024 at 04:21:07PM GMT, Janaki Ramaiah Thota wrote:
>> Add Bluetooth and UART7 support for qcs6490-rb3gen2.
>>
>> Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
>> ---
>>   arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 122 ++++++++++++++++++-
>>   1 file changed, 121 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
>> index 0d45662b8028..c0bc44be7dd4 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
>> @@ -1,6 +1,6 @@
>>   // SPDX-License-Identifier: BSD-3-Clause
>>   /*
>> - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
>> + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
>>    */
>>   
>>   /dts-v1/;
>> @@ -32,6 +32,8 @@
>>   
>>   	aliases {
>>   		serial0 = &uart5;
>> +		bluetooth0 = &bluetooth;
>> +		serial1 = &uart7;
>>   	};
>>   
>>   	chosen {
>> @@ -688,6 +690,39 @@
>>   	status = "okay";
>>   };
>>   
> 
> Please review the file carefully and find the right spot for these
> parts.
> 

Thanks for the review, corrected in [PATCH v3].

>> +&qup_uart7_cts {
>> +	/*
>> +	 * Configure a bias-bus-hold on CTS to lower power
>> +	 * usage when Bluetooth is turned off. Bus hold will
>> +	 * maintain a low power state regardless of whether
>> +	 * the Bluetooth module drives the pin in either
>> +	 * direction or leaves the pin fully unpowered.
>> +	 */
>> +	bias-bus-hold;
>> +};
>> +
>> +&qup_uart7_rts {
>> +	/* We'll drive RTS, so no pull */
>> +	drive-strength = <2>;
>> +	bias-disable;
>> +};
>> +
>> +&qup_uart7_rx {
>> +	/*
>> +	 * Configure a pull-up on RX. This is needed to avoid
>> +	 * garbage data when the TX pin of the Bluetooth module is
>> +	 * in tri-state (module powered off or not driving the
>> +	 * signal yet).
>> +	 */
>> +	bias-pull-up;
>> +};
>> +
>> +&qup_uart7_tx {
>> +	/* We'll drive TX, so no pull */
>> +	drive-strength = <2>;
>> +	bias-disable;
>> +};
>> +
>>   &qupv3_id_0 {
>>   	status = "okay";
>>   };
>> @@ -719,12 +754,97 @@
>>   &tlmm {
>>   	gpio-reserved-ranges = <32 2>, /* ADSP */
>>   			       <48 4>; /* NFC */
>> +	bt_en: bt-en-state {
>> +		pins = "gpio85";
>> +		function = "gpio";
>> +		output-low;
>> +		bias-disable;
>> +	};
>> +
>> +	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
>> +		pins = "gpio28";
>> +		function = "gpio";
>> +		/*
>> +		 * Configure a bias-bus-hold on CTS to lower power
>> +		 * usage when Bluetooth is turned off. Bus hold will
>> +		 * maintain a low power state regardless of whether
>> +		 * the Bluetooth module drives the pin in either
>> +		 * direction or leaves the pin fully unpowered.
>> +		 */
>> +		bias-bus-hold;
>> +	};
>> +
>> +	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
>> +		pins = "gpio29";
>> +		function = "gpio";
>> +		/*
>> +		 * Configure pull-down on RTS. As RTS is active low
>> +		 * signal, pull it low to indicate the BT SoC that it
>> +		 * can wakeup the system anytime from suspend state by
>> +		 * pulling RX low (by sending wakeup bytes).
>> +		 */
>> +		bias-pull-down;
>> +	};
>> +
>> +	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
>> +		pins = "gpio31";
>> +		function = "gpio";
>> +		/*
>> +		 * Configure a pull-up on RX. This is needed to avoid
>> +		 * garbage data when the TX pin of the Bluetooth module
>> +		 * is floating which may cause spurious wakeups.
>> +		 */
>> +		bias-pull-up;
>> +	};
>> +
>> +	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
>> +		pins = "gpio30";
>> +		function = "gpio";
>> +		/*
>> +		 * Configure pull-up on TX when it isn't actively driven
>> +		 * to prevent BT SoC from receiving garbage during sleep.
>> +		 */
>> +		bias-pull-up;
>> +	};
>> +
>> +	sw_ctrl: sw-ctrl-state {
>> +		pins = "gpio86";
>> +		function = "gpio";
>> +		bias-pull-down;
>> +	};
>>   };
>>   
>>   &uart5 {
>>   	status = "okay";
>>   };
>>   
>> +&uart7 {
>> +	status = "okay";
>> +	/delete-property/interrupts;
>> +	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
>> +				<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
> 
> Why? Is it a UART interrupt? Or a BT-related interrupt?
> 

it is HS UART interrupt for BT.

>> +	pinctrl-names = "default", "sleep";
>> +	pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>,
>> +			<&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
>> +
>> +	bluetooth: bluetooth {
>> +		compatible = "qcom,wcn6750-bt";
> 
> Please use pwrseq and define the PMU unit.
> 

we are in process of migrating to pwrseq, mean while can we merge this 
change ?

>> +		pinctrl-names = "default";
>> +		pinctrl-0 = <&bt_en>, <&sw_ctrl>;
>> +		enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
>> +		swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
>> +		vddaon-supply = <&vreg_s7b_0p972>;
>> +		vddbtcxmx-supply = <&vreg_s7b_0p972>;
>> +		vddrfacmn-supply = <&vreg_s7b_0p972>;
>> +		vddrfa0p8-supply = <&vreg_s7b_0p972>;
>> +		vddrfa1p7-supply = <&vreg_s1b_1p872>;
>> +		vddrfa1p2-supply = <&vreg_s8b_1p272>;
>> +		vddrfa2p2-supply = <&vreg_s1c_2p19>;
>> +		vddasd-supply = <&vreg_l11c_2p8>;
>> +		max-speed = <3200000>;
>> +	};
>> +};
>> +
>>   &usb_1 {
>>   	status = "okay";
>>   };
>> -- 
>> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
>> a Linux Foundation Collaborative Project
>>
> 

--
Thanks
Janakiram
Re: [PATCH v2] arm64: dts: qcom: qcs6490-rb3gen2: enable Bluetooth
Posted by Dmitry Baryshkov 1 month ago
On Tue, 22 Oct 2024 at 13:06, Janaki Ramaiah Thota
<quic_janathot@quicinc.com> wrote:
>
>
>
> On 10/10/2024 6:09 PM, Dmitry Baryshkov wrote:
> > On Thu, Oct 10, 2024 at 04:21:07PM GMT, Janaki Ramaiah Thota wrote:
> >> Add Bluetooth and UART7 support for qcs6490-rb3gen2.
> >>
> >> Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
> >> ---
> >>   arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 122 ++++++++++++++++++-
> >>   1 file changed, 121 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> >> index 0d45662b8028..c0bc44be7dd4 100644
> >> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> >> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> >> @@ -1,6 +1,6 @@
> >>   // SPDX-License-Identifier: BSD-3-Clause
> >>   /*
> >> - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
> >> + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
> >>    */
> >>
> >>   /dts-v1/;
> >> @@ -32,6 +32,8 @@
> >>
> >>      aliases {
> >>              serial0 = &uart5;
> >> +            bluetooth0 = &bluetooth;
> >> +            serial1 = &uart7;
> >>      };
> >>
> >>      chosen {
> >> @@ -688,6 +690,39 @@
> >>      status = "okay";
> >>   };
> >>
> >
> > Please review the file carefully and find the right spot for these
> > parts.
> >
>
> Thanks for the review, corrected in [PATCH v3].
>
> >> +&qup_uart7_cts {
> >> +    /*
> >> +     * Configure a bias-bus-hold on CTS to lower power
> >> +     * usage when Bluetooth is turned off. Bus hold will
> >> +     * maintain a low power state regardless of whether
> >> +     * the Bluetooth module drives the pin in either
> >> +     * direction or leaves the pin fully unpowered.
> >> +     */
> >> +    bias-bus-hold;
> >> +};
> >> +
> >> +&qup_uart7_rts {
> >> +    /* We'll drive RTS, so no pull */
> >> +    drive-strength = <2>;
> >> +    bias-disable;
> >> +};
> >> +
> >> +&qup_uart7_rx {
> >> +    /*
> >> +     * Configure a pull-up on RX. This is needed to avoid
> >> +     * garbage data when the TX pin of the Bluetooth module is
> >> +     * in tri-state (module powered off or not driving the
> >> +     * signal yet).
> >> +     */
> >> +    bias-pull-up;
> >> +};
> >> +
> >> +&qup_uart7_tx {
> >> +    /* We'll drive TX, so no pull */
> >> +    drive-strength = <2>;
> >> +    bias-disable;
> >> +};
> >> +
> >>   &qupv3_id_0 {
> >>      status = "okay";
> >>   };
> >> @@ -719,12 +754,97 @@
> >>   &tlmm {
> >>      gpio-reserved-ranges = <32 2>, /* ADSP */
> >>                             <48 4>; /* NFC */
> >> +    bt_en: bt-en-state {
> >> +            pins = "gpio85";
> >> +            function = "gpio";
> >> +            output-low;
> >> +            bias-disable;
> >> +    };
> >> +
> >> +    qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
> >> +            pins = "gpio28";
> >> +            function = "gpio";
> >> +            /*
> >> +             * Configure a bias-bus-hold on CTS to lower power
> >> +             * usage when Bluetooth is turned off. Bus hold will
> >> +             * maintain a low power state regardless of whether
> >> +             * the Bluetooth module drives the pin in either
> >> +             * direction or leaves the pin fully unpowered.
> >> +             */
> >> +            bias-bus-hold;
> >> +    };
> >> +
> >> +    qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
> >> +            pins = "gpio29";
> >> +            function = "gpio";
> >> +            /*
> >> +             * Configure pull-down on RTS. As RTS is active low
> >> +             * signal, pull it low to indicate the BT SoC that it
> >> +             * can wakeup the system anytime from suspend state by
> >> +             * pulling RX low (by sending wakeup bytes).
> >> +             */
> >> +            bias-pull-down;
> >> +    };
> >> +
> >> +    qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
> >> +            pins = "gpio31";
> >> +            function = "gpio";
> >> +            /*
> >> +             * Configure a pull-up on RX. This is needed to avoid
> >> +             * garbage data when the TX pin of the Bluetooth module
> >> +             * is floating which may cause spurious wakeups.
> >> +             */
> >> +            bias-pull-up;
> >> +    };
> >> +
> >> +    qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
> >> +            pins = "gpio30";
> >> +            function = "gpio";
> >> +            /*
> >> +             * Configure pull-up on TX when it isn't actively driven
> >> +             * to prevent BT SoC from receiving garbage during sleep.
> >> +             */
> >> +            bias-pull-up;
> >> +    };
> >> +
> >> +    sw_ctrl: sw-ctrl-state {
> >> +            pins = "gpio86";
> >> +            function = "gpio";
> >> +            bias-pull-down;
> >> +    };
> >>   };
> >>
> >>   &uart5 {
> >>      status = "okay";
> >>   };
> >>
> >> +&uart7 {
> >> +    status = "okay";
> >> +    /delete-property/interrupts;
> >> +    interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
> >> +                            <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
> >
> > Why? Is it a UART interrupt? Or a BT-related interrupt?
> >
>
> it is HS UART interrupt for BT.

I don't see it being handled by the UART driver. It if is a BT
interrupt, it should go to the BT node.

>
> >> +    pinctrl-names = "default", "sleep";
> >> +    pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>,
> >> +                    <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
> >> +
> >> +    bluetooth: bluetooth {
> >> +            compatible = "qcom,wcn6750-bt";
> >
> > Please use pwrseq and define the PMU unit.
> >
>
> we are in process of migrating to pwrseq, mean while can we merge this
> change ?

No, why? Please implement the recommended way to handle the hardware, pwrseq.

>
> >> +            pinctrl-names = "default";
> >> +            pinctrl-0 = <&bt_en>, <&sw_ctrl>;
> >> +            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
> >> +            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
> >> +            vddaon-supply = <&vreg_s7b_0p972>;
> >> +            vddbtcxmx-supply = <&vreg_s7b_0p972>;
> >> +            vddrfacmn-supply = <&vreg_s7b_0p972>;
> >> +            vddrfa0p8-supply = <&vreg_s7b_0p972>;
> >> +            vddrfa1p7-supply = <&vreg_s1b_1p872>;
> >> +            vddrfa1p2-supply = <&vreg_s8b_1p272>;
> >> +            vddrfa2p2-supply = <&vreg_s1c_2p19>;
> >> +            vddasd-supply = <&vreg_l11c_2p8>;
> >> +            max-speed = <3200000>;
> >> +    };
> >> +};
> >> +
> >>   &usb_1 {
> >>      status = "okay";
> >>   };
> >> --
> >> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> >> a Linux Foundation Collaborative Project
> >>
> >
>
> --
> Thanks
> Janakiram
>


-- 
With best wishes
Dmitry