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



Reply via email to