All of lore.kernel.org
 help / color / mirror / Atom feed
From: balbi@ti.com (Felipe Balbi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] phy-sun4i-usb: Add a sunxi specific function for setting squelch-detect
Date: Fri, 8 May 2015 11:06:36 -0500	[thread overview]
Message-ID: <20150508160636.GD16571@saruman.tx.rr.com> (raw)
In-Reply-To: <1427626248-6257-2-git-send-email-hdegoede@redhat.com>

Hi,

On Sun, Mar 29, 2015 at 12:50:46PM +0200, Hans de Goede wrote:
> The sunxi otg phy has a bug where it wrongly detects a high speed squelch
> when reset on the root port gets de-asserted with a lo-speed device.
> 
> The workaround for this is to disable squelch detect before de-asserting
> reset, and re-enabling it after the reset de-assert is done. Add a sunxi
> specific phy function to allow the sunxi-musb glue to do this.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/phy/phy-sun4i-usb.c       |  9 +++++++++
>  include/linux/phy/phy-sun4i-usb.h | 26 ++++++++++++++++++++++++++
>  2 files changed, 35 insertions(+)
>  create mode 100644 include/linux/phy/phy-sun4i-usb.h
> 
> diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
> index 221e8ab..01eb08d 100644
> --- a/drivers/phy/phy-sun4i-usb.c
> +++ b/drivers/phy/phy-sun4i-usb.c
> @@ -33,6 +33,7 @@
>  #include <linux/of_address.h>
>  #include <linux/of_gpio.h>
>  #include <linux/phy/phy.h>
> +#include <linux/phy/phy-sun4i-usb.h>
>  #include <linux/platform_device.h>
>  #include <linux/regulator/consumer.h>
>  #include <linux/reset.h>
> @@ -75,6 +76,7 @@
>  #define PHY_OTG_FUNC_EN			0x28
>  #define PHY_VBUS_DET_EN			0x29
>  #define PHY_DISCON_TH_SEL		0x2a
> +#define PHY_SQUELCH_DETECT		0x3c  
>  
>  #define MAX_PHYS			3
>  
> @@ -322,6 +324,13 @@ static int sun4i_usb_phy_power_off(struct phy *_phy)
>  	return 0;
>  }
>  
> +void sun4i_usb_phy_set_squelch_detect(struct phy *_phy, bool enabled)
> +{
> +	struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
> +
> +	sun4i_usb_phy_write(phy, PHY_SQUELCH_DETECT, enabled ? 0 : 2, 2);
> +}
> +
>  static struct phy_ops sun4i_usb_phy_ops = {
>  	.init		= sun4i_usb_phy_init,
>  	.exit		= sun4i_usb_phy_exit,
> diff --git a/include/linux/phy/phy-sun4i-usb.h b/include/linux/phy/phy-sun4i-usb.h
> new file mode 100644
> index 0000000..50aed92
> --- /dev/null
> +++ b/include/linux/phy/phy-sun4i-usb.h
> @@ -0,0 +1,26 @@
> +/*
> + * Copyright (c) 2015 Hans de Goede <hdegoede@redhat.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 and
> + * only version 2 as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + */
> +
> +#ifndef PHY_SUN4I_USB_H_
> +#define PHY_SUN4I_USB_H_
> +
> +#include "phy.h"
> +
> +/**
> + * sun4i_usb_phy_set_squelch_detect() - Enable/disable squelch detect
> + * @phy: reference to a sun4i usb phy
> + * @enabled: wether to enable or disable squelch detect
> + */
> +void sun4i_usb_phy_set_squelch_detect(struct phy *phy, bool enabled);

breaks build if MUSB=y and SUN41_PHY=m

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150508/60352e85/attachment.sig>

WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
To: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>,
	Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>,
	Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
	Roman Byshko <rbyshko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: [PATCH 1/3] phy-sun4i-usb: Add a sunxi specific function for setting squelch-detect
Date: Fri, 8 May 2015 11:06:36 -0500	[thread overview]
Message-ID: <20150508160636.GD16571@saruman.tx.rr.com> (raw)
In-Reply-To: <1427626248-6257-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2995 bytes --]

Hi,

