From 931ebb71f49ead591f7649b03bf69857a8033d28 Mon Sep 17 00:00:00 2001 From: Hal Feng Date: Tue, 15 Apr 2025 16:21:11 +0800 Subject: usb: cdns3: starfive: Fix usb 2.0 host detection failure Set Rx clock gating control signal to normal power consumption mode, for fixing usb 2.0 host detection failure. Signed-off-by: Hal Feng --- drivers/usb/cdns3/cdns3-starfive.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'drivers/usb/cdns3/cdns3-starfive.c') diff --git a/drivers/usb/cdns3/cdns3-starfive.c b/drivers/usb/cdns3/cdns3-starfive.c index 84f0f483a749..a4cd8e919048 100644 --- a/drivers/usb/cdns3/cdns3-starfive.c +++ b/drivers/usb/cdns3/cdns3-starfive.c @@ -57,6 +57,8 @@ #define USB3_PHY_RES_INDEX 0 #define USB2_PHY_RES_INDEX 1 +#define USB_CLK_MODE_OFF 0x0 +#define USB_CLK_MODE_RX_NORMAL_PWR 1 #define USB_LS_KEEPALIVE_OFF 0x4 #define USB_LS_KEEPALIVE_ENABLE 4 @@ -201,6 +203,10 @@ static void cdns_starfive_set_phy(struct cdns_starfive *data) { unsigned int val; + val = readl(data->phybase_20 + USB_CLK_MODE_OFF); + val |= BIT(USB_CLK_MODE_RX_NORMAL_PWR); + writel(val, data->phybase_20 + USB_CLK_MODE_OFF); + if (data->mode != USB_DR_MODE_PERIPHERAL) { /* Enable the LS speed keep-alive signal */ val = readl(data->phybase_20 + USB_LS_KEEPALIVE_OFF); -- cgit v1.2.3