Re: [PATCH v2 2/4] net: dsa: add new DSA switch driver for the SMSC-LAN9303

From: Juergen Borleis
Date: Mon Apr 10 2017 - 03:45:08 EST


Hi Andrew,

On Friday 07 April 2017 16:29:43 Andrew Lunn wrote:
> > +static int lan9303_virt_phy_reg_read(struct lan9303 *chip, int regnum)
> > +{
> > + int ret;
> > + u32 val;
> > +
> > + if (regnum > MII_EXPANSION) {
> > + if (regnum == MII_LAN911X_SPECIAL_CONTROL_STATUS)
> > + regnum = 7; /* map to LAN9303_VIRT_SPECIAL_CTRL */
> > + else
> > + return -EINVAL;
> > + }
>
> What PHY ID does the virtual PHY use? The same as the LAN911X? Or
> something different.

Something different: 0x00000000 (instead of 0x0007c0d1 the real PHYs are
using).

> I'm just wondering if this should be in the PHY
> driver. But that only works if you can differentiate the virtual PHY
> from the real PHYs in the PHY driver.

For the real PHYs the driver states:

SMSC LAN911x Internal PHY dsa-0.0:01: attached PHY driver [SMSC LAN911x Internal PHY] (mii_bus:phy_addr=dsa-0.0:01, irq=-1)
SMSC LAN911x Internal PHY dsa-0.0:02: attached PHY driver [SMSC LAN911x Internal PHY] (mii_bus:phy_addr=dsa-0.0:02, irq=-1)

For the virtual PHY the driver states (MDIO emulation case):

Generic PHY 63fec000.etherne:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=63fec000.etherne:00, irq=-1)

And for the fixed-link case:

Generic PHY fixed-0:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=fixed-0:00, irq=-1)

Regards,
Juergen

--
Pengutronix e.K.                              | Juergen Borleis             |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |