All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] net: phy: micrel: add KSZ8795 ethernet switch
@ 2017-01-23  7:58 Sean Nyekjaer
  2017-01-23 15:12 ` Andrew Lunn
  0 siblings, 1 reply; 6+ messages in thread
From: Sean Nyekjaer @ 2017-01-23  7:58 UTC (permalink / raw)
  To: netdev; +Cc: Sean Nyekjaer, andrew

This is add support for the PHYs in the KSZ8795 5port managed switch.

It will allow to detect the link between the switch and the soc
and uses the same read_status functions as the KSZ8873MLL switch.

This ethernet switch have unfortunately the same phy id as KSZ8051.

Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
---
 drivers/net/phy/micrel.c   | 14 ++++++++++++++
 include/linux/micrel_phy.h |  2 ++
 2 files changed, 16 insertions(+)

diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index ea92d524d5a8..fa158ae5115b 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -1014,6 +1014,20 @@ static struct phy_driver ksphy_driver[] = {
 	.get_stats	= kszphy_get_stats,
 	.suspend	= genphy_suspend,
 	.resume		= genphy_resume,
+}, {
+	.phy_id		= PHY_ID_KSZ8795,
+	.phy_id_mask	= MICREL_PHY_ID_MASK,
+	.name		= "Micrel KSZ8795 Switch",
+	.features	= (SUPPORTED_Pause | SUPPORTED_Asym_Pause),
+	.flags		= PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
+	.config_init	= kszphy_config_init,
+	.config_aneg	= ksz8873mll_config_aneg,
+	.read_status	= ksz8873mll_read_status,
+	.get_sset_count = kszphy_get_sset_count,
+	.get_strings	= kszphy_get_strings,
+	.get_stats	= kszphy_get_stats,
+	.suspend	= genphy_suspend,
+	.resume		= genphy_resume,
 } };
 
 module_phy_driver(ksphy_driver);
diff --git a/include/linux/micrel_phy.h b/include/linux/micrel_phy.h
index 257173e0095e..f541da68d1e7 100644
--- a/include/linux/micrel_phy.h
+++ b/include/linux/micrel_phy.h
@@ -35,6 +35,8 @@
 #define PHY_ID_KSZ886X		0x00221430
 #define PHY_ID_KSZ8863		0x00221435
 
+#define PHY_ID_KSZ8795		0x00221550
+
 /* struct phy_device dev_flags definitions */
 #define MICREL_PHY_50MHZ_CLK	0x00000001
 #define MICREL_PHY_FXEN		0x00000002
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] net: phy: micrel: add KSZ8795 ethernet switch
  2017-01-23  7:58 [PATCH v1] net: phy: micrel: add KSZ8795 ethernet switch Sean Nyekjaer
@ 2017-01-23 15:12 ` Andrew Lunn
  2017-01-26 17:51   ` Sean Nyekjær
  0 siblings, 1 reply; 6+ messages in thread
From: Andrew Lunn @ 2017-01-23 15:12 UTC (permalink / raw)
  To: Sean Nyekjaer; +Cc: netdev

On Mon, Jan 23, 2017 at 08:58:46AM +0100, Sean Nyekjaer wrote:
> This is add support for the PHYs in the KSZ8795 5port managed switch.
> 
> It will allow to detect the link between the switch and the soc
> and uses the same read_status functions as the KSZ8873MLL switch.
> 
> This ethernet switch have unfortunately the same phy id as KSZ8051.
> 
> Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
> ---
>  drivers/net/phy/micrel.c   | 14 ++++++++++++++
>  include/linux/micrel_phy.h |  2 ++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
> index ea92d524d5a8..fa158ae5115b 100644
> --- a/drivers/net/phy/micrel.c
> +++ b/drivers/net/phy/micrel.c
> @@ -1014,6 +1014,20 @@ static struct phy_driver ksphy_driver[] = {
>  	.get_stats	= kszphy_get_stats,
>  	.suspend	= genphy_suspend,
>  	.resume		= genphy_resume,
> +}, {
> +	.phy_id		= PHY_ID_KSZ8795,
> +	.phy_id_mask	= MICREL_PHY_ID_MASK,
> +	.name		= "Micrel KSZ8795 Switch",

This name is confusing. You are adding support for the PHYs embedded
in the switch, not the switch itself. The phylib has no idea these
PHYs are inside a switch. It does not matter. It is just a PHY. Please
drop the word "Switch".

Thanks
	Andrew

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] net: phy: micrel: add KSZ8795 ethernet switch
  2017-01-23 15:12 ` Andrew Lunn
