[PATCH 1/4] phy: rockchip: add rockchip usb3 innosilicon phy driver

Peter Geis pgwipeout at gmail.com
Mon Jul 19 16:19:07 PDT 2021


On Mon, Jul 19, 2021 at 10:29 AM Alex Bee <knaerzche at gmail.com> wrote:
>
> Hi Peter,
>
> thanks for working on this (I hope to have picked the latest version of
> your series).
>
> It's pretty obvious that the quirky innosilicon phy Rockchip decided for
> in RK3328 needs a additional glue layer. Even if this version isn't
> perfect yet (usb3 devices "sometimes" do net get detected if detached
> and attached again) - it makes thing *a lot* better than it is now (IIRC
> its about the same in vendor tree)

Yes, it certainly is broken.

>
> So: are you going to rebase this on current upstream?

Honestly I hadn't planned on it, mostly because my board started
exhibiting stability issues.
This series had been tagged as an RFC as I was hoping to resolve the
issues with it.
Unfortunately either the documentation provided was insufficient to
fix the problem, or the hardware doesn't behave as the documentation
suggests.
Also the way we have to tie into the usb core makes me really uncomfortable.

Perhaps once the rk3566 is in good shape I can poke at this again.
There's a number of other issues with older boards that have come to
light that need attention.

>
> Regards,
>
> Alex
>
> Am 16.11.20 um 16:17 schrieb Peter Geis:
> > The innosilicon based usb3 phy used in rockchip devices such as the rk3328 is bugged, requiring special handling.
> > The following erata have been observed:
> >   - usb3 device disconnect events are not detected by the controller
> >   - usb2 hubs with no devices attached do not trigger disconnect events when removed
> >   - interrupts are not reliable
> >
> > To work around these issue we implement polling of the usb2 and usb3 status.
> > On usb3 disconnection we reset the usb3 phy which triggers the disconnect event.
> > On usb2 disconnection we have to force reset the whole controller.
> > This requires a handoff to a special dwc3 device driver.
> >
> > This has been tested on the rk3328-roc-cc board with the following devices:
> >   - usb2 only device
> >   - usb3 only device
> >   - usb2 only hub without devices
> >   - usb3 hub without devices
> >   - usb2 hub with devices
> >   - usb3 hub with devices
> >
> > Signed-off-by: Peter Geis <pgwipeout at gmail.com>



More information about the Linux-rockchip mailing list