From 6804a8c89b8c31c3ef4e7e8ab03b82ebee41dd45 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 19 Apr 2018 12:38:55 +0100 Subject: [mii] Separate concepts of MII interface and MII device We currently have no generic concept of a PHY address, since all existing implementations simply hardcode the PHY address within the MII access methods. A bit-bashing MII interface will need to be provided with an explicit PHY address in order to generate the correct waveform. Allow for this by separating out the concept of a MII device (i.e. a specific PHY address attached to a particular MII interface). Signed-off-by: Michael Brown --- src/drivers/net/smscusb.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/drivers/net/smscusb.h') diff --git a/src/drivers/net/smscusb.h b/src/drivers/net/smscusb.h index 5e4440ea..b5d9ad3f 100644 --- a/src/drivers/net/smscusb.h +++ b/src/drivers/net/smscusb.h @@ -151,7 +151,9 @@ struct smscusb_device { /** USB network device */ struct usbnet_device usbnet; /** MII interface */ - struct mii_interface mii; + struct mii_interface mdio; + /** MII device */ + struct mii_device mii; /** MII register base */ uint16_t mii_base; /** PHY interrupt source register */ @@ -275,7 +277,8 @@ static inline __attribute__ (( always_inline )) void smscusb_mii_init ( struct smscusb_device *smscusb, unsigned int mii_base, unsigned int phy_source ) { - mii_init ( &smscusb->mii, &smscusb_mii_operations ); + mdio_init ( &smscusb->mdio, &smscusb_mii_operations ); + mii_init ( &smscusb->mii, &smscusb->mdio, 0 ); smscusb->mii_base = mii_base; smscusb->phy_source = phy_source; } -- cgit v1.2.3-55-g7522