All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: Samuel Holland <samuel@sholland.org>
Cc: u-boot@lists.denx.de, Jagan Teki <jagan@amarulasolutions.com>,
	Joe Hershberger <joe.hershberger@ni.com>
Subject: Re: [PATCH 2/3] phy: sun4i-usb: Refactor VBUS detection to match Linux
Date: Mon, 25 Oct 2021 15:08:29 +0100	[thread overview]
Message-ID: <20211025150829.7cbd946d@slackpad.fritz.box> (raw)
In-Reply-To: <20210912142243.9912-3-samuel@sholland.org>

On Sun, 12 Sep 2021 09:22:41 -0500
Samuel Holland <samuel@sholland.org> wrote:

Hi,

> The Linux driver checks the VBUS detection GPIO first; then VBUS power
> supply; then finally assumes VBUS is present. When adding VBUS power
> supply support, we want to match that order, so we get the same behavior
> in case both a GPIO and a power supply are provided in the device tree.
> 
> So refactor the function a bit to remove the early return, and use the
> same "assume VBUS is present" final fallback.
> 
> Signed-off-by: Samuel Holland <samuel@sholland.org>

Let's see if testing reveals any subtle issues ;-)

Acked-by: Andre Przywara <andre.przywara@arm.com>

Cheers,
Andre

> ---
> 
>  drivers/phy/allwinner/phy-sun4i-usb.c | 25 ++++++++++++-------------
>  1 file changed, 12 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
> index 5302b809ee6..827ecd70f27 100644
> --- a/drivers/phy/allwinner/phy-sun4i-usb.c
> +++ b/drivers/phy/allwinner/phy-sun4i-usb.c
> @@ -391,20 +391,19 @@ int sun4i_usb_phy_vbus_detect(struct phy *phy)
>  {
>  	struct sun4i_usb_phy_data *data = dev_get_priv(phy->dev);
>  	struct sun4i_usb_phy_plat *usb_phy = &data->usb_phy[phy->id];
> -	int err, retries = 3;
> -
> -	if (usb_phy->gpio_vbus_det < 0)
> -		return usb_phy->gpio_vbus_det;
> -
> -	err = gpio_get_value(usb_phy->gpio_vbus_det);
> -	/*
> -	 * Vbus may have been provided by the board and just been turned of
> -	 * some milliseconds ago on reset, what we're measuring then is a
> -	 * residual charge on Vbus, sleep a bit and try again.
> -	 */
> -	while (err > 0 && retries--) {
> -		mdelay(100);
> +	int err = 1, retries = 3;
> +
> +	if (usb_phy->gpio_vbus_det >= 0) {
>  		err = gpio_get_value(usb_phy->gpio_vbus_det);
> +		/*
> +		 * Vbus may have been provided by the board and just turned off
> +		 * some milliseconds ago on reset. What we're measuring then is
> +		 * a residual charge on Vbus. Sleep a bit and try again.
> +		 */
> +		while (err > 0 && retries--) {
> +			mdelay(100);
> +			err = gpio_get_value(usb_phy->gpio_vbus_det);
> +		}
>  	}
>  
>  	return err;


  reply	other threads:[~2021-10-25 14:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-12 14:22 [PATCH 0/3] phy: sun4i-usb: Support VBUS detection via power supply Samuel Holland
2021-09-12 14:22 ` [PATCH 1/3] phy: sun4i-usb: Remove a couple of debug messages Samuel Holland
2021-10-25 14:07   ` Andre Przywara
2021-09-12 14:22 ` [PATCH 2/3] phy: sun4i-usb: Refactor VBUS detection to match Linux Samuel Holland
2021-10-25 14:08   ` Andre Przywara [this message]
2021-09-12 14:22 ` [PATCH 3/3] phy: sun4i-usb: Support VBUS detection via power supply Samuel Holland
2021-10-25 14:08   ` Andre Przywara

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=20211025150829.7cbd946d@slackpad.fritz.box \
    --to=andre.przywara@arm.com \
    --cc=jagan@amarulasolutions.com \
    --cc=joe.hershberger@ni.com \
    --cc=samuel@sholland.org \
    --cc=u-boot@lists.denx.de \
    /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.