• Home
  • Raw
  • Download

Lines Matching +full:mmp3 +full:- +full:usb +full:- +full:phy

1 // SPDX-License-Identifier: GPL-2.0
10 #include <linux/phy/phy.h>
109 struct phy *phy; member
140 static int mmp3_usb_phy_init(struct phy *phy) in mmp3_usb_phy_init() argument
142 struct mmp3_usb_phy *mmp3_usb_phy = phy_get_drvdata(phy); in mmp3_usb_phy_init()
143 void __iomem *base = mmp3_usb_phy->base; in mmp3_usb_phy_init()
158 dev_err(&phy->dev, "unsupported silicon revision\n"); in mmp3_usb_phy_init()
159 return -ENODEV; in mmp3_usb_phy_init()
195 static int mmp3_usb_phy_calibrate(struct phy *phy) in mmp3_usb_phy_calibrate() argument
197 struct mmp3_usb_phy *mmp3_usb_phy = phy_get_drvdata(phy); in mmp3_usb_phy_calibrate()
198 void __iomem *base = mmp3_usb_phy->base; in mmp3_usb_phy_calibrate()
210 * | 200us | 400us | 40| 400us | USB PHY READY in mmp3_usb_phy_calibrate()
226 dev_err(&phy->dev, "PLL_READY not set after 100mS.\n"); in mmp3_usb_phy_calibrate()
227 return -ETIMEDOUT; in mmp3_usb_phy_calibrate()
241 { .compatible = "marvell,mmp3-usb-phy", },
248 struct device *dev = &pdev->dev; in mmp3_usb_phy_probe()
255 return -ENOMEM; in mmp3_usb_phy_probe()
258 mmp3_usb_phy->base = devm_ioremap_resource(dev, resource); in mmp3_usb_phy_probe()
259 if (IS_ERR(mmp3_usb_phy->base)) { in mmp3_usb_phy_probe()
260 dev_err(dev, "failed to remap PHY regs\n"); in mmp3_usb_phy_probe()
261 return PTR_ERR(mmp3_usb_phy->base); in mmp3_usb_phy_probe()
264 mmp3_usb_phy->phy = devm_phy_create(dev, NULL, &mmp3_usb_phy_ops); in mmp3_usb_phy_probe()
265 if (IS_ERR(mmp3_usb_phy->phy)) { in mmp3_usb_phy_probe()
266 dev_err(dev, "failed to create PHY\n"); in mmp3_usb_phy_probe()
267 return PTR_ERR(mmp3_usb_phy->phy); in mmp3_usb_phy_probe()
270 phy_set_drvdata(mmp3_usb_phy->phy, mmp3_usb_phy); in mmp3_usb_phy_probe()
273 dev_err(dev, "failed to register PHY provider\n"); in mmp3_usb_phy_probe()
283 .name = "mmp3-usb-phy",
290 MODULE_DESCRIPTION("Marvell MMP3 USB PHY Driver");