@ 2017-01-26 17:51   ` Sean Nyekjær
  2017-01-26 18:12     ` Andrew Lunn
  2017-01-26 18:36     ` Florian Fainelli
  0 siblings, 2 replies; 6+ messages in thread
From: Sean Nyekjær @ 2017-01-26 17:51 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: netdev



On 2017-01-23 16:12, Andrew Lunn wrote:
> On Mon, Jan 23, 2017 at 08:58:46AM +0100, Sean Nyekjaer wrote:
>> This is add support for the PHYs in the KSZ8795 5port managed switch.
>>
>> It will allow to detect the link between the switch and the soc
>> and uses the same read_status functions as the KSZ8873MLL switch.
>>
>> This ethernet switch have unfortunately the same phy id as KSZ8051.
>>
>> Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
>> ---
>>   drivers/net/phy/micrel.c   | 14 ++++++++++++++
>>   include/linux/micrel_phy.h |  2 ++
>>   2 files changed, 16 insertions(+)
>>
>> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
>> index ea92d524d5a8..fa158ae5115b 100644
>> --- a/drivers/net/phy/micrel.c
>> +++ b/drivers/net/phy/micrel.c
>> @@ -1014,6 +1014,20 @@ static struct phy_driver ksphy_driver[] = {
>>   	.get_stats	= kszphy_get_stats,
>>   	.suspend	= genphy_suspend,
>>   	.resume		= genphy_resume,
>> +}, {
>> +	.phy_id		= PHY_ID_KSZ8795,
>> +	.phy_id_mask	= MICREL_PHY_ID_MASK,
>> +	.name		= "Micrel KSZ8795 Switch",
> This name is confusing. You are adding support for the PHYs embedded
> in the switch, not the switch itself. The phylib has no idea these
> PHYs are inside a switch. It does not matter. It is just a PHY. Please
> drop the word "Switch".
>
> Thanks
> 	Andrew
Okay i'll understand :-)
I remove the word "Switch" from the commit message and phy name.
The rest is okay?
What is generally being done when to phy's have the same id, micrel have 
done this many times...

/Sean

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] net: phy: micrel: add KSZ8795 ethernet switch
  2017-01-26 17:51   ` Sean Nyekjær
@ 2017-01-26 18:12     ` Andrew Lunn
  2017-01-27  7:42       ` Sean Nyekjær
  2017-01-26 18:36     ` Florian Fainelli
  1 sibling, 1 reply; 6+ messages in thread
From: Andrew Lunn @ 2017-01-26 18:12 UTC (permalink / raw)
  To: Sean Nyekjær; +Cc: netdev

> I remove the word "Switch" from the commit message and phy name.
> The rest is okay?

Yes.

> What is generally being done when to phy's have the same id, micrel
> have done this many times...

It should not be a problem. When you write a switch driver for the
switch, it will be in device tree. Look at the Marvell Switches as an
example. Switches don't probe based on the ID in registers 2 and 3,
because switches often respond to many different addresses, or don't
have an ID in register 2 and 3.

So it should not matter if the switch and the PHYs embedded in the
switch have the same ID.

When do you plan to post your switch driver?

       Andrew

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] net: phy: micrel: add KSZ8795 ethernet switch
  2017-01-26 17:51   ` Sean Nyekjær
  2017-01-26 18:12     ` Andrew Lunn
@ 2017-01-26 18:36     ` Florian Fainelli
  1 sibling, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2017-01-26 18:36 UTC (permalink / raw)
  To: Sean Nyekjær, Andrew Lunn; +Cc: netdev