On Sun, Mar 29, 2015 at 12:50:46PM +0200, Hans de Goede wrote:
> The sunxi otg phy has a bug where it wrongly detects a high speed squelch
> when reset on the root port gets de-asserted with a lo-speed device.
> 
> The workaround for this is to disable squelch detect before de-asserting
> reset, and re-enabling it after the reset de-assert is done. Add a sunxi
> specific phy function to allow the sunxi-musb glue to do this.
> 
> Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> ---
>  drivers/phy/phy-sun4i-usb.c       |  9 +++++++++
>  include/linux/phy/phy-sun4i-usb.h | 26 ++++++++++++++++++++++++++
>  2 files changed, 35 insertions(+)
>  create mode 100644 include/linux/phy/phy-sun4i-usb.h
> 
> diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
> index 221e8ab..01eb08d 100644
> --- a/drivers/phy/phy-sun4i-usb.c
> +++ b/drivers/phy/phy-sun4i-usb.c
> @@ -33,6 +33,7 @@
>  #include <linux/of_address.h>
>  #include <linux/of_gpio.h>
>  #include <linux/phy/phy.h>
> +#include <linux/phy/phy-sun4i-usb.h>
>  #include <linux/platform_device.h>
>  #include <linux/regulator/consumer.h>
>  #include <linux/reset.h>
> @@ -75,6 +76,7 @@
>  #define PHY_OTG_FUNC_EN			0x28
>  #define PHY_VBUS_DET_EN			0x29
>  #define PHY_DISCON_TH_SEL		0x2a
> +#define PHY_SQUELCH_DETECT		0x3c  
>  
>  #define MAX_PHYS			3
>  
> @@ -322,6 +324,13 @@ static int sun4i_usb_phy_power_off(struct phy *_phy)
>  	return 0;
>  }
>  
> +void sun4i_usb_phy_set_squelch_detect(struct phy *_phy, bool enabled)
> +{
> +	struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
> +
> +	sun4i_usb_phy_write(phy, PHY_SQUELCH_DETECT, enabled ? 0 : 2, 2);
> +}
> +
>  static struct phy_ops sun4i_usb_phy_ops = {
>  	.init		= sun4i_usb_phy_init,
>  	.exit		= sun4i_usb_phy_exit,
> diff --git a/include/linux/phy/phy-sun4i-usb.h b/include/linux/phy/phy-sun4i-usb.h
> new file mode 100644
> index 0000000..50aed92
> --- /dev/null
> +++ b/include/linux/phy/phy-sun4i-usb.h
> @@ -0,0 +1,26 @@
> +/*
> + * Copyright (c) 2015 Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 and
> + * only version 2 as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + */
> +
> +#ifndef PHY_SUN4I_USB_H_
> +#define PHY_SUN4I_USB_H_
> +
> +#include "phy.h"
> +
> +/**
> + * sun4i_usb_phy_set_squelch_detect() - Enable/disable squelch detect
> + * @phy: reference to a sun4i usb phy
> + * @enabled: wether to enable or disable squelch detect
> + */
> +void sun4i_usb_phy_set_squelch_detect(struct phy *phy, bool enabled);

breaks build if MUSB=y and SUN41_PHY=m

-- 
balbi

  reply	other threads:[~2015-05-08 16:06 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-29 10:50 [PATCH 0/3] Work around sunxi otg usb phy bug which causes lo-speed devices to not work Hans de Goede
2015-03-29 10:50 ` Hans de Goede
2015-03-29 10:50 ` [PATCH 1/3] phy-sun4i-usb: Add a sunxi specific function for setting squelch-detect Hans de Goede
2015-03-29 10:50   ` Hans de Goede
2015-05-08 16:06   ` Felipe Balbi [this message]
2015-05-08 16:06     ` Felipe Balbi
2015-05-10 10:02     ` Hans de Goede
2015-05-10 10:02       ` Hans de Goede
2015-05-11 15:55       ` Felipe Balbi
2015-05-11 15:55         ` Felipe Balbi
2015-05-11 18:13         ` [linux-sunxi] " Hans de Goede
2015-05-11 18:13           ` Hans de Goede
2015-05-13  9:22           ` [linux-sunxi] " Kishon Vijay Abraham I
2015-05-13  9:22             ` Kishon Vijay Abraham I
2015-05-13  9:43             ` [linux-sunxi] " Hans de Goede
2015-05-13  9:43               ` Hans de Goede
2015-05-26 15:38   ` Felipe Balbi
2015-05-26 15:38     ` Felipe Balbi
2015-05-27 12:09     ` Kishon Vijay Abraham I
2015-05-27 12:09       ` Kishon Vijay Abraham I
2015-03-29 10:50 ` [PATCH 2/3] musb: Add pre and post root port reset end callbacks Hans de Goede
2015-03-29 10:50   ` Hans de Goede
2015-03-29 10:50 ` [PATCH 3/3] msub: sunxi: Add pre/post root reset end platform functions Hans de Goede
2015-03-29 10:50   ` Hans de Goede

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=20150508160636.GD16571@saruman.tx.rr.com \
    --to=balbi@ti.com \
    --cc=linux-arm-kernel@lists.infradead.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.