[PATCH 3/5] phy: fsl-imx8mq-usb: add tca function driver for imx95
Dmitry Baryshkov
dmitry.baryshkov at linaro.org
Fri Aug 2 06:52:06 PDT 2024
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.
> +
> 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