On 01/26/2017 09:51 AM, Sean Nyekjær wrote:
> 
> 
> On 2017-01-23 16:12, Andrew Lunn wrote:
>> On Mon, Jan 23, 2017 at 08:58:46AM +0100, Sean Nyekjaer wrote:
>>> This is add support for the PHYs in the KSZ8795 5port managed switch.
>>>
>>> It will allow to detect the link between the switch and the soc
>>> and uses the same read_status functions as the KSZ8873MLL switch.
>>>
>>> This ethernet switch have unfortunately the same phy id as KSZ8051.
>>>
>>> Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
>>> ---
>>>   drivers/net/phy/micrel.c   | 14 ++++++++++++++
>>>   include/linux/micrel_phy.h |  2 ++
>>>   2 files changed, 16 insertions(+)
>>>
>>> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
>>> index ea92d524d5a8..fa158ae5115b 100644
>>> --- a/drivers/net/phy/micrel.c
>>> +++ b/drivers/net/phy/micrel.c
>>> @@ -1014,6 +1014,20 @@ static struct phy_driver ksphy_driver[] = {
>>>       .get_stats    = kszphy_get_stats,
>>>       .suspend    = genphy_suspend,
>>>       .resume        = genphy_resume,
>>> +}, {
>>> +    .phy_id        = PHY_ID_KSZ8795,
>>> +    .phy_id_mask    = MICREL_PHY_ID_MASK,
>>> +    .name        = "Micrel KSZ8795 Switch",
>> This name is confusing. You are adding support for the PHYs embedded
>> in the switch, not the switch itself. The phylib has no idea these
>> PHYs are inside a switch. It does not matter. It is just a PHY. Please
>> drop the word "Switch".
>>
>> Thanks
>>     Andrew
> Okay i'll understand :-)
> I remove the word "Switch" from the commit message and phy name.
> The rest is okay?
> What is generally being done when to phy's have the same id, micrel have
> done this many times...

You need unique names, we have a case like that in
drivers/net/phy/bcm7xxx.c for the 7439 PHY where it exists with two
different IDs, so the first one is named "Broadcom BCM7439" and the
second one is named "Broadcom BCM7439 (2)", feel free to adopt the same
convention, or something else.

The rest of your patch is okay.
-- 
Florian

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] net: phy: micrel: add KSZ8795 ethernet switch
  2017-01-26 18:12     ` Andrew Lunn
@ 2017-01-27  7:42       ` Sean Nyekjær
  0 siblings, 0 replies; 6+ messages in thread
From: Sean Nyekjær @ 2017-01-27  7:42 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: netdev



On 2017-01-26 19:12, Andrew Lunn wrote:
>> I remove the word "Switch" from the commit message and phy name.
>> The rest is okay?
> Yes.
>
>> What is generally being done when to phy's have the same id, micrel
>> have done this many times...
> It should not be a problem. When you write a switch driver for the
> switch, it will be in device tree. Look at the Marvell Switches as an
> example. Switches don't probe based on the ID in registers 2 and 3,
> because switches often respond to many different addresses, or don't
> have an ID in register 2 and 3.
>
> So it should not matter if the switch and the PHYs embedded in the
> switch have the same ID.
>
> When do you plan to post your switch driver?
>
>         Andrew
I was not planning on doing that, the managed part of the switch is not 
needed in the project i'm working on.
Maybe i will do it when i have some spare time, it could be fun :-)

/Sean

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-01-27  8:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-23  7:58 [PATCH v1] net: phy: micrel: add KSZ8795 ethernet switch Sean Nyekjaer
2017-01-23 15:12 ` Andrew Lunn
2017-01-26 17:51   ` Sean Nyekjær
2017-01-26 18:12     ` Andrew Lunn
2017-01-27  7:42       ` Sean Nyekjær
2017-01-26 18:36     ` Florian Fainelli

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.