net: dsa: add support for ksz9897 ethernet switch

ksz9477 is superset of ksz9xx series, driver just works
out of the box for ksz9897 chip with this patch.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Lad, Prabhakar 2018-08-15 16:51:23 +01:00 committed by David S. Miller
parent 7797b93b75
commit 4531681837
3 changed files with 13 additions and 1 deletions

View File

@ -4,7 +4,9 @@ Microchip KSZ Series Ethernet switches
Required properties: Required properties:
- compatible: For external switch chips, compatible string must be exactly one - compatible: For external switch chips, compatible string must be exactly one
of: "microchip,ksz9477" of the following:
- "microchip,ksz9477"
- "microchip,ksz9897"
See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
required and optional properties. required and optional properties.

View File

@ -1102,6 +1102,15 @@ static const struct ksz_chip_data ksz_switch_chips[] = {
.cpu_ports = 0x7F, /* can be configured as cpu port */ .cpu_ports = 0x7F, /* can be configured as cpu port */
.port_cnt = 7, /* total physical port count */ .port_cnt = 7, /* total physical port count */
}, },
{
.chip_id = 0x00989700,
.dev_name = "KSZ9897",
.num_vlans = 4096,
.num_alus = 4096,
.num_statics = 16,
.cpu_ports = 0x7F, /* can be configured as cpu port */
.port_cnt = 7, /* total physical port count */
},
}; };
static int ksz_switch_init(struct ksz_device *dev) static int ksz_switch_init(struct ksz_device *dev)

View File

@ -195,6 +195,7 @@ static int ksz_spi_remove(struct spi_device *spi)
static const struct of_device_id ksz_dt_ids[] = { static const struct of_device_id ksz_dt_ids[] = {
{ .compatible = "microchip,ksz9477" }, { .compatible = "microchip,ksz9477" },
{ .compatible = "microchip,ksz9897" },
{}, {},
}; };
MODULE_DEVICE_TABLE(of, ksz_dt_ids); MODULE_DEVICE_TABLE(of, ksz_dt_ids);