Add a suitable sleep configuration for uart3 to support Bluetooth wakeup.

If QUP function is selected in sleep state, UART RTS/RFR is pulled high
during suspend and BT SoC not able to send wakeup bytes. So, configure
GPIO mode in sleep state to keep it low during suspend.

Signed-off-by: satya priya <ska...@codeaurora.org>
---
Changes in V5:
 - Newly added in V5. This patch adds wakeup support for trogdor board files.

 arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 48 ++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi 
b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
index a6b9beb..96b5331 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
@@ -792,6 +792,11 @@ ap_spi_fp: &spi10 {
 #include <arm/cros-ec-sbs.dtsi>
 
 &uart3 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-1 = <&qup_uart3_sleep>;
+       interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
+                               <&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
+
        status = "okay";
 
        bluetooth: bluetooth {
@@ -1345,4 +1350,47 @@ ap_spi_fp: &spi10 {
                        drive-strength = <2>;
                };
        };
+
+       qup_uart3_sleep: qup-uart3-sleep {
+               pinmux {
+                       pins = "gpio38", "gpio39",
+                              "gpio40", "gpio41";
+                       function = "gpio";
+               };
+
+               pinconf-cts {
+                       /*
+                        * Configure a pull-down on CTS to match the pull of
+                        * the Bluetooth module.
+                        */
+                       pins = "gpio38";
+                       bias-pull-down;
+               };
+
+               pinconf-rts {
+                       /*
+                        * Configure pull-down on RTS to make sure that the BT 
SoC can
+                        * wake up the system by sending wakeup bytes during 
suspend.
+                        */
+                        pins = "gpio39";
+                        bias-pull-down;
+               };
+
+               pinconf-tx {
+                       /* Configure pull-up on TX when it isn't actively 
driven */
+                       pins = "gpio40";
+                       bias-pull-up;
+               };
+
+               pinconf-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).
+                        */
+                       pins = "gpio41";
+                       bias-pull-up;
+               };
+       };
 };
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation

Reply via email to