summaryrefslogtreecommitdiff
path: root/drivers/pinctrl/starfive/pinctrl-jh7110-sys.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pinctrl/starfive/pinctrl-jh7110-sys.c')
-rwxr-xr-xdrivers/pinctrl/starfive/pinctrl-jh7110-sys.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/pinctrl/starfive/pinctrl-jh7110-sys.c b/drivers/pinctrl/starfive/pinctrl-jh7110-sys.c
index 4e761641eb..13c1a81e92 100755
--- a/drivers/pinctrl/starfive/pinctrl-jh7110-sys.c
+++ b/drivers/pinctrl/starfive/pinctrl-jh7110-sys.c
@@ -376,10 +376,23 @@ const struct starfive_pinctrl_soc_info jh7110_sys_pinctrl_info = {
static int jh7110_sys_pinctrl_probe(struct udevice *dev)
{
+ u32 value;
+ int ret;
struct starfive_pinctrl_soc_info *info =
(struct starfive_pinctrl_soc_info *)dev_get_driver_data(dev);
+ struct starfive_pinctrl_priv *priv = dev_get_priv(dev);
+
+ ret = starfive_pinctrl_probe(dev, info);
+
+ /* Set up the usb controller overcurrent signal. */
+ if (!ret) {
+ value = readl(priv->base + JH7110_SYS_GPI);
+ value &= ~(0x7f << 16);
+ value |= BIT(16);
+ writel(value, priv->base + JH7110_SYS_GPI);
+ }
- return starfive_pinctrl_probe(dev, info);
+ return ret;
}
static const struct udevice_id jh7110_sys_pinctrl_ids[] = {