Exemplo n.º 1
0
int mdiobus_detect(struct device_d *dev)
{
	struct mii_bus *mii = to_mii_bus(dev);
	int i, ret;

	for (i = 0; i < PHY_MAX_ADDR; i++) {
		struct phy_device *phydev;

		phydev = mdiobus_scan(mii, i);
		if (IS_ERR(phydev))
			continue;
		if (phydev->registered)
			continue;
		ret = phy_register_device(phydev);
		if (ret)
			dev_err(dev, "failed to register phy: %s\n", strerror(-ret));
		dev_info(dev, "registered phy as /dev/%s\n", phydev->cdev.name);
	}

	return 0;
}
Exemplo n.º 2
0
static int reg_write(struct dsa_switch *ds, int addr, int reg, u16 val)
{
	return mdiobus_write(to_mii_bus(ds->master_dev),
			     ds->pd->sw_addr + addr, reg, val);
}
Exemplo n.º 3
0
static int reg_read(struct dsa_switch *ds, int addr, int reg)
{
	return mdiobus_read(to_mii_bus(ds->master_dev),
			    ds->pd->sw_addr + addr, reg);
}