[PATCH] riscv: dts: starfive: jh7110-milkv-mars: set host mode and vbus pin for on-chip USB 2.0

From: E Shattow
Date: Thu Nov 14 2024 - 15:57:19 EST


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