[PATCH 3/5] phy: fsl-imx8mq-usb: add tca function driver for imx95
Xu Yang
xu.yang_2 at nxp.com
Sun Aug 4 20:27:29 PDT 2024
On Fri, Aug 02, 2024 at 04:52:06PM +0300, Dmitry Baryshkov wrote:
> On Fri, Aug 02, 2024 at 05:17:00PM GMT, Xu Yang wrote:
> > The i.MX95 USB3 phy has a Type-C Assist block (TCA). This block consists
> > two functional blocks (XBar assist and VBus assist) and one system
> > access interface using APB.
> >
> > The primary functionality of XBar assist is:
> > - switching lane for flip
> > - moving unused lanes into lower power states.
> >
> > This info can be get from:
> > i.MX95 RM Chapter 163.3.8 Type-C assist (TCA) block.
> >
> > This will add support for TCA block to achieve lane switching and tca
> > lower power functionality.
> >
> > Signed-off-by: Xu Yang <xu.yang_2 at nxp.com>
> > Reviewed-by: Jun Li <jun.li at nxp.com>
> > ---
> > drivers/phy/freescale/Kconfig | 1 +
> > drivers/phy/freescale/phy-fsl-imx8mq-usb.c | 238 +++++++++++++++++++++
> > 2 files changed, 239 insertions(+)
> >
>
> [..]
>
> > @@ -398,6 +624,10 @@ static int imx8mq_usb_phy_probe(struct platform_device *pdev)
> >
> > phy_set_drvdata(imx_phy->phy, imx_phy);
> >
> > + if (device_is_compatible(dev, "fsl,imx95-usb-phy") &&
> > + imx95_usb_phy_get_tca(pdev, imx_phy) < 0)
> > + return dev_err_probe(dev, -ENODEV, "failed to get tca\n");
>
> Pleas propagate error returned by imx95_usb_phy_get_tca() instead of
> always returning -ENODEV.
Okay.
Thanks,
Xu Yang
>
> > +
> > imx8m_get_phy_tuning_data(imx_phy);
> >
> > phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);
> > @@ -405,8 +635,16 @@ static int imx8mq_usb_phy_probe(struct platform_device *pdev)
> > return PTR_ERR_OR_ZERO(phy_provider);
> > }
> >
> > +static void imx8mq_usb_phy_remove(struct platform_device *pdev)
> > +{
> > + struct imx8mq_usb_phy *imx_phy = platform_get_drvdata(pdev);
> > +
> > + imx95_usb_phy_put_tca(imx_phy);
> > +}
> > +
> > static struct platform_driver imx8mq_usb_phy_driver = {
> > .probe = imx8mq_usb_phy_probe,
> > + .remove = imx8mq_usb_phy_remove,
> > .driver = {
> > .name = "imx8mq-usb-phy",
> > .of_match_table = imx8mq_usb_phy_of_match,
> > --
> > 2.34.1
> >
>
> --
> With best wishes
> Dmitry
More information about the linux-phy
mailing list