diff mbox series

[net-next] net: dsa: microchip: add ksz9563 to ksz9477 I2C driver

Message ID 20201007093049.13078-1-ceggers@arri.de
State Accepted
Delegated to: David Miller
Headers show
Series [net-next] net: dsa: microchip: add ksz9563 to ksz9477 I2C driver | expand

Commit Message

Christian Eggers Oct. 7, 2020, 9:30 a.m. UTC
Add support for the KSZ9563 3-Port Gigabit Ethernet Switch to the
ksz9477 driver. The KSZ9563 supports both SPI (already in) and I2C. The
ksz9563 is already in the device tree binding documentation.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 drivers/net/dsa/microchip/ksz9477_i2c.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Andrew Lunn Oct. 7, 2020, 12:21 p.m. UTC | #1
On Wed, Oct 07, 2020 at 11:30:49AM +0200, Christian Eggers wrote:
> Add support for the KSZ9563 3-Port Gigabit Ethernet Switch to the
> ksz9477 driver. The KSZ9563 supports both SPI (already in) and I2C. The
> ksz9563 is already in the device tree binding documentation.

Hi Christian

What chip_id values does it use? I don't see it listed in
ksz9477_switch_chips.

Thanks
	Andrew
Christian Eggers Oct. 7, 2020, 1:13 p.m. UTC | #2
Hi Andrew,

> What chip_id values does it use? I don't see it listed in
> ksz9477_switch_chips.

here a short dump of the first chip registers:

>         Chip ID0     00
>         Chip ID1_2   9893      Chip ID      9893
>         Chip ID3     60        Revision ID  6              Reset         normal
>         Chip ID4     1C        SKU ID       1C

In ksz9477_switch_detect(), the 32 bit value is built from only
the 2 middle bytes: 0x00989300. The number of port (3) is also
assigned within this function:

> 	if ((id_lo & 0xf) == 3) {
> 		/* Chip is from KSZ9893 design. */
> 		dev->features |= IS_9893;
> 		/* Chip does not support gigabit. */
> 		if (data8 & SW_QW_ABLE)
> 			dev->features &= ~GBIT_SUPPORT;
> 		dev->mib_port_cnt = 3;
> 		dev->phy_port_cnt = 2;
> 	} ...

The chip id 0x00989300 does already exist in ksz9477_switch_chips:

> 	{
> 		.chip_id = 0x00989300,
> 		.dev_name = "KSZ9893",
> 		.num_vlans = 4096,
> 		.num_alus = 4096,
> 		.num_statics = 16,
> 		.cpu_ports = 0x07,	/* can be configured as cpu port */
> 		.port_cnt = 3,		/* total port count */
> 	},

But my chip is really a KSZ9563.

Best regards
Christian
Andrew Lunn Oct. 7, 2020, 1:19 p.m. UTC | #3
On Wed, Oct 07, 2020 at 03:13:15PM +0200, Christian Eggers wrote:
> Hi Andrew,
> 
> > What chip_id values does it use? I don't see it listed in
> > ksz9477_switch_chips.
> 
> here a short dump of the first chip registers:
> 
> >         Chip ID0     00
> >         Chip ID1_2   9893      Chip ID      9893
> >         Chip ID3     60        Revision ID  6              Reset         normal
> >         Chip ID4     1C        SKU ID       1C
> 
> In ksz9477_switch_detect(), the 32 bit value is built from only
> the 2 middle bytes: 0x00989300. The number of port (3) is also
> assigned within this function:
> 
> > 	if ((id_lo & 0xf) == 3) {
> > 		/* Chip is from KSZ9893 design. */
> > 		dev->features |= IS_9893;
> > 		/* Chip does not support gigabit. */
> > 		if (data8 & SW_QW_ABLE)
> > 			dev->features &= ~GBIT_SUPPORT;
> > 		dev->mib_port_cnt = 3;
> > 		dev->phy_port_cnt = 2;
> > 	} ...
> 
> The chip id 0x00989300 does already exist in ksz9477_switch_chips:
> 
> > 	{
> > 		.chip_id = 0x00989300,
> > 		.dev_name = "KSZ9893",

O.K. Thanks. This is not very clear. Maybe add a follow up patch which
adds some comments?

     Andrew
Andrew Lunn Oct. 7, 2020, 1:20 p.m. UTC | #4
On Wed, Oct 07, 2020 at 11:30:49AM +0200, Christian Eggers wrote:
> Add support for the KSZ9563 3-Port Gigabit Ethernet Switch to the
> ksz9477 driver. The KSZ9563 supports both SPI (already in) and I2C. The
> ksz9563 is already in the device tree binding documentation.
> 
> Signed-off-by: Christian Eggers <ceggers@arri.de>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew
Jakub Kicinski Oct. 9, 2020, 8:08 p.m. UTC | #5
On Wed, 7 Oct 2020 15:20:02 +0200 Andrew Lunn wrote:
> On Wed, Oct 07, 2020 at 11:30:49AM +0200, Christian Eggers wrote:
> > Add support for the KSZ9563 3-Port Gigabit Ethernet Switch to the
> > ksz9477 driver. The KSZ9563 supports both SPI (already in) and I2C. The
> > ksz9563 is already in the device tree binding documentation.
> > 
> > Signed-off-by: Christian Eggers <ceggers@arri.de>  
> 
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>

Applied, thanks!
diff mbox series

Patch

diff --git a/drivers/net/dsa/microchip/ksz9477_i2c.c b/drivers/net/dsa/microchip/ksz9477_i2c.c
index 7951f52d860d..4e053a25d077 100644
--- a/drivers/net/dsa/microchip/ksz9477_i2c.c
+++ b/drivers/net/dsa/microchip/ksz9477_i2c.c
@@ -80,6 +80,7 @@  static const struct of_device_id ksz9477_dt_ids[] = {
 	{ .compatible = "microchip,ksz9477" },
 	{ .compatible = "microchip,ksz9897" },
 	{ .compatible = "microchip,ksz9893" },
+	{ .compatible = "microchip,ksz9563" },
 	{ .compatible = "microchip,ksz9567" },
 	{},
 };