[PATCH] usb: onboard_dev: add the Rockchip rk1808

Rudi Heitbaum rudi at heitbaum.com
Tue Sep 1 04:42:52 PDT 2026


On Mon, Aug 31, 2026 at 09:41:08AM +0800, Chaoyi Chen wrote:
> Hello Rudi,
> 
> On 8/28/2026 9:24 PM, Rudi Heitbaum wrote:
> > Hi Heiko,
> > 
> > I hadn't looked in to these from the mainline viewpoint. I had been
> > using an adapted vendor script based on the radxa npu_powerctl binary
> > which reimplements the npu_reset sequence over GPIO.
... 
> > I have the schematics and the working N10 here, so let me look into
> > describing these in the .dts and update the onboard_usb_dev.h.
> > 
> 
> Perhaps we should first check whether the power-on sequence in
> onboard_usb_dev.c meets the requirements, as it enables all
> regulator supplies at the same time.

Hi Chaoyi and Heiko,

I have done some work on the bringup of the rk1808, and can confirm that
it needs six rails up and its reset released before it appears on the
bus. There are no ordering requirements, issuing the reset 25 ms later
is reliably working. The supply names being "vdd", "vddlog", "vddcpu",
"vdd0v8", "vcc1v8", "vccio". This moves the power-on into the kernel
and not the userland script. 

The MAX_SUPPLIES fixed size array needs to be expanded from 2 to 6 to
accommodate the rails.

The rock-pi-n10 and the on-die rk1808 (including the onboard VIP8000Nano-Q
NPU) are now both running on the 7.2 mainline kernel. The
rock-pi-n10/rk3399pro-vmarc-som is booting with the mainline .dts and
the rk1808 is booting with an adapted vendor .dts.

The required changes to the drivers/usb/misc/onboard_usb_dev.h are now:

    @@ -6,1 +6,1 @@
    -#define MAX_SUPPLIES 2
    +#define MAX_SUPPLIES 6

    @@ -134,6 +134,6 @@ static const struct onboard_dev_pdata xmos_xvf3500_data = {
    +static const struct onboard_dev_pdata rockchip_rk1808_data = {
    +       .reset_us = 25000,
    +       .num_supplies = 6,
    +       .supply_names = { "vdd", "vddlog", "vddcpu", "vdd0v8", "vcc1v8", "vccio" },
    +       .is_hub = false,
    +};

    @@ -167,2 +167,2 @@ static const struct of_device_id onboard_dev_match[] = {
    +       { .compatible = "usb2207,1808", .data = &rockchip_rk1808_data, },
    +       { .compatible = "usb2207,180a", .data = &rockchip_rk1808_data, },

Hoping to get your direction on this, and if this can go through as a
single patch, or should be raised as a series. I will raise a v2 of
the above if this is suitable.

https://github.com/heitbaum/linux/commits/rock-pi-n10/
https://github.com/heitbaum/linux/commits/rk1808/

Regards
Rudi

> 
> -- 
> Best, 
> Chaoyi
> 



More information about the linux-arm-kernel mailing list