devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tomasz Figa <tomasz.figa@gmail.com>
To: Jingoo Han <jg1.han@samsung.com>
Cc: 'Dongjin Kim' <tobetter@gmail.com>,
	'Julius Werner' <jwerner@chromium.org>,
	'LKML' <linux-kernel@vger.kernel.org>,
	'Felipe Balbi' <balbi@ti.com>,
	linux-usb@vger.kernel.org, devicetree-discuss@lists.ozlabs.org,
	linux-samsung-soc@vger.kernel.org,
	'Vivek Gautam' <gautam.vivek@samsung.com>,
	'Praveen Paneri' <p.paneri@samsung.com>,
	'Kukjin Kim' <kgene.kim@samsung.com>,
	'Tushar Behera' <tushar.behera@linaro.org>,
	'Doug Anderson' <dianders@chromium.org>,
	'Olof Johansson' <olofj@chromium.org>,
	'Vincent Palatin' <vpalatin@chromium.org>,
	'Thomas Abraham' <thomas.abraham@linaro.org>,
	'Fabio Estevam' <festevam@gmail.com>,
	'Philipp Zabel' <p.zabel@pengutronix.de>,
	Yulgon Kim <yulgon.kim@samsung.com>,
	s.nawrocki@samsung.com, grant.likely@linaro.org, arnd@arndb.de
Subject: Re: [PATCH] usb: phy: samsung-usb2: Toggle HSIC GPIO from device tree
Date: Fri, 12 Jul 2013 12:34:25 +0200	[thread overview]
Message-ID: <2736758.WIzxm4p4Im@thinkpad> (raw)
In-Reply-To: <001701ce7e99$95b2c460$c1184d20$@samsung.com>

Hi,

On Friday 12 of July 2013 09:48:54 Jingoo Han wrote:
> On Friday, July 12, 2013 6:46 AM, Julius Werner wrote:
> > Hi Jingoo,
> > 
> > Yeah, I followed that discussion back then, but it seems to have
> > stalled a little (at least the HSIC patches haven't been picked up in
> > any kernel.org repo yet to my knowledge).
> > 
> > The problem is that I think these approaches cannot work reliably. I
> > agree that it would be nice to control the HSIC device from its own
> > driver, and have spent quite some time playing around with the
> > usb/misc/usb3503.c driver to try to make this work... but there's a
> > timing dependency here that you just can't model correctly with
> > independent drivers.
> > 
> > If the HSIC device is already active during boot (e.g. because it was
> > used by firmware), there's always a chance that the USB stack will
> > come up before the driver that resets it does. The device will be
> > enumerated as normal, and when the other driver later pulls the reset
> > signal the USB stack will not notice because there is no real
> > disconnect detection on HSIC. Only when you eventually try to send
> > another transfer to the device will you start to get timeouts, and the
> > newly reset device will not be able to reenumerate because the host
> > never asks it to.
> > 
> > I really don't see how you could solve this without putting some kind
> > of synchronization mechanism in the USB drivers. So this leaves
> > ehci-s5p and phy-samsung-usb2 as the only possible places, and I chose
> > the latter since all the host-side HSIC initialization is also there
> > already. I think if you think of it as "reset whatever is on the other
> > side of this PHY", it's okay to put it as an optional feature into the
> > PHY driver.
> 
> CC'ed Tomasz Figa, Dongjin Kim, Yulgon Kim
> 
> 
> Hi Tomasz, Dongjin,
> 
> Julius Werner wants to put 'SMSC 3503 hub reset on Arndale board'
> to 'phy-samsung-usb*.c' files, because there is a timing dependency
> above mentioned.
> The following is the original patch sent by Julius Werner two day ago.
> (http://www.spinics.net/lists/linux-samsung-soc/msg20250.html)

Well, I think this is simply broken. Following are the reasons why I think so:
 a) you can use the smsc3503 chip on any USB/HSIC controller and with any 
USB/HSIC PHY, so you would have to add such reset GPIO to _every_ PHY or 
controller driver,
 b) you might want to use other USB/HSIC hubs like this one that requires some 
initialization sequence, other than just toggling a GPIO, so you would have to 
add cases for all of those hubs or other chips in _every_ PHY or controller 
driver.

> Previously, Olof mentioned that 'drivers/platform/arm/' would be used.
> (http://patches.linaro.org/16856/)
> 
> Also, another way was mentioned by Fabio Estevam, using
> 'drivers/reset/gpio-reset.c' which is not merged yet.
> (http://permalink.gmane.org/gmane.linux.drivers.devicetree/36830)
> 
> I think that 'phy-samsung-usb*.c' files are not a good place.
> However, Julius Werner's comment looks reasonable enough.

I can see this problem almost equivalent to the problem with on-board WLAN 
adapters connected using SDIO. Those adapters require some kind of power on 
sequence before they can be enumerated using standard MMC/SDIO mechanisms and 
so does this USB/HSIC hub.

So basically this is a thing that we should consider on a more generic level, 
not just for this particular single chip.

CCing some extra people to increase chance of getting more opinions on this.

Best regards,
Tomasz

      reply	other threads:[~2013-07-12 10:34 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-10  0:34 [PATCH] usb: phy: samsung-usb2: Toggle HSIC GPIO from device tree Julius Werner
2013-07-10  5:25 ` Felipe Balbi
     [not found]   ` <20130710052534.GB15674-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2013-07-10 17:42     ` Julius Werner
2013-07-11  0:01       ` Fabio Estevam
2013-07-12  6:57       ` Felipe Balbi
2013-08-13  8:41         ` Tushar Behera
2013-07-10 23:52 ` Jingoo Han
2013-07-11 21:46   ` Julius Werner
2013-07-12  0:48     ` Jingoo Han
2013-07-12 10:34       ` Tomasz Figa [this message]

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=2736758.WIzxm4p4Im@thinkpad \
    --to=tomasz.figa@gmail.com \
    --cc=arnd@arndb.de \
    --cc=balbi@ti.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=dianders@chromium.org \
    --cc=festevam@gmail.com \
    --cc=gautam.vivek@samsung.com \
    --cc=grant.likely@linaro.org \
    --cc=jg1.han@samsung.com \
    --cc=jwerner@chromium.org \
    --cc=kgene.kim@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=olofj@chromium.org \
    --cc=p.paneri@samsung.com \
    --cc=p.zabel@pengutronix.de \
    --cc=s.nawrocki@samsung.com \
    --cc=thomas.abraham@linaro.org \
    --cc=tobetter@gmail.com \
    --cc=tushar.behera@linaro.org \
    --cc=vpalatin@chromium.org \
    --cc=yulgon.kim@samsung.com \
    /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).