Commit 4e0a3e04 authored by satya priya's avatar satya priya Committed by Bjorn Andersson
Browse files

arm64: dts: qcom: sc7180-trogdor: Add wakeup support for BT UART



Add the necessary pinctrl, interrupt property and a suitable sleep config
to support Bluetooth wakeup feature.

GPIO mode is configured in sleep state to drive the RTS/RFR line low.
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.

Tested-by: default avatarMatthias Kaehlcke <mka@chromium.org>
Reviewed-by: default avatarMatthias Kaehlcke <mka@chromium.org>
Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
Signed-off-by: default avatarsatya priya <skakit@codeaurora.org>
Link: https://lore.kernel.org/r/1600091917-7464-4-git-send-email-skakit@codeaurora.org


Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent 9a36c6fd
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
@@ -794,6 +794,13 @@ ap_spi_fp: &spi10 {
&uart3 {
	status = "okay";

	/delete-property/interrupts;
	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
				<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;

	pinctrl-names = "default", "sleep";
	pinctrl-1 = <&qup_uart3_sleep>;

	bluetooth: bluetooth {
		compatible = "qcom,wcn3991-bt";
		vddio-supply = <&pp1800_l10a>;
@@ -1307,6 +1314,53 @@ ap_spi_fp: &spi10 {
		};
	};

	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. 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).
			 */
			 pins = "gpio39";
			 bias-pull-down;
		};

		pinconf-tx {
			/*
			 * Configure pull-up on TX when it isn't actively driven
			 * to prevent BT SoC from receiving garbage during sleep.
			 */
			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 floating which may cause spurious wakeups.
			 */
			pins = "gpio41";
			bias-pull-up;
		};
	};

	trackpad_int_1v8_odl: trackpad-int-1v8-odl {
		pinmux {
			pins = "gpio58";