]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
phy: renesas: rcar-gen3-usb2: Set timing registers only once
authorClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Wed, 7 May 2025 12:50:32 +0000 (15:50 +0300)
committerVinod Koul <vkoul@kernel.org>
Wed, 14 May 2025 11:25:09 +0000 (12:25 +0100)
phy-rcar-gen3-usb2 driver exports 4 PHYs. The timing registers are common
to all PHYs. There is no need to set them every time a PHY is initialized.
Set timing register only when the 1st PHY is initialized.

Fixes: f3b5a8d9b50d ("phy: rcar-gen3-usb2: Add R-Car Gen3 USB2 PHY driver")
Cc: stable@vger.kernel.org
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Link: https://lore.kernel.org/r/20250507125032.565017-6-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/renesas/phy-rcar-gen3-usb2.c

index 118899efda70b384666d91fc33bad3bf140a459a..9fdf17e0848a28fae7adaa44ecef42137883efe0 100644 (file)
@@ -467,8 +467,11 @@ static int rcar_gen3_phy_usb2_init(struct phy *p)
        val = readl(usb2_base + USB2_INT_ENABLE);
        val |= USB2_INT_ENABLE_UCOM_INTEN | rphy->int_enable_bits;
        writel(val, usb2_base + USB2_INT_ENABLE);
-       writel(USB2_SPD_RSM_TIMSET_INIT, usb2_base + USB2_SPD_RSM_TIMSET);
-       writel(USB2_OC_TIMSET_INIT, usb2_base + USB2_OC_TIMSET);
+
+       if (!rcar_gen3_is_any_rphy_initialized(channel)) {
+               writel(USB2_SPD_RSM_TIMSET_INIT, usb2_base + USB2_SPD_RSM_TIMSET);
+               writel(USB2_OC_TIMSET_INIT, usb2_base + USB2_OC_TIMSET);
+       }
 
        /* Initialize otg part (only if we initialize a PHY with IRQs). */
        if (rphy->int_enable_bits)