2021-04-12 16:14:41

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches

On Mon, Apr 12, 2021 at 05:52:39PM +0200, Pali Roh?r wrote:
> On Monday 12 April 2021 17:32:33 Andrew Lunn wrote:
> > > Anyway, now I'm looking at phy/marvell.c driver again and it supports
> > > only 88E6341 and 88E6390 families from whole 88E63xxx range.
> > >
> > > So do we need to define for now table for more than
> > > MV88E6XXX_FAMILY_6341 and MV88E6XXX_FAMILY_6390 entries?
> >
> > Probably not. I've no idea if the 6393 has an ID, so to be safe you
> > should add that. Assuming it has a family of its own.
>
> So what about just?
>
> if (reg == MII_PHYSID2 && !(val & 0x3f0)) {
> if (chip->info->family == MV88E6XXX_FAMILY_6341)
> val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6341 >> 4;
> else if (chip->info->family == MV88E6XXX_FAMILY_6390)
> val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6390 >> 4;
> }

As i said, i expect the 6393 also has no ID. And i recently found out
Marvell have some automotive switches, 88Q5xxx which are actually
based around the same IP and could be added to this driver. They also
might not have an ID. I suspect this list is going to get longer, so
having it table driven will make that simpler, less error prone.

Andrew


2021-04-12 16:50:58

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches

On Monday 12 April 2021 18:12:35 Andrew Lunn wrote:
> On Mon, Apr 12, 2021 at 05:52:39PM +0200, Pali Rohár wrote:
> > On Monday 12 April 2021 17:32:33 Andrew Lunn wrote:
> > > > Anyway, now I'm looking at phy/marvell.c driver again and it supports
> > > > only 88E6341 and 88E6390 families from whole 88E63xxx range.
> > > >
> > > > So do we need to define for now table for more than
> > > > MV88E6XXX_FAMILY_6341 and MV88E6XXX_FAMILY_6390 entries?
> > >
> > > Probably not. I've no idea if the 6393 has an ID, so to be safe you
> > > should add that. Assuming it has a family of its own.
> >
> > So what about just?
> >
> > if (reg == MII_PHYSID2 && !(val & 0x3f0)) {
> > if (chip->info->family == MV88E6XXX_FAMILY_6341)
> > val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6341 >> 4;
> > else if (chip->info->family == MV88E6XXX_FAMILY_6390)
> > val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6390 >> 4;
> > }
>
> As i said, i expect the 6393 also has no ID. And i recently found out
> Marvell have some automotive switches, 88Q5xxx which are actually
> based around the same IP and could be added to this driver. They also
> might not have an ID. I suspect this list is going to get longer, so
> having it table driven will make that simpler, less error prone.
>
> Andrew

Ok, I will use table but I fill it only with Topaz (6341) and Peridot
(6390) which was there before as I do not have 6393 switch for testing.

If you or anybody else has 6393 unit for testing, please extend then
table.

2021-04-13 07:34:06

by Marek Behún

[permalink] [raw]
Subject: Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches

On Mon, 12 Apr 2021 18:38:29 +0200
Pali Rohár <[email protected]> wrote:

> On Monday 12 April 2021 18:12:35 Andrew Lunn wrote:
> > On Mon, Apr 12, 2021 at 05:52:39PM +0200, Pali Rohár wrote:
> > > On Monday 12 April 2021 17:32:33 Andrew Lunn wrote:
> > > > > Anyway, now I'm looking at phy/marvell.c driver again and it supports
> > > > > only 88E6341 and 88E6390 families from whole 88E63xxx range.
> > > > >
> > > > > So do we need to define for now table for more than
> > > > > MV88E6XXX_FAMILY_6341 and MV88E6XXX_FAMILY_6390 entries?
> > > >
> > > > Probably not. I've no idea if the 6393 has an ID, so to be safe you
> > > > should add that. Assuming it has a family of its own.
> > >
> > > So what about just?
> > >
> > > if (reg == MII_PHYSID2 && !(val & 0x3f0)) {
> > > if (chip->info->family == MV88E6XXX_FAMILY_6341)
> > > val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6341 >> 4;
> > > else if (chip->info->family == MV88E6XXX_FAMILY_6390)
> > > val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6390 >> 4;
> > > }
> >
> > As i said, i expect the 6393 also has no ID. And i recently found out
> > Marvell have some automotive switches, 88Q5xxx which are actually
> > based around the same IP and could be added to this driver. They also
> > might not have an ID. I suspect this list is going to get longer, so
> > having it table driven will make that simpler, less error prone.
> >
> > Andrew
>
> Ok, I will use table but I fill it only with Topaz (6341) and Peridot
> (6390) which was there before as I do not have 6393 switch for testing.
>
> If you or anybody else has 6393 unit for testing, please extend then
> table.

6393 PHYs report PHY ID 0x002b0808, I.e. no model number.

I now realize that I did not implement this for 6393, these PHYs are
detected as
mv88e6085 ... PHY [...] driver [Generic PHY] (irq=POLL)

And it seems that this temperature sensor is different from 1510, 6341
and 6390 :) I will look into this and send a patch.

Marek