Hi,

On Wed, Jan 22, 2014 at 4:58 PM, Helmut Schaa
<[email protected]> wrote:
> The BCM53128 seems to be very similar to the BCM53125 but has some more ports.
>
> Signed-off-by: Helmut Schaa <[email protected]>
> ---
>  .../generic/files/drivers/net/phy/b53/b53_common.c | 14 +++++++++++++
>  .../generic/files/drivers/net/phy/b53/b53_mdio.c   | 24 
> ++++++++++++++++++++++
>  .../generic/files/drivers/net/phy/b53/b53_priv.h   |  4 +++-
>  3 files changed, 41 insertions(+), 1 deletion(-)
>
> diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c 
> b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
> index f6a5418..72b08e1 100644
> --- a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
> +++ b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
> @@ -1130,6 +1130,19 @@ static const struct b53_chip_data b53_switch_chips[] = 
> {
>                 .sw_ops = &b53_switch_ops,
>         },
>         {
> +               .chip_id = BCM53128_DEVICE_ID,
> +               .dev_name = "BCM53128",
> +               .alias = "bcm53128",
> +               .vlans = 4096,
> +               .enabled_ports = 0x1ff,
> +               .cpu_port = B53_CPU_PORT,
> +               .vta_regs = B53_VTA_REGS,
> +               .duplex_reg = B53_DUPLEX_STAT_GE,
> +               .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
> +               .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
> +               .sw_ops = &b53_switch_ops,
> +       },
> +       {
>                 .chip_id = BCM63XX_DEVICE_ID,
>                 .dev_name = "BCM63xx",
>                 .alias = "bcm63xx",
> @@ -1363,6 +1376,7 @@ int b53_switch_detect(struct b53_device *dev)
>                 switch (id32) {
>                 case BCM53115_DEVICE_ID:
>                 case BCM53125_DEVICE_ID:
> +               case BCM53128_DEVICE_ID:
>                 case BCM53010_DEVICE_ID:
>                 case BCM53011_DEVICE_ID:
>                 case BCM53012_DEVICE_ID:
> diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c 
> b/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
> index cacf32b..b7e6b59 100644
> --- a/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
> +++ b/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
> @@ -389,6 +389,23 @@ static struct phy_driver b53_phy_driver_id3 = {
>         },
>  };
>
> +/* BCM53128 */
> +static struct phy_driver b53_phy_driver_id4 = {
> +       .phy_id         = 0x03625e14,
> +       .name           = "Broadcom B53 (4)",
> +       .phy_id_mask    = 0x1ffffc00,
> +       .features       = 0,
> +       .probe          = b53_phy_probe,
> +       .remove         = b53_phy_remove,
> +       .config_aneg    = b53_phy_config_aneg,
> +       .config_init    = b53_phy_config_init,
> +       .read_status    = b53_phy_read_status,
> +       .driver = {
> +               .owner = THIS_MODULE,
> +       },
> +};

This one should be completely unnecessary:

0x03625e14 & 0x1ffffc00 == 0x3625c00, which is the phy_id of
driver_id2, so I don't see how it could ever match (or how id2 then
could match, depending on in which order linux probes).

Apart from that I don't see any issues (adding support for BCM53118 is
probably analogue).


Regards
Jonas
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to