From: skakit@codeaurora.org
To: Matthias Kaehlcke <mka@chromium.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>,
gregkh@linuxfoundation.org, Andy Gross <agross@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, akashast@codeaurora.org,
rojay@codeaurora.org, msavaliy@qti.qualcomm.com
Subject: Re: [PATCH V2 2/3] arm64: dts: qcom: sc7180: Add sleep pin ctrl for BT uart
Date: Wed, 19 Aug 2020 19:18:54 +0530 [thread overview]
Message-ID: <033e17dcf3af000b1c26c4d3d724f272@codeaurora.org> (raw)
In-Reply-To: <20200817233341.GE2995789@google.com>
Hi Matthias,
Thanks for reviewing the patches.
On 2020-08-18 05:03, Matthias Kaehlcke wrote:
> On Mon, Aug 17, 2020 at 11:01:58AM -0700, Matthias Kaehlcke wrote:
>> On Fri, Jul 24, 2020 at 09:28:01AM +0530, satya priya wrote:
>> > Add sleep pin ctrl for BT uart, and also change the bias
>> > configuration to match Bluetooth module.
>> >
>> > Signed-off-by: satya priya <skakit@codeaurora.org>
>> > ---
>> > Changes in V2:
>> > - This patch adds sleep state for BT UART. Newly added in V2.
>> >
>> > arch/arm64/boot/dts/qcom/sc7180-idp.dts | 42 ++++++++++++++++++++++++++++-----
>> > 1 file changed, 36 insertions(+), 6 deletions(-)
>> >
>> > diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
>> > index 26cc491..bc919f2 100644
>> > --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
>> > +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
>> > @@ -469,20 +469,50 @@
>> >
>> > &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 */
>>
>> Has the pull from the Bluetooth module been removed or did the
>> previous config
>> incorrectly claim that the Bluetooth module has a pull-down?
>>
>> > pins = "gpio38";
>> > + bias-disable;
>> > + };
>> > +
>> > + pinconf-rts {
>> > + /* We'll drive 39 (RTS), so configure pull-down */
>> > + pins = "gpio39";
>> > + drive-strength = <2>;
>> > bias-pull-down;
>> > + };
>> > +
>> > + pinconf-tx {
>> > + /* We'll drive 40 (TX), so no pull */
>>
>> The rationales for RTS and TX contradict each other. According to the
>> comment
>> the reason to configure a pull-down on RTS is that it is driven by the
>> host.
>> Then for TX the reason to configure no pull is that it is driven by
>> the host.
>>
>> Please make sure the comments *really* describe the rationale,
>> otherwise they
>> are just confusing.
>
> Ok, let's try to reason about the configurations.
>
> I didn't find the datasheet for the WCN3991, but my understanding is
> that
> it is an evolution of the WCN3998, so probably the states of the UART
> pins
> are the same (signal names from the BT chip perspective):
>
> active reset
> CTS NP PD
> RTS NP PD
> RX NP PU
> TX NP PD
>
> Since this patch changes the DT let's use the signal names from the
> host side
> in the following.
>
>> RTS: NP => PD
>
> I can see that this could make sense, a floating pin could indicate
> the Bluetooth controller that the host is ready to receive data, when
> it is
> not.
>
>> CTS: PD => NP
>
> From a signalling perspective this should be no problem, since the
> WCN399x
> has a pull-down on its RTS signal in reset, and otherwise will drive
> it.
> IIUC there should be no power leakage without a pull, so I think this
> should be ok.
>
With CTS having no-pull, we are not seeing any power leakages.
>> TX: +output-high
>
> IIUC this only has an impact when the pin is in GPIO mode, i.e. in the
> sleep
> config. If that's correct, does it even make sense to specify it in the
> default
> config?
>
> Besides that, what is the reason for this change? I was told in another
> forum
> that Qualcomm found this to fix problems at UART initialization and
> wakeup,
> without really understanding why. That's not great.
>
"output-high" was present in IDP dts since Bring-up, we've validated on
the latest code-base and see that "output-high" is not required, will
remove it.
> I'm no expert in this area, but my guess is that forcing the TX signal
> to high
> in certain states is needed to not have it floating (no pull is
> configured),
> which could generate garbage on the Bluetooth RX side. But is it really
> necessary to actively drive it to high? Wouldn't it be enough to
> configure a
> pull-up when it isn't actively driven (i.e. in sleep mode)?
>
> In a quick test wakeup from Bluetooth worked when configuring a pull-up
> only in
> sleep mode. Could you test this on your side or provide a rationale why
> TX needs
> to be actively driven to high?
>
We have tested by keeping pull-up for TX in sleep state(removed
output-high) and wakeup is working fine with Bluetooth. Will remove the
output-high from both default and sleep states.
> Thanks
>
> Matthias
Thanks,
Satya Priya
next prev parent reply other threads:[~2020-08-19 13:50 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-24 3:57 [PATCH V2 0/3] Add wakeup support over UART RX satya priya
2020-07-24 3:58 ` [PATCH V2 1/3] arm64: dts: sc7180: " satya priya
2020-07-28 5:36 ` Akash Asthana
2020-07-24 3:58 ` [PATCH V2 2/3] arm64: dts: qcom: sc7180: Add sleep pin ctrl for BT uart satya priya
2020-07-28 5:38 ` Akash Asthana
2020-08-17 18:01 ` Matthias Kaehlcke
2020-08-17 23:33 ` Matthias Kaehlcke
2020-08-19 13:48 ` skakit [this message]
2020-08-19 13:49 ` skakit
2020-08-19 16:13 ` Matthias Kaehlcke
2020-08-20 12:19 ` skakit
2020-08-21 15:59 ` Matthias Kaehlcke
2020-07-24 3:58 ` [PATCH V2 3/3] tty: serial: qcom_geni_serial: Fix the UART wakeup issue satya priya
2020-07-24 8:42 ` Greg KH
2020-07-28 5:40 ` Akash Asthana
2020-08-17 17:42 ` Matthias Kaehlcke
2020-08-19 13:49 ` skakit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=033e17dcf3af000b1c26c4d3d724f272@codeaurora.org \
--to=skakit@codeaurora.org \
--cc=agross@kernel.org \
--cc=akashast@codeaurora.org \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mka@chromium.org \
--cc=msavaliy@qti.qualcomm.com \
--cc=robh+dt@kernel.org \
--cc=rojay@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).