Re: [PATCH 08/10] usb: chipidea: host: calibrate the PHY after starting the host
From: Peter Chen
Date: Wed Aug 19 2026 - 03:34:26 EST
On 26-08-10 18:42:12, Dmitry Baryshkov wrote:
> Some PHYs need a final programming step after the host controller is
> up: the Qualcomm HSIC PHY latches the device connect at the moment
> HSIC mode is engaged, so that write must happen with the root port
> already running, or an already-connected HSIC device (the strobe/data
> lines have no hotplug) is never seen. The generic PHY framework
> provides phy_calibrate() for exactly this kind of post-init fixup and
> dwc3 already calls it; the chipidea host does not, leaving no place
> for such PHY work.
>
> Call phy_calibrate() once the HCD has been added, next to the existing
> i.MX HSIC active-event hook which serves the same purpose. PHYs
> without a calibrate op are unaffected.
>
> Assisted-by: Claude:claude-fable-5
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
Acked-by: Peter Chen <peter.chen@xxxxxxxxxx>
Peter
> ---
> drivers/usb/chipidea/host.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c
> index ced6076a8248..62bb2999edb6 100644
> --- a/drivers/usb/chipidea/host.c
> +++ b/drivers/usb/chipidea/host.c
> @@ -15,6 +15,7 @@
> #include <linux/regulator/consumer.h>
> #include <linux/string_choices.h>
> #include <linux/pinctrl/consumer.h>
> +#include <linux/phy/phy.h>
>
> #include "../host/ehci.h"
>
> @@ -192,6 +193,9 @@ static int host_start(struct ci_hdrc *ci)
> (ci->platdata->flags & CI_HDRC_IMX_IS_HSIC))
> ci->platdata->notify_event
> (ci, CI_HDRC_IMX_HSIC_ACTIVE_EVENT);
> +
> + if (ci->phy)
> + phy_calibrate(ci->phy);
> }
>
> return ret;
>
> --
> 2.47.3
>
--
Thanks,
Peter Chen