* [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board
@ 2025-02-20 11:29 Janaki Ramaiah Thota
2025-02-20 11:29 ` [RESEND PATCH v9 1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node Janaki Ramaiah Thota
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Janaki Ramaiah Thota @ 2025-02-20 11:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marcel Holtmann, Luiz Augusto von Dentz
Cc: quic_mohamull, quic_hbandi, quic_anubhavg, linux-arm-msm,
devicetree, linux-kernel, linux-bluetooth
Patch 1/2
The new state node qup_uart7_sleep is causing a dt-check warning because the
base DTSI (sc7280.dtsi) is defined with individual pin configurations
----
Changes from v8:
* Fixed the dtb-check warning in P1 and removed tag: Reviewed-by
* Link to v8: https://lore.kernel.org/linux-arm-msm/20250127064940.1360404-1-quic_janathot@quicinc.com/
Changes from v7:
* updated P1 & P2 with tag: Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
* Link to v7: https://lore.kernel.org/lkml/20250107134157.211702-1-quic_janathot@quicinc.com/#t
Changes from v6:
* Elaborated the commit message with more information.
* Link to v6: https://lore.kernel.org/lkml/20241223135700.22660-1-quic_janathot@quicinc.com/
Changes from v5:
* Update the wcn6750 required properties in bindings.
* Link to v5: https://lore.kernel.org/linux-arm-msm/20241209103455.9675-1-quic_janathot@quicinc.com/
Changes from v4:
* Added reviewed tag by Krzysztof in p1
* Updated the p2 commit message with sw_ctrl and wifi-enable are
handled in wifi FW.
* Added blank line between the nodes in p2
* Placed the structures in proper order in p4
* Link to v4: https://lore.kernel.org/all/20241204131706.20791-1-quic_janathot@quicinc.com/
Changes from v3:
* Defined the PMU node and used the its output to power up BT
* Used power sequencer for wcn wcn6750 module
* Split the patch to multiple as per subtree
* Add description of the PMU of the WCN6750 module
* Include separate UART state node for sleep pin configuarion
* Link to v3: https://lore.kernel.org/linux-arm-msm/20241022104600.3228-1-quic_janathot@quicinc.com/
Changes from v2:
* Sorted nodes alphabetically
* Link to v2: https://lore.kernel.org/linux-arm-msm/20241010105107.30118-1-quic_janathot@quicinc.com/
Changes from v1:
* Corrected the board name in subject
* Link to v1: https://lore.kernel.org/linux-arm-msm/20241009111436.23473-1-quic_janathot@quicinc.com/
Janaki Ramaiah Thota (2):
arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node
Bluetooth: hci_qca: use the power sequencer for wcn6750
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 167 ++++++++++++++++++-
drivers/bluetooth/hci_qca.c | 2 +-
2 files changed, 167 insertions(+), 2 deletions(-)
--
^ permalink raw reply [flat|nested] 6+ messages in thread
* [RESEND PATCH v9 1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node
2025-02-20 11:29 [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board Janaki Ramaiah Thota
@ 2025-02-20 11:29 ` Janaki Ramaiah Thota
2025-02-21 13:55 ` Dmitry Baryshkov
2025-02-20 11:29 ` [RESEND PATCH v9 2/2] Bluetooth: hci_qca: use the power sequencer for wcn6750 Janaki Ramaiah Thota
2025-02-20 18:10 ` [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board patchwork-bot+bluetooth
2 siblings, 1 reply; 6+ messages in thread
From: Janaki Ramaiah Thota @ 2025-02-20 11:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marcel Holtmann, Luiz Augusto von Dentz
Cc: quic_mohamull, quic_hbandi, quic_anubhavg, linux-arm-msm,
devicetree, linux-kernel, linux-bluetooth
Add the PMU node for WCN6750 present on the qcs6490-rb3gen
board and assign its power outputs to the Bluetooth module.
In WCN6750 module sw_ctrl and wifi-enable pins are handled
in the wifi controller firmware. Therefore, it is not required
to have those pins' entries in the PMU node.
Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 167 ++++++++++++++++++-
1 file changed, 166 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index 7a36c90ad4ec..0a3243499dfb 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/;
@@ -34,6 +34,7 @@ / {
aliases {
serial0 = &uart5;
+ serial1 = &uart7;
};
chosen {
@@ -218,6 +219,63 @@ vph_pwr: vph-pwr-regulator {
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
};
+
+ wcn6750-pmu {
+ compatible = "qcom,wcn6750-pmu";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bt_en>;
+ vddaon-supply = <&vreg_s7b_0p972>;
+ vddasd-supply = <&vreg_l11c_2p8>;
+ vddpmu-supply = <&vreg_s7b_0p972>;
+ vddrfa0p8-supply = <&vreg_s7b_0p972>;
+ vddrfa1p2-supply = <&vreg_s8b_1p272>;
+ vddrfa1p7-supply = <&vreg_s1b_1p872>;
+ vddrfa2p2-supply = <&vreg_s1c_2p19>;
+
+ bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
+
+ regulators {
+ vreg_pmu_rfa_cmn: ldo0 {
+ regulator-name = "vreg_pmu_rfa_cmn";
+ };
+
+ vreg_pmu_aon_0p59: ldo1 {
+ regulator-name = "vreg_pmu_aon_0p59";
+ };
+
+ vreg_pmu_wlcx_0p8: ldo2 {
+ regulator-name = "vreg_pmu_wlcx_0p8";
+ };
+
+ vreg_pmu_wlmx_0p85: ldo3 {
+ regulator-name = "vreg_pmu_wlmx_0p85";
+ };
+
+ vreg_pmu_btcmx_0p85: ldo4 {
+ regulator-name = "vreg_pmu_btcmx_0p85";
+ };
+
+ vreg_pmu_rfa_0p8: ldo5 {
+ regulator-name = "vreg_pmu_rfa_0p8";
+ };
+
+ vreg_pmu_rfa_1p2: ldo6 {
+ regulator-name = "vreg_pmu_rfa_1p2";
+ };
+
+ vreg_pmu_rfa_1p7: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p7";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
};
&apps_rsc {
@@ -799,6 +857,39 @@ &pon_resin {
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";
};
@@ -842,12 +933,86 @@ &sdhc_2 {
&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;
+ };
};
&uart5 {
status = "okay";
};
+&uart7 {
+ /delete-property/interrupts;
+ interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
+ <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
+ pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>,
+ <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
+ pinctrl-names = "default", "sleep";
+ status = "okay";
+
+ bluetooth: bluetooth {
+ compatible = "qcom,wcn6750-bt";
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ 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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [RESEND PATCH v9 2/2] Bluetooth: hci_qca: use the power sequencer for wcn6750
2025-02-20 11:29 [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board Janaki Ramaiah Thota
2025-02-20 11:29 ` [RESEND PATCH v9 1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node Janaki Ramaiah Thota
@ 2025-02-20 11:29 ` Janaki Ramaiah Thota
2025-02-20 18:10 ` [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board patchwork-bot+bluetooth
2 siblings, 0 replies; 6+ messages in thread
From: Janaki Ramaiah Thota @ 2025-02-20 11:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marcel Holtmann, Luiz Augusto von Dentz
Cc: quic_mohamull, quic_hbandi, quic_anubhavg, linux-arm-msm,
devicetree, linux-kernel, linux-bluetooth, Dmitry Baryshkov
Older boards are having entry "enable-gpios" in dts, we can safely assume
latest boards which are supporting PMU node enrty will support power
sequencer.
Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/bluetooth/hci_qca.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 0ac2168f1dc4..d2fd08aceb17 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -2359,6 +2359,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
switch (qcadev->btsoc_type) {
case QCA_WCN6855:
case QCA_WCN7850:
+ case QCA_WCN6750:
if (!device_property_present(&serdev->dev, "enable-gpios")) {
/*
* Backward compatibility with old DT sources. If the
@@ -2378,7 +2379,6 @@ static int qca_serdev_probe(struct serdev_device *serdev)
case QCA_WCN3990:
case QCA_WCN3991:
case QCA_WCN3998:
- case QCA_WCN6750:
qcadev->bt_power->dev = &serdev->dev;
err = qca_init_regulators(qcadev->bt_power, data->vregs,
data->num_vregs);
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board
2025-02-20 11:29 [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board Janaki Ramaiah Thota
2025-02-20 11:29 ` [RESEND PATCH v9 1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node Janaki Ramaiah Thota
2025-02-20 11:29 ` [RESEND PATCH v9 2/2] Bluetooth: hci_qca: use the power sequencer for wcn6750 Janaki Ramaiah Thota
@ 2025-02-20 18:10 ` patchwork-bot+bluetooth
2 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+bluetooth @ 2025-02-20 18:10 UTC (permalink / raw)
To: Janaki Ramaiah Thota
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, marcel,
luiz.dentz, quic_mohamull, quic_hbandi, quic_anubhavg,
linux-arm-msm, devicetree, linux-kernel, linux-bluetooth
Hello:
This series was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Thu, 20 Feb 2025 16:59:43 +0530 you wrote:
> Patch 1/2
> The new state node qup_uart7_sleep is causing a dt-check warning because the
> base DTSI (sc7280.dtsi) is defined with individual pin configurations
>
> ----
> Changes from v8:
> * Fixed the dtb-check warning in P1 and removed tag: Reviewed-by
> * Link to v8: https://lore.kernel.org/linux-arm-msm/20250127064940.1360404-1-quic_janathot@quicinc.com/
>
> [...]
Here is the summary with links:
- [RESEND,v9,1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node
(no matching commit)
- [RESEND,v9,2/2] Bluetooth: hci_qca: use the power sequencer for wcn6750
https://git.kernel.org/bluetooth/bluetooth-next/c/3e968fd5dc0a
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RESEND PATCH v9 1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node
2025-02-20 11:29 ` [RESEND PATCH v9 1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node Janaki Ramaiah Thota
@ 2025-02-21 13:55 ` Dmitry Baryshkov
2025-02-21 15:34 ` Janaki Ramaiah Thota
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Baryshkov @ 2025-02-21 13:55 UTC (permalink / raw)
To: Janaki Ramaiah Thota
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marcel Holtmann, Luiz Augusto von Dentz,
quic_mohamull, quic_hbandi, quic_anubhavg, linux-arm-msm,
devicetree, linux-kernel, linux-bluetooth
On Thu, Feb 20, 2025 at 04:59:44PM +0530, Janaki Ramaiah Thota wrote:
> Add the PMU node for WCN6750 present on the qcs6490-rb3gen
> board and assign its power outputs to the Bluetooth module.
>
> In WCN6750 module sw_ctrl and wifi-enable pins are handled
> in the wifi controller firmware. Therefore, it is not required
> to have those pins' entries in the PMU node.
>
> Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
> ---
> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 167 ++++++++++++++++++-
> 1 file changed, 166 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> index 7a36c90ad4ec..0a3243499dfb 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/;
> @@ -34,6 +34,7 @@ / {
>
> aliases {
> serial0 = &uart5;
> + serial1 = &uart7;
> };
>
> chosen {
> @@ -218,6 +219,63 @@ vph_pwr: vph-pwr-regulator {
> regulator-min-microvolt = <3700000>;
> regulator-max-microvolt = <3700000>;
> };
> +
> + wcn6750-pmu {
> + compatible = "qcom,wcn6750-pmu";
> + pinctrl-names = "default";
> + pinctrl-0 = <&bt_en>;
pinctrl-0
(pinctrl-1 etc.)
pinctrl-names
> + vddaon-supply = <&vreg_s7b_0p972>;
> + vddasd-supply = <&vreg_l11c_2p8>;
> + vddpmu-supply = <&vreg_s7b_0p972>;
> + vddrfa0p8-supply = <&vreg_s7b_0p972>;
> + vddrfa1p2-supply = <&vreg_s8b_1p272>;
> + vddrfa1p7-supply = <&vreg_s1b_1p872>;
> + vddrfa2p2-supply = <&vreg_s1c_2p19>;
> +
> + bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
> +
> + regulators {
> + vreg_pmu_rfa_cmn: ldo0 {
> + regulator-name = "vreg_pmu_rfa_cmn";
> + };
> +
> + vreg_pmu_aon_0p59: ldo1 {
> + regulator-name = "vreg_pmu_aon_0p59";
> + };
> +
> + vreg_pmu_wlcx_0p8: ldo2 {
> + regulator-name = "vreg_pmu_wlcx_0p8";
> + };
> +
> + vreg_pmu_wlmx_0p85: ldo3 {
> + regulator-name = "vreg_pmu_wlmx_0p85";
> + };
> +
> + vreg_pmu_btcmx_0p85: ldo4 {
> + regulator-name = "vreg_pmu_btcmx_0p85";
> + };
> +
> + vreg_pmu_rfa_0p8: ldo5 {
> + regulator-name = "vreg_pmu_rfa_0p8";
> + };
> +
> + vreg_pmu_rfa_1p2: ldo6 {
> + regulator-name = "vreg_pmu_rfa_1p2";
> + };
> +
> + vreg_pmu_rfa_1p7: ldo7 {
> + regulator-name = "vreg_pmu_rfa_1p7";
> + };
> +
> + vreg_pmu_pcie_0p9: ldo8 {
> + regulator-name = "vreg_pmu_pcie_0p9";
> + };
> +
> + vreg_pmu_pcie_1p8: ldo9 {
> + regulator-name = "vreg_pmu_pcie_1p8";
> + };
> + };
> + };
> };
>
> &apps_rsc {
> @@ -799,6 +857,39 @@ &pon_resin {
> 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";
> };
> @@ -842,12 +933,86 @@ &sdhc_2 {
> &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;
> + };
> };
>
> &uart5 {
> status = "okay";
> };
>
> +&uart7 {
> + /delete-property/interrupts;
Missing space before 'interrupts'.
> + interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
> + <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
Align by the opening angle bracket.
> + pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>,
> + <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
Align '<' vertically.
> + pinctrl-names = "default", "sleep";
Vertical list, please, aligned by the opening quote.
Also please add empty line before status.
> + status = "okay";
> +
> + bluetooth: bluetooth {
> + compatible = "qcom,wcn6750-bt";
> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
> + vddaon-supply = <&vreg_pmu_aon_0p59>;
> + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
> + vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
> + 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RESEND PATCH v9 1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node
2025-02-21 13:55 ` Dmitry Baryshkov
@ 2025-02-21 15:34 ` Janaki Ramaiah Thota
0 siblings, 0 replies; 6+ messages in thread
From: Janaki Ramaiah Thota @ 2025-02-21 15:34 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marcel Holtmann, Luiz Augusto von Dentz,
quic_mohamull, quic_hbandi, quic_anubhavg, linux-arm-msm,
devicetree, linux-kernel, linux-bluetooth
On 2/21/2025 7:25 PM, Dmitry Baryshkov wrote:
> On Thu, Feb 20, 2025 at 04:59:44PM +0530, Janaki Ramaiah Thota wrote:
>> Add the PMU node for WCN6750 present on the qcs6490-rb3gen
>> board and assign its power outputs to the Bluetooth module.
>>
>> In WCN6750 module sw_ctrl and wifi-enable pins are handled
>> in the wifi controller firmware. Therefore, it is not required
>> to have those pins' entries in the PMU node.
>>
>> Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com>
>> ---
>> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 167 ++++++++++++++++++-
>> 1 file changed, 166 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
>> index 7a36c90ad4ec..0a3243499dfb 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/;
>> @@ -34,6 +34,7 @@ / {
>>
>> aliases {
>> serial0 = &uart5;
>> + serial1 = &uart7;
>> };
>>
>> chosen {
>> @@ -218,6 +219,63 @@ vph_pwr: vph-pwr-regulator {
>> regulator-min-microvolt = <3700000>;
>> regulator-max-microvolt = <3700000>;
>> };
>> +
>> + wcn6750-pmu {
>> + compatible = "qcom,wcn6750-pmu";
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&bt_en>;
>
> pinctrl-0
> (pinctrl-1 etc.)
> pinctrl-names
>
>
>> + vddaon-supply = <&vreg_s7b_0p972>;
>> + vddasd-supply = <&vreg_l11c_2p8>;
>> + vddpmu-supply = <&vreg_s7b_0p972>;
>> + vddrfa0p8-supply = <&vreg_s7b_0p972>;
>> + vddrfa1p2-supply = <&vreg_s8b_1p272>;
>> + vddrfa1p7-supply = <&vreg_s1b_1p872>;
>> + vddrfa2p2-supply = <&vreg_s1c_2p19>;
>> +
>> + bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
>> +
>> + regulators {
>> + vreg_pmu_rfa_cmn: ldo0 {
>> + regulator-name = "vreg_pmu_rfa_cmn";
>> + };
>> +
>> + vreg_pmu_aon_0p59: ldo1 {
>> + regulator-name = "vreg_pmu_aon_0p59";
>> + };
>> +
>> + vreg_pmu_wlcx_0p8: ldo2 {
>> + regulator-name = "vreg_pmu_wlcx_0p8";
>> + };
>> +
>> + vreg_pmu_wlmx_0p85: ldo3 {
>> + regulator-name = "vreg_pmu_wlmx_0p85";
>> + };
>> +
>> + vreg_pmu_btcmx_0p85: ldo4 {
>> + regulator-name = "vreg_pmu_btcmx_0p85";
>> + };
>> +
>> + vreg_pmu_rfa_0p8: ldo5 {
>> + regulator-name = "vreg_pmu_rfa_0p8";
>> + };
>> +
>> + vreg_pmu_rfa_1p2: ldo6 {
>> + regulator-name = "vreg_pmu_rfa_1p2";
>> + };
>> +
>> + vreg_pmu_rfa_1p7: ldo7 {
>> + regulator-name = "vreg_pmu_rfa_1p7";
>> + };
>> +
>> + vreg_pmu_pcie_0p9: ldo8 {
>> + regulator-name = "vreg_pmu_pcie_0p9";
>> + };
>> +
>> + vreg_pmu_pcie_1p8: ldo9 {
>> + regulator-name = "vreg_pmu_pcie_1p8";
>> + };
>> + };
>> + };
>> };
>>
>> &apps_rsc {
>> @@ -799,6 +857,39 @@ &pon_resin {
>> 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";
>> };
>> @@ -842,12 +933,86 @@ &sdhc_2 {
>> &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;
>> + };
>> };
>>
>> &uart5 {
>> status = "okay";
>> };
>>
>> +&uart7 {
>> + /delete-property/interrupts;
>
> Missing space before 'interrupts'.
>
>> + interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
>> + <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
>
> Align by the opening angle bracket.
>
>> + pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>,
>> + <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
>
> Align '<' vertically.
>
>> + pinctrl-names = "default", "sleep";
>
> Vertical list, please, aligned by the opening quote.
>
> Also please add empty line before status.
>
Thanks for the review comments Dmitry, will address all the comments in
patch v10.
Thanks,
Janakiram
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-02-21 15:34 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-20 11:29 [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board Janaki Ramaiah Thota
2025-02-20 11:29 ` [RESEND PATCH v9 1/2] arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node Janaki Ramaiah Thota
2025-02-21 13:55 ` Dmitry Baryshkov
2025-02-21 15:34 ` Janaki Ramaiah Thota
2025-02-20 11:29 ` [RESEND PATCH v9 2/2] Bluetooth: hci_qca: use the power sequencer for wcn6750 Janaki Ramaiah Thota
2025-02-20 18:10 ` [RESEND PATCH v9 0/2] Enable Bluetooth on qcs6490-rb3gen2 board patchwork-bot+bluetooth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox