USB3 regression in RK3399

Vicente Bergas vicencb at
Wed Feb 21 15:04:33 PST 2018

On Wed, Feb 21, 2018 at 11:17 PM, Heiko Stuebner <heiko at> wrote:
> Hi Vicente,
> Am Mittwoch, 21. Februar 2018, 22:58:35 CET schrieb Vicente Bergas:
>> testing on the Sapphire board, which uses the RK3399 SoC, a regression
>> has been found in v4.16-rc2 wrt v4.15.4 regarding the USB3 type-A port:
>> In v4.15.4 it works in USB2-only mode.
>> In v4.16-rc2 it does not work.
>> It has been tested with a USB2 hub with 3 devices connected:
>> a keyboard (USB1.1), a mouse (USB2) and a rtlwifi dongle (USB2).
>> It has also been tested with a USB3-to-SATA converter. This one is not
>> working in v4.15.4 nor in v4.16-rc2.
>> I have also tried the 6-patch series from Enric Balletbo i Serra
>> "[PATCH v3 3/6] phy: rockchip-typec: enable usb3 host during usb3 phy power on"
>> with the same result.
>> During boot, the following message appears a few times:
>> "dwc3: failed to initialize core"
>> The kernel configuration is:
>> Is that a configuration issue, a bug in the kernel or something else?
>> If it is a configuration issue, what should be changed?
>> If it is a bug, can it be fixed?
> Hmm, I'd guess the main issue would be a missing typec-phy driver
> in your kernel (see drivers/phy/rockchip/phy-rockchip-typec.c
> But even with this driver, I realize that we'll be missing the extcon
> driver telling the driver about the cable state. ChromeOS devices
> get the cable-state from the embedded controller via the extcon
> interface and while other boards seem to use the fusb302 chip
> for power-delivery, the driver currently does not seem to
> utilize the extcon interface for something like this.
> Also, right now the rockchip typec-phy does fail probing when no
> extcon is detected, but shouldn't it just fall back to working in host-
> mode if it cannot get the extcon, or the device just routes everything
> to a standard usb3 port?
> Heiko

Hi Heiko,
by comparison the kernel configuration that works (partially,
usb2-only) with v4.15.4 is
all the parameters CONFIG_*TYPEC*, CONFIG_*FUSB302*,
CONFIG_*PHY*ROCKCHIP* and CONFIG_*EXTCON* are the same among the two.
So, I suspect the difference should lay somewhere else.
Has Type-C anything to do with Type-A?


More information about the Linux-rockchip mailing list