Lines Matching refs:bus

93 static int octeon_mdiobus_read(struct mii_bus *bus, int phy_id, int regnum)  in octeon_mdiobus_read()  argument
95 struct octeon_mdiobus *p = bus->priv; in octeon_mdiobus_read()
133 static int octeon_mdiobus_write(struct mii_bus *bus, int phy_id, in octeon_mdiobus_write() argument
136 struct octeon_mdiobus *p = bus->priv; in octeon_mdiobus_write()
180 struct octeon_mdiobus *bus; in octeon_mdiobus_probe() local
185 bus = devm_kzalloc(&pdev->dev, sizeof(*bus), GFP_KERNEL); in octeon_mdiobus_probe()
186 if (!bus) in octeon_mdiobus_probe()
196 bus->mdio_phys = res_mem->start; in octeon_mdiobus_probe()
197 bus->regsize = resource_size(res_mem); in octeon_mdiobus_probe()
198 if (!devm_request_mem_region(&pdev->dev, bus->mdio_phys, bus->regsize, in octeon_mdiobus_probe()
203 bus->register_base = in octeon_mdiobus_probe()
204 (u64)devm_ioremap(&pdev->dev, bus->mdio_phys, bus->regsize); in octeon_mdiobus_probe()
206 bus->mii_bus = mdiobus_alloc(); in octeon_mdiobus_probe()
208 if (!bus->mii_bus) in octeon_mdiobus_probe()
213 cvmx_write_csr(bus->register_base + SMI_EN, smi_en.u64); in octeon_mdiobus_probe()
215 bus->mii_bus->priv = bus; in octeon_mdiobus_probe()
216 bus->mii_bus->irq = bus->phy_irq; in octeon_mdiobus_probe()
217 bus->mii_bus->name = "mdio-octeon"; in octeon_mdiobus_probe()
218 snprintf(bus->mii_bus->id, MII_BUS_ID_SIZE, "%llx", bus->register_base); in octeon_mdiobus_probe()
219 bus->mii_bus->parent = &pdev->dev; in octeon_mdiobus_probe()
221 bus->mii_bus->read = octeon_mdiobus_read; in octeon_mdiobus_probe()
222 bus->mii_bus->write = octeon_mdiobus_write; in octeon_mdiobus_probe()
224 platform_set_drvdata(pdev, bus); in octeon_mdiobus_probe()
226 err = of_mdiobus_register(bus->mii_bus, pdev->dev.of_node); in octeon_mdiobus_probe()
234 mdiobus_free(bus->mii_bus); in octeon_mdiobus_probe()
237 cvmx_write_csr(bus->register_base + SMI_EN, smi_en.u64); in octeon_mdiobus_probe()
243 struct octeon_mdiobus *bus; in octeon_mdiobus_remove() local
246 bus = platform_get_drvdata(pdev); in octeon_mdiobus_remove()
248 mdiobus_unregister(bus->mii_bus); in octeon_mdiobus_remove()
249 mdiobus_free(bus->mii_bus); in octeon_mdiobus_remove()
251 cvmx_write_csr(bus->register_base + SMI_EN, smi_en.u64); in octeon_mdiobus_remove()