Add sleep pin ctrl for BT uart, and also change the bias configuration to match Bluetooth module.
Signed-off-by: satya priya <ska...@codeaurora.org> Reviewed-by: Akash Asthana <akash...@codeaurora.org> --- Changes in V2: - This patch adds sleep state for BT UART. Newly added in V2. Changes in V3: - Remove "output-high" for TX from both sleep and default states as it is not required. Configure pull-up for TX in sleep state. arch/arm64/boot/dts/qcom/sc7180-idp.dts | 54 +++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts index d8b5507..806f626 100644 --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts @@ -473,20 +473,20 @@ &qup_uart3_default { pinconf-cts { - /* - * Configure a pull-down on 38 (CTS) to match the pull of - * the Bluetooth module. - */ + /* Configure no pull on 38 (CTS) to match Bluetooth module */ pins = "gpio38"; - bias-pull-down; - output-high; + bias-disable; }; pinconf-rts { - /* We'll drive 39 (RTS), so no pull */ + /* + * Configure pull-down on 39 (RTS). This is needed to avoid a + * floating pin which could mislead Bluetooth controller + * with UART RFR state (READY/NOT_READY). + */ pins = "gpio39"; drive-strength = <2>; - bias-disable; + bias-pull-down; }; pinconf-tx { @@ -494,7 +494,43 @@ pins = "gpio40"; drive-strength = <2>; bias-disable; - output-high; + }; + + pinconf-rx { + /* + * Configure a pull-up on 41 (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; + }; +}; + +&qup_uart3_sleep { + pinconf-cts { + /* Configure no-pull on 38 (CTS) to match Bluetooth module */ + pins = "gpio38"; + bias-disable; + }; + + pinconf-rts { + /* + * Configure pull-down on 39 (RTS). This is needed to avoid a + * floating pin which could mislead Bluetooth controller + * with UART RFR state (READY/NOT_READY). + */ + pins = "gpio39"; + drive-strength = <2>; + bias-pull-down; + }; + + pinconf-tx { + /* Configure pull-up on 40 (TX) when it isn't actively driven */ + pins = "gpio40"; + drive-strength = <2>; + bias-pull-up; }; pinconf-rx { -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation