All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-master] net: phy: dp83848: Add the TI TLK05/06 PHY ID
@ 2020-02-19 18:16 Dan Murphy
  2020-02-19 18:40 ` Andrew F. Davis
  2020-02-19 18:48 ` Andrew Lunn
  0 siblings, 2 replies; 4+ messages in thread
From: Dan Murphy @ 2020-02-19 18:16 UTC (permalink / raw)
  To: andrew, f.fainelli, hkallweit1
  Cc: linux, davem, linux-kernel, netdev, afd, Dan Murphy

Add the TLK05/06 PHY ID to the DP83848 driver.  The TI website indicates
that the DP83822 device is a drop in replacement for the TLK05 device
but the TLK device does not have WoL support.  The TLK device is
register compatible to the DP83848 and the DP83848 does not support WoL
either.  So this PHY can be associated with the DP83848 driver.

The initial TLKx PHY ID in the driver is a legacy ID and the public data
sheet indicates a new PHY ID.  So not to break any kernels out there
both IDs will continue to be supported in this driver.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
---
 drivers/net/phy/dp83848.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/phy/dp83848.c b/drivers/net/phy/dp83848.c
index 54c7c1b44e4d..66907cfa816a 100644
--- a/drivers/net/phy/dp83848.c
+++ b/drivers/net/phy/dp83848.c
@@ -12,6 +12,7 @@
 #define TI_DP83620_PHY_ID		0x20005ce0
 #define NS_DP83848C_PHY_ID		0x20005c90
 #define TLK10X_PHY_ID			0x2000a210
+#define TLK105_06_PHY_ID		0x2000a211
 
 /* Registers */
 #define DP83848_MICR			0x11 /* MII Interrupt Control Register */
@@ -85,6 +86,7 @@ static struct mdio_device_id __maybe_unused dp83848_tbl[] = {
 	{ NS_DP83848C_PHY_ID, 0xfffffff0 },
 	{ TI_DP83620_PHY_ID, 0xfffffff0 },
 	{ TLK10X_PHY_ID, 0xfffffff0 },
+	{ TLK105_06_PHY_ID, 0xfffffff0 },
 	{ }
 };
 MODULE_DEVICE_TABLE(mdio, dp83848_tbl);
@@ -115,6 +117,8 @@ static struct phy_driver dp83848_driver[] = {
 			   dp83848_config_init),
 	DP83848_PHY_DRIVER(TLK10X_PHY_ID, "TI TLK10X 10/100 Mbps PHY",
 			   NULL),
+	DP83848_PHY_DRIVER(TLK105_06_PHY_ID, "TI TLK105/06 10/100 Mbps PHY",
+			   NULL),
 };
 module_phy_driver(dp83848_driver);
 
-- 
2.25.0


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

* Re: [PATCH net-master] net: phy: dp83848: Add the TI TLK05/06 PHY ID
  2020-02-19 18:16 [PATCH net-master] net: phy: dp83848: Add the TI TLK05/06 PHY ID Dan Murphy
@ 2020-02-19 18:40 ` Andrew F. Davis
  2020-02-19 18:48 ` Andrew Lunn
  1 sibling, 0 replies; 4+ messages in thread
From: Andrew F. Davis @ 2020-02-19 18:40 UTC (permalink / raw)
  To: Dan Murphy, andrew, f.fainelli, hkallweit1
  Cc: linux, davem, linux-kernel, netdev

On 2/19/20 1:16 PM, Dan Murphy wrote:
> Add the TLK05/06 PHY ID to the DP83848 driver.  The TI website indicates
> that the DP83822 device is a drop in replacement for the TLK05 device
> but the TLK device does not have WoL support.  The TLK device is
> register compatible to the DP83848 and the DP83848 does not support WoL
> either.  So this PHY can be associated with the DP83848 driver.
> 
> The initial TLKx PHY ID in the driver is a legacy ID and the public data
> sheet indicates a new PHY ID.  So not to break any kernels out there
> both IDs will continue to be supported in this driver.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> ---
>  drivers/net/phy/dp83848.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/phy/dp83848.c b/drivers/net/phy/dp83848.c
> index 54c7c1b44e4d..66907cfa816a 100644
> --- a/drivers/net/phy/dp83848.c
> +++ b/drivers/net/phy/dp83848.c
> @@ -12,6 +12,7 @@
>  #define TI_DP83620_PHY_ID		0x20005ce0
>  #define NS_DP83848C_PHY_ID		0x20005c90
>  #define TLK10X_PHY_ID			0x2000a210
> +#define TLK105_06_PHY_ID		0x2000a211
>  
>  /* Registers */
>  #define DP83848_MICR			0x11 /* MII Interrupt Control Register */
> @@ -85,6 +86,7 @@ static struct mdio_device_id __maybe_unused dp83848_tbl[] = {
>  	{ NS_DP83848C_PHY_ID, 0xfffffff0 },
>  	{ TI_DP83620_PHY_ID, 0xfffffff0 },
>  	{ TLK10X_PHY_ID, 0xfffffff0 },
> +	{ TLK105_06_PHY_ID, 0xfffffff0 },


If the PHY ID masks out the lowest 4 bits here (they are just revision),
wont we still always match on the base TLK10X_PHY_ID? Does this patch
change anything?

Andrew


>  	{ }
>  };
>  MODULE_DEVICE_TABLE(mdio, dp83848_tbl);
> @@ -115,6 +117,8 @@ static struct phy_driver dp83848_driver[] = {
>  			   dp83848_config_init),
>  	DP83848_PHY_DRIVER(TLK10X_PHY_ID, "TI TLK10X 10/100 Mbps PHY",
>  			   NULL),
> +	DP83848_PHY_DRIVER(TLK105_06_PHY_ID, "TI TLK105/06 10/100 Mbps PHY",
> +			   NULL),
>  };
>  module_phy_driver(dp83848_driver);
>  
> 

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

* Re: [PATCH net-master] net: phy: dp83848: Add the TI TLK05/06 PHY ID
  2020-02-19 18:16 [PATCH net-master] net: phy: dp83848: Add the TI TLK05/06 PHY ID Dan Murphy
  2020-02-19 18:40 ` Andrew F. Davis
@ 2020-02-19 18:48 ` Andrew Lunn
  2020-02-19 18:58   ` Dan Murphy
  1 sibling, 1 reply; 4+ messages in thread
From: Andrew Lunn @ 2020-02-19 18:48 UTC (permalink / raw)
  To: Dan Murphy
  Cc: f.fainelli, hkallweit1, linux, davem, linux-kernel, netdev, afd

On Wed, Feb 19, 2020 at 12:16:13PM -0600, Dan Murphy wrote:
> Add the TLK05/06 PHY ID to the DP83848 driver.  The TI website indicates
> that the DP83822 device is a drop in replacement for the TLK05 device
> but the TLK device does not have WoL support.  The TLK device is
> register compatible to the DP83848 and the DP83848 does not support WoL
> either.  So this PHY can be associated with the DP83848 driver.
> 
> The initial TLKx PHY ID in the driver is a legacy ID and the public data
> sheet indicates a new PHY ID.  So not to break any kernels out there
> both IDs will continue to be supported in this driver.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> ---
>  drivers/net/phy/dp83848.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/phy/dp83848.c b/drivers/net/phy/dp83848.c
> index 54c7c1b44e4d..66907cfa816a 100644
> --- a/drivers/net/phy/dp83848.c
> +++ b/drivers/net/phy/dp83848.c
> @@ -12,6 +12,7 @@
>  #define TI_DP83620_PHY_ID		0x20005ce0
>  #define NS_DP83848C_PHY_ID		0x20005c90
>  #define TLK10X_PHY_ID			0x2000a210
> +#define TLK105_06_PHY_ID		0x2000a211
>  
>  /* Registers */
>  #define DP83848_MICR			0x11 /* MII Interrupt Control Register */
> @@ -85,6 +86,7 @@ static struct mdio_device_id __maybe_unused dp83848_tbl[] = {
>  	{ NS_DP83848C_PHY_ID, 0xfffffff0 },
>  	{ TI_DP83620_PHY_ID, 0xfffffff0 },
>  	{ TLK10X_PHY_ID, 0xfffffff0 },
> +	{ TLK105_06_PHY_ID, 0xfffffff0 },
>  	{ }
>  };
>  MODULE_DEVICE_TABLE(mdio, dp83848_tbl);
> @@ -115,6 +117,8 @@ static struct phy_driver dp83848_driver[] = {
>  			   dp83848_config_init),
>  	DP83848_PHY_DRIVER(TLK10X_PHY_ID, "TI TLK10X 10/100 Mbps PHY",
>  			   NULL),
> +	DP83848_PHY_DRIVER(TLK105_06_PHY_ID, "TI TLK105/06 10/100 Mbps PHY",
> +			   NULL),

I'm pretty sure Andrew's comment is correct. Due to the mask, the
TLK10X_PHY_ID entry will hit.

What you can do is change the order and the mask. Put TLK105_06_PHY_ID
before TLK10X_PHY_ID and have an exact match, no mask.

       Andrew

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

* Re: [PATCH net-master] net: phy: dp83848: Add the TI TLK05/06 PHY ID
  2020-02-19 18:48 ` Andrew Lunn
@ 2020-02-19 18:58   ` Dan Murphy
  0 siblings, 0 replies; 4+ messages in thread
From: Dan Murphy @ 2020-02-19 18:58 UTC (permalink / raw)
  To: Andrew Lunn
  Cc: f.fainelli, hkallweit1, linux, davem, linux-kernel, netdev, afd

Andrew(s)

On 2/19/20 12:48 PM, Andrew Lunn wrote:
> On Wed, Feb 19, 2020 at 12:16:13PM -0600, Dan Murphy wrote:
>> Add the TLK05/06 PHY ID to the DP83848 driver.  The TI website indicates
>> that the DP83822 device is a drop in replacement for the TLK05 device
>> but the TLK device does not have WoL support.  The TLK device is
>> register compatible to the DP83848 and the DP83848 does not support WoL
>> either.  So this PHY can be associated with the DP83848 driver.
>>
>> The initial TLKx PHY ID in the driver is a legacy ID and the public data
>> sheet indicates a new PHY ID.  So not to break any kernels out there
>> both IDs will continue to be supported in this driver.
>>
>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>> ---
>>   drivers/net/phy/dp83848.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/net/phy/dp83848.c b/drivers/net/phy/dp83848.c
>> index 54c7c1b44e4d..66907cfa816a 100644
>> --- a/drivers/net/phy/dp83848.c
>> +++ b/drivers/net/phy/dp83848.c
>> @@ -12,6 +12,7 @@
>>   #define TI_DP83620_PHY_ID		0x20005ce0
>>   #define NS_DP83848C_PHY_ID		0x20005c90
>>   #define TLK10X_PHY_ID			0x2000a210
>> +#define TLK105_06_PHY_ID		0x2000a211
>>   
>>   /* Registers */
>>   #define DP83848_MICR			0x11 /* MII Interrupt Control Register */
>> @@ -85,6 +86,7 @@ static struct mdio_device_id __maybe_unused dp83848_tbl[] = {
>>   	{ NS_DP83848C_PHY_ID, 0xfffffff0 },
>>   	{ TI_DP83620_PHY_ID, 0xfffffff0 },
>>   	{ TLK10X_PHY_ID, 0xfffffff0 },
>> +	{ TLK105_06_PHY_ID, 0xfffffff0 },
>>   	{ }
>>   };
>>   MODULE_DEVICE_TABLE(mdio, dp83848_tbl);
>> @@ -115,6 +117,8 @@ static struct phy_driver dp83848_driver[] = {
>>   			   dp83848_config_init),
>>   	DP83848_PHY_DRIVER(TLK10X_PHY_ID, "TI TLK10X 10/100 Mbps PHY",
>>   			   NULL),
>> +	DP83848_PHY_DRIVER(TLK105_06_PHY_ID, "TI TLK105/06 10/100 Mbps PHY",
>> +			   NULL),
> I'm pretty sure Andrew's comment is correct. Due to the mask, the
> TLK10X_PHY_ID entry will hit.
Yes Andrew D is correct.
> What you can do is change the order and the mask. Put TLK105_06_PHY_ID
> before TLK10X_PHY_ID and have an exact match, no mask.

I don't think we need a patch then for this ID.

As Andrew D pointed out it will match the current ID since the lower 
nibble of the ID is masked off.

Dan
>
>         Andrew

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

end of thread, other threads:[~2020-02-19 19:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-19 18:16 [PATCH net-master] net: phy: dp83848: Add the TI TLK05/06 PHY ID Dan Murphy
2020-02-19 18:40 ` Andrew F. Davis
2020-02-19 18:48 ` Andrew Lunn
2020-02-19 18:58   ` Dan Murphy

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.