• Home
  • Raw
  • Download

Lines Matching +full:enable +full:- +full:ssc

1 // SPDX-License-Identifier: GPL-2.0-only
63 .compatible = "brcm,ns-ax-usb3-phy",
67 .compatible = "brcm,ns-bx-usb3-phy",
77 return usb3->phy_write(usb3, reg, value); in bcm_ns_usb3_mdio_phy_write()
103 writel(0, usb3->dmp + BCMA_RESET_CTL); in bcm_ns_usb3_phy_init_ns_bx()
105 /* PLL frequency monitor enable */ in bcm_ns_usb3_phy_init_ns_bx()
122 /* Enabling SSC */ in bcm_ns_usb3_phy_init_ns_bx()
144 /* Enable SSC */ in bcm_ns_usb3_phy_init_ns_ax()
153 writel(0, usb3->dmp + BCMA_RESET_CTL); in bcm_ns_usb3_phy_init_ns_ax()
164 writel(BCMA_RESET_CTL_RESET, usb3->dmp + BCMA_RESET_CTL); in bcm_ns_usb3_phy_init()
166 switch (usb3->family) { in bcm_ns_usb3_phy_init()
175 err = -ENOTSUPP; in bcm_ns_usb3_phy_init()
193 struct mdio_device *mdiodev = usb3->mdiodev; in bcm_ns_usb3_mdiodev_phy_write()
195 return mdiobus_write(mdiodev->bus, mdiodev->addr, reg, value); in bcm_ns_usb3_mdiodev_phy_write()
200 struct device *dev = &mdiodev->dev; in bcm_ns_usb3_mdio_probe()
210 return -ENOMEM; in bcm_ns_usb3_mdio_probe()
212 usb3->dev = dev; in bcm_ns_usb3_mdio_probe()
213 usb3->mdiodev = mdiodev; in bcm_ns_usb3_mdio_probe()
217 return -EINVAL; in bcm_ns_usb3_mdio_probe()
218 usb3->family = (enum bcm_ns_family)of_id->data; in bcm_ns_usb3_mdio_probe()
220 syscon_np = of_parse_phandle(dev->of_node, "usb3-dmp-syscon", 0); in bcm_ns_usb3_mdio_probe()
226 usb3->dmp = devm_ioremap_resource(dev, &res); in bcm_ns_usb3_mdio_probe()
227 if (IS_ERR(usb3->dmp)) { in bcm_ns_usb3_mdio_probe()
229 return PTR_ERR(usb3->dmp); in bcm_ns_usb3_mdio_probe()
232 usb3->phy_write = bcm_ns_usb3_mdiodev_phy_write; in bcm_ns_usb3_mdio_probe()
234 usb3->phy = devm_phy_create(dev, NULL, &ops); in bcm_ns_usb3_mdio_probe()
235 if (IS_ERR(usb3->phy)) { in bcm_ns_usb3_mdio_probe()
237 return PTR_ERR(usb3->phy); in bcm_ns_usb3_mdio_probe()
240 phy_set_drvdata(usb3->phy, usb3); in bcm_ns_usb3_mdio_probe()
270 dev_err(usb3->dev, "Timeout waiting for register %p\n", addr); in bcm_ns_usb3_wait_reg()
277 return bcm_ns_usb3_wait_reg(usb3, usb3->ccb_mii + BCMA_CCB_MII_MNG_CTL, in bcm_ns_usb3_mii_mng_wait_idle()
290 dev_err(usb3->dev, "Couldn't write 0x%08x value\n", value); in bcm_ns_usb3_platform_phy_write()
298 writel(tmp, usb3->ccb_mii + BCMA_CCB_MII_MNG_CMD_DATA); in bcm_ns_usb3_platform_phy_write()
305 struct device *dev = &pdev->dev; in bcm_ns_usb3_probe()
313 return -ENOMEM; in bcm_ns_usb3_probe()
315 usb3->dev = dev; in bcm_ns_usb3_probe()
319 return -EINVAL; in bcm_ns_usb3_probe()
320 usb3->family = (enum bcm_ns_family)of_id->data; in bcm_ns_usb3_probe()
323 usb3->dmp = devm_ioremap_resource(dev, res); in bcm_ns_usb3_probe()
324 if (IS_ERR(usb3->dmp)) { in bcm_ns_usb3_probe()
326 return PTR_ERR(usb3->dmp); in bcm_ns_usb3_probe()
329 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ccb-mii"); in bcm_ns_usb3_probe()
330 usb3->ccb_mii = devm_ioremap_resource(dev, res); in bcm_ns_usb3_probe()
331 if (IS_ERR(usb3->ccb_mii)) { in bcm_ns_usb3_probe()
333 return PTR_ERR(usb3->ccb_mii); in bcm_ns_usb3_probe()
336 /* Enable MDIO. Setting MDCDIV as 26 */ in bcm_ns_usb3_probe()
337 writel(0x0000009a, usb3->ccb_mii + BCMA_CCB_MII_MNG_CTL); in bcm_ns_usb3_probe()
342 usb3->phy_write = bcm_ns_usb3_platform_phy_write; in bcm_ns_usb3_probe()
344 usb3->phy = devm_phy_create(dev, NULL, &ops); in bcm_ns_usb3_probe()
345 if (IS_ERR(usb3->phy)) { in bcm_ns_usb3_probe()
347 return PTR_ERR(usb3->phy); in bcm_ns_usb3_probe()
350 phy_set_drvdata(usb3->phy, usb3); in bcm_ns_usb3_probe()