Message ID | 20250130183434.2394058-2-quic_janathot@quicinc.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Enable Bluetooth on qcs6490-rb3gen2 board | expand |
Hi All, On 1/31/2025 4:33 PM, 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>; > + 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"; > }; Could you please help to review this change? Thanks! Regards, Janakiram
On 05/02/2025 12:55, Janaki Ramaiah Thota wrote: [trim entire unrelated stuff] >> + >> + 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>; >> + }; Please kindly trim the replies from unnecessary context. It makes it much easier to find new content. >> +}; >> + >> &usb_1 { >> status = "okay"; >> }; > > Could you please help to review this change? Thanks! You sent it while there was merge window. You ping us after 6 days, but counting merge window only 3 days. 3 days, instead of expected 14. Please relax, and help out by reviewing other patches on the mailing lists in order to relieve the burden of maintainers and move your patches higher up the list. Best regards, Krzysztof
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"; };
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(-)