Pinebook Pro keyboard (RK3399 OHCI)?

Simon South simon at
Mon Jul 13 22:31:33 CEST 2020

Has anyone managed to get the built-in keyboard of the Pinebook Pro
working with U-Boot?

Kever, Jagan: Are you aware of any special setup required to have the
RK3399's OHCI controller begin processing its periodic list?

Even using the latest code, having USB started makes the U-boot console
feel sluggish while pressing keys on the keyboard produces no result.

The issue seems to be the OHCI (USB 1.1) driver continually times out
waiting for the controller to start an interrupt transfer (to poll the
keyboard for a keypress). Dumping the OHCI controller's registers as
well as the endpoint and transfer descriptors shows everything set up
correctly, however, as best I can tell from the OHCI spec: The
descriptors have the right values, the ED is added to the first
interrupt list, and the controller even "sees" the ED (the
HcPeriodCurrentED register holds its address once per frame). Yet when
the timeout expires the TD remains unprocessed, with its condition code
still set to "not accessed" and the controller's error counters still at

Oddly, control messages are passed to the keyboard just fine. It's as
though the controller is simply ignoring the periodic list, even though
the bit to enable its processing is set in the HcControl register.

Plugging in an external keyboard (after updating the build configuration
to include the right phy driver) produces the same result, so it's not
just the built-in one. And obviously the OHCI driver works on other
platforms, so it seems to me this could be something specific to
Rockchip's implementation not yet reflected in the code.

Has anyone found a solution to this?

Simon South
simon at

More information about the U-Boot mailing list