From: John Youn <John.Youn@synopsys.com>
To: Doug Anderson <dianders@chromium.org>,
John Youn <John.Youn@synopsys.com>
Cc: Stefan Wahren <stefan.wahren@i2se.com>,
Michael Niewoehner <linux@mniewoehner.de>,
Tao Huang <huangtao@rock-chips.com>,
Julius Werner <jwerner@chromium.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
Caesar Wang <caesar.upstream@gmail.com>,
Heiko Stuebner <heiko@sntech.de>, Felipe Balbi <balbi@kernel.org>,
Remi Pommarel <repk@triplefau.lt>,
Kever Yang <kever.yang@rock-chips.com>
Subject: Re: [RFT PATCH 2/2] Revert "usb: dwc2: Fix probe problem on bcm2835"
Date: Wed, 23 Mar 2016 23:18:22 -0700 [thread overview]
Message-ID: <56F386AE.5000306@synopsys.com> (raw)
In-Reply-To: <CAD=FV=UGW7pCjVh1cjKDHs3yDni5RY-qtbMJP7qDp1cAPbJ2uQ@mail.gmail.com>
On 3/22/2016 12:44 PM, Doug Anderson wrote:
> John,
>
> On Tue, Mar 22, 2016 at 12:26 PM, John Youn <John.Youn@synopsys.com> wrote:
>> Thanks for the debug logs and everyones help.
>>
>> After reviewing with our hardware engineers, it seems this is likely
>> to do with the IDDIG debounce filtering when switching between
>> modes. You can see if this is enabled in your core by checking
>> GHWCFG4.IddgFltr.
>>
>> From the databook:
>>
>> OTG_EN_IDDIG_FILTER
>>
>> Specifies whether to add a filter on the "iddig" input from the
>> PHY. If your PHY already has a filter on iddig for de-bounce, then
>> it is not necessary to enable the one in the DWC_otg. The filter
>> is implemented in the DWC_otg_wpc module as a 20-bit counter that
>> works on the PHY clock. In the case of the UTMI+ PHY, this pin is
>> from the PHY. In the case of the ULPI PHY, this signal is
>> generated by the ULPI Wrapper inside the core.
>>
>>
>> This only affects OTG cores and the delay is 10ms for 30MHz PHY clock
>> and 50ms with a 6MHz PHY clock.
>
> Wow, nice to have it so perfectly explained! :)
>
>
>> The reason we see this after a reset is that by default the IDDIG
>> indicates device mode. But if the id pin is set to host the core will
>> immediately detect it after the reset and trigger the filtering delay
>> before changing to host mode.
>>
>> This delay is also triggered by force mode. This is the origin of the
>> 25 ms delay specified in the databook. The databook did not take into
>> account that there might be a 6MHz clock so this delay could actually
>> be up to 50 ms. So we aren't delaying enough time for those cases.
>>
>> I think this explains all the problems and platform differences we are
>> seeing related to this.
>>
>> I think we can just add an IDDIG delay after a force mode, a clear
>> force mode, and any time after reset where we don't do either a force
>> or clear force mode immediately afterwards. Maybe set the delay time
>> via a core parameter or measure it once on probe. Or we can probably
>> just poll for the mode change in all of the above conditions.
>
> The driver seems to be able to figure out the PHY clock in most cases
> in dwc2_calc_frame_interval(). It doesn't seem to handle 6MHz there,
> though. I wonder if that's another bug?
>
The 6 MHz is from a dedicated FS PHY operating at low speed. So that
must be the case for the platforms showing 50 ms delay.
> Polling seems fine too, though.
I'm thinking that's the way to go as it can be troublesome to figure
out the correct PHY clock speed.
Regards,
John
next prev parent reply other threads:[~2016-03-24 6:18 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-04 18:23 [RFT PATCH 1/2] usb: dwc2: Add a 10 ms delay to dwc2_core_reset() Douglas Anderson
2016-03-04 18:23 ` [RFT PATCH 2/2] Revert "usb: dwc2: Fix probe problem on bcm2835" Douglas Anderson
2016-03-04 22:54 ` Michael Niewoehner
2016-03-07 18:40 ` Stefan Wahren
2016-03-07 21:30 ` Doug Anderson
2016-03-08 17:49 ` Stefan Wahren
2016-03-09 19:01 ` Stefan Wahren
2016-03-09 19:06 ` Doug Anderson
2016-03-10 19:14 ` John Youn
2016-03-16 18:28 ` John Youn
2016-03-18 23:14 ` Stefan Wahren
2016-03-19 2:17 ` Eric Anholt
2016-03-19 7:44 ` Martin Sperl
2016-03-19 9:52 ` Stefan Wahren
2016-03-19 10:10 ` Martin Sperl
2016-03-19 12:09 ` Stefan Wahren
2016-03-19 9:45 ` Stefan Wahren
2016-03-19 5:21 ` Doug Anderson
2016-03-22 19:26 ` John Youn
2016-03-22 19:44 ` Doug Anderson
2016-03-22 20:37 ` John Youn
2016-03-24 6:18 ` John Youn [this message]
2016-03-04 22:54 ` [RFT PATCH 1/2] usb: dwc2: Add a 10 ms delay to dwc2_core_reset() Michael Niewoehner
2016-03-05 0:09 ` Michael Niewoehner
2016-03-05 0:33 ` Doug Anderson
2016-03-05 1:09 ` Doug Anderson
2016-03-05 20:41 ` Michael Niewoehner
2016-03-06 1:38 ` Doug Anderson
2016-03-04 23:46 ` Karl Palsson
2016-03-05 0:36 ` Doug Anderson
2016-03-04 23:52 ` Sergei Shtylyov
2016-03-05 2:23 ` John Youn
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=56F386AE.5000306@synopsys.com \
--to=john.youn@synopsys.com \
--cc=balbi@kernel.org \
--cc=caesar.upstream@gmail.com \
--cc=dianders@chromium.org \
--cc=gregkh@linuxfoundation.org \
--cc=heiko@sntech.de \
--cc=huangtao@rock-chips.com \
--cc=jwerner@chromium.org \
--cc=kever.yang@rock-chips.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@mniewoehner.de \
--cc=repk@triplefau.lt \
--cc=stefan.wahren@i2se.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).