Enable host mode USB for Milk-V Mars by setting host mode and connect vbus pinctrl. Note that testing this functionality depends on two features: 1. commit e10c52e7e064038d9bd67b20bf4ce92077d7d84e "phy: starfive: jh7110-usb: Fix link configuration to controller" 2. Setting the USB over-current register to disable. This is done at bootloader phase, for example U-Boot: https://patchwork.ozlabs.org/project/uboot/patch/20241012031328.4268-6-minda.chen@xxxxxxxxxxxxxxxx/ If the over-current register is not prepared for us then the result is no change in functional outcome with this patch applied; there is an error visible to the user and usb configuration fails (same as it is now). Signed-off-by: E Shattow <e@xxxxxxxxxxxx> --- .../boot/dts/starfive/jh7110-milkv-mars.dts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/arch/riscv/boot/dts/starfive/jh7110-milkv-mars.dts b/arch/riscv/boot/dts/starfive/jh7110-milkv-mars.dts index 0d248b671d4b..bddfc7c6b00f 100644 --- a/arch/riscv/boot/dts/starfive/jh7110-milkv-mars.dts +++ b/arch/riscv/boot/dts/starfive/jh7110-milkv-mars.dts @@ -53,7 +53,23 @@ &spi0 { status = "okay"; }; +&sysgpio { + usb_pins: usb0-0 { + driver-vbus-pin { + pinmux = <GPIOMUX(25, GPOUT_SYS_USB_DRIVE_VBUS, + GPOEN_ENABLE, + GPI_NONE)>; + bias-disable; + input-disable; + input-schmitt-disable; + slew-rate = <0>; + }; + }; +}; + &usb0 { - dr_mode = "peripheral"; + dr_mode = "host"; + pinctrl-names = "default"; + pinctrl-0 = <&usb_pins>; status = "okay"; }; -- 2.45.2