Lines Matching refs:md

57 static void mdio_mux_iproc_config(struct iproc_mdiomux_desc *md)
63 val = readl(md->base + MDIO_SCAN_CTRL_OFFSET);
65 writel(val, md->base + MDIO_SCAN_CTRL_OFFSET);
67 if (md->core_clk) {
71 divisor = clk_get_rate(md->core_clk) / MDIO_OPERATING_FREQUENCY;
75 writel(val, md->base + MDIO_RATE_ADJ_EXT_OFFSET);
76 writel(val, md->base + MDIO_RATE_ADJ_INT_OFFSET);
136 struct iproc_mdiomux_desc *md = bus->priv;
139 ret = start_miim_ops(md->base, false, phyid, reg, 0, MDIO_CTRL_READ_OP);
149 struct iproc_mdiomux_desc *md = bus->priv;
152 ret = start_miim_ops(md->base, true, phyid, reg | devad << 16, 0,
163 struct iproc_mdiomux_desc *md = bus->priv;
167 ret = start_miim_ops(md->base, false, phyid, reg, val,
178 struct iproc_mdiomux_desc *md = bus->priv;
182 ret = start_miim_ops(md->base, true, phyid, reg | devad << 16, val,
193 struct iproc_mdiomux_desc *md = data;
204 writel(param, md->base + MDIO_PARAM_OFFSET);
210 struct iproc_mdiomux_desc *md;
215 md = devm_kzalloc(&pdev->dev, sizeof(*md), GFP_KERNEL);
216 if (!md)
218 md->dev = &pdev->dev;
220 md->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
221 if (IS_ERR(md->base))
222 return PTR_ERR(md->base);
232 md->mii_bus = devm_mdiobus_alloc(&pdev->dev);
233 if (!md->mii_bus) {
238 md->core_clk = devm_clk_get(&pdev->dev, NULL);
239 if (md->core_clk == ERR_PTR(-ENOENT) ||
240 md->core_clk == ERR_PTR(-EINVAL))
241 md->core_clk = NULL;
242 else if (IS_ERR(md->core_clk))
243 return PTR_ERR(md->core_clk);
245 rc = clk_prepare_enable(md->core_clk);
251 bus = md->mii_bus;
252 bus->priv = md;
269 platform_set_drvdata(pdev, md);
271 rc = mdio_mux_init(md->dev, md->dev->of_node, mdio_mux_iproc_switch_fn,
272 &md->mux_handle, md, md->mii_bus);
274 dev_info(md->dev, "mdiomux initialization failed\n");
278 mdio_mux_iproc_config(md);
280 dev_info(md->dev, "iProc mdiomux registered\n");
286 clk_disable_unprepare(md->core_clk);
292 struct iproc_mdiomux_desc *md = platform_get_drvdata(pdev);
294 mdio_mux_uninit(md->mux_handle);
295 mdiobus_unregister(md->mii_bus);
296 clk_disable_unprepare(md->core_clk);
304 struct iproc_mdiomux_desc *md = dev_get_drvdata(dev);
306 clk_disable_unprepare(md->core_clk);
313 struct iproc_mdiomux_desc *md = dev_get_drvdata(dev);
316 rc = clk_prepare_enable(md->core_clk);
318 dev_err(md->dev, "failed to enable core clk\n");
321 mdio_mux_iproc_config(md);