Lines Matching +full:hsic +full:- +full:state

1 // SPDX-License-Identifier: GPL-2.0-only
59 struct platform_device *pdev = mv_phy->pdev; in mv_hsic_phy_init()
60 void __iomem *base = mv_phy->base; in mv_hsic_phy_init()
63 clk_prepare_enable(mv_phy->clk); in mv_hsic_phy_init()
80 dev_err(&pdev->dev, "HSIC PHY PLL not locked after 100mS."); in mv_hsic_phy_init()
81 clk_disable_unprepare(mv_phy->clk); in mv_hsic_phy_init()
90 struct platform_device *pdev = mv_phy->pdev; in mv_hsic_phy_power_on()
91 void __iomem *base = mv_phy->base; in mv_hsic_phy_power_on()
96 /* Avoid SE0 state when resume for some device will take it as reset */ in mv_hsic_phy_power_on()
98 reg |= PHY_28NM_HSIC_S2H_HSIC_EN; /* Enable HSIC PHY */ in mv_hsic_phy_power_on()
114 dev_warn(&pdev->dev, "HSIC PHY READY not set after 100mS."); in mv_hsic_phy_power_on()
118 /* Waiting for HSIC connect int*/ in mv_hsic_phy_power_on()
122 dev_warn(&pdev->dev, "HSIC wait for connect interrupt timeout."); in mv_hsic_phy_power_on()
130 void __iomem *base = mv_phy->base; in mv_hsic_phy_power_off()
141 void __iomem *base = mv_phy->base; in mv_hsic_phy_exit()
148 clk_disable_unprepare(mv_phy->clk); in mv_hsic_phy_exit()
166 mv_phy = devm_kzalloc(&pdev->dev, sizeof(*mv_phy), GFP_KERNEL); in mv_hsic_phy_probe()
168 return -ENOMEM; in mv_hsic_phy_probe()
170 mv_phy->pdev = pdev; in mv_hsic_phy_probe()
172 mv_phy->clk = devm_clk_get(&pdev->dev, NULL); in mv_hsic_phy_probe()
173 if (IS_ERR(mv_phy->clk)) { in mv_hsic_phy_probe()
174 dev_err(&pdev->dev, "failed to get clock.\n"); in mv_hsic_phy_probe()
175 return PTR_ERR(mv_phy->clk); in mv_hsic_phy_probe()
178 mv_phy->base = devm_platform_ioremap_resource(pdev, 0); in mv_hsic_phy_probe()
179 if (IS_ERR(mv_phy->base)) in mv_hsic_phy_probe()
180 return PTR_ERR(mv_phy->base); in mv_hsic_phy_probe()
182 mv_phy->phy = devm_phy_create(&pdev->dev, pdev->dev.of_node, &hsic_ops); in mv_hsic_phy_probe()
183 if (IS_ERR(mv_phy->phy)) in mv_hsic_phy_probe()
184 return PTR_ERR(mv_phy->phy); in mv_hsic_phy_probe()
186 phy_set_drvdata(mv_phy->phy, mv_phy); in mv_hsic_phy_probe()
188 phy_provider = devm_of_phy_provider_register(&pdev->dev, of_phy_simple_xlate); in mv_hsic_phy_probe()
193 { .compatible = "marvell,pxa1928-hsic-phy", },
201 .name = "mv-hsic-phy",
208 MODULE_DESCRIPTION("Marvell HSIC phy driver");