All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.