Lines Matching defs:usb3

58 		.compatible = "brcm,ns-ax-usb3-phy",
62 .compatible = "brcm,ns-bx-usb3-phy",
68 static int bcm_ns_usb3_mdio_phy_write(struct bcm_ns_usb3 *usb3, u16 reg,
71 static int bcm_ns_usb3_phy_init_ns_bx(struct bcm_ns_usb3 *usb3)
76 err = bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PHY_BASE_ADDR_REG,
82 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PLL_CONTROL, 0x1000);
85 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PLLA_CONTROL0, 0x6400);
88 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PLLA_CONTROL1, 0xc000);
91 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PLLA_CONTROL1, 0x8000);
94 writel(0, usb3->dmp + BCMA_RESET_CTL);
97 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PLL_CONTROL, 0x9000);
100 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PHY_BASE_ADDR_REG,
104 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_LFPS_CMP, 0xf30d);
107 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_LFPS_DEGLITCH, 0x6302);
110 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PHY_BASE_ADDR_REG,
114 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_TX_PMD_CONTROL1, 0x1003);
119 static int bcm_ns_usb3_phy_init_ns_ax(struct bcm_ns_usb3 *usb3)
124 err = bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PHY_BASE_ADDR_REG,
129 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PLLA_CONTROL0, 0x6400);
131 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PHY_BASE_ADDR_REG, 0x80e0);
133 bcm_ns_usb3_mdio_phy_write(usb3, 0x02, 0x009c);
136 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_PHY_BASE_ADDR_REG,
139 bcm_ns_usb3_mdio_phy_write(usb3, 0x02, 0x21d3);
141 bcm_ns_usb3_mdio_phy_write(usb3, BCM_NS_USB3_TX_PMD_CONTROL1, 0x1003);
144 writel(0, usb3->dmp + BCMA_RESET_CTL);
151 struct bcm_ns_usb3 *usb3 = phy_get_drvdata(phy);
155 writel(BCMA_RESET_CTL_RESET, usb3->dmp + BCMA_RESET_CTL);
157 switch (usb3->family) {
159 err = bcm_ns_usb3_phy_init_ns_ax(usb3);
162 err = bcm_ns_usb3_phy_init_ns_bx(usb3);
181 static int bcm_ns_usb3_mdio_phy_write(struct bcm_ns_usb3 *usb3, u16 reg,
184 struct mdio_device *mdiodev = usb3->mdiodev;
195 struct bcm_ns_usb3 *usb3;
199 usb3 = devm_kzalloc(dev, sizeof(*usb3), GFP_KERNEL);
200 if (!usb3)
203 usb3->dev = dev;
204 usb3->mdiodev = mdiodev;
209 usb3->family = (uintptr_t)of_id->data;
211 syscon_np = of_parse_phandle(dev->of_node, "usb3-dmp-syscon", 0);
217 usb3->dmp = devm_ioremap_resource(dev, &res);
218 if (IS_ERR(usb3->dmp))
219 return PTR_ERR(usb3->dmp);
221 usb3->phy = devm_phy_create(dev, NULL, &ops);
222 if (IS_ERR(usb3->phy)) {
224 return PTR_ERR(usb3->phy);
227 phy_set_drvdata(usb3->phy, usb3);