예제 #1
0
파일: mdio.c 프로젝트: 119-org/hi3518-osdrv
int hieth_mdio_write(
		struct hieth_mdio_local *ld,
		int phy_addr,
		int regnum,
		int val)
{
	int ret = 0;
	hieth_assert((!(phy_addr & (~0x1F))) && (!(regnum & (~0x1F))));

	hieth_trace(4, "phy_addr = %d, regnum = %d", phy_addr, regnum);

	local_lock(ld);

	if (!wait_mdio_ready(ld)) {
		hieth_error("mdio busy");
		ret = -1;
		goto error_exit;
	}

	mdio_phywrite(ld, phy_addr, regnum, val);

error_exit:

	local_unlock(ld);

	return val;
}
예제 #2
0
파일: mdio.c 프로젝트: armfun/boot-hix5hd2
static int higmac_mdio_write(struct higmac_mdio_local *ld,
		char *devname, unsigned char phy,
		unsigned char reg, unsigned short val)
{
	if (!wait_mdio_ready(ld))
		return -1;

	higmac_trace(2, "mdio write phy:%x, reg:%x = %x\n", phy, reg, val);

	mdio_set_phywrite_val(ld, val);
	mdio_phywrite(ld, phy, reg);

	return 0;
}