On 05/30/2018 08:33 AM, Damien Thébault wrote:
> This patch adds support for the BCM5389 switch connected through MDIO.

This looks good, please do address the following couple of things:
- subject should be: net: dsa: b53: Add BCM5389 support
- you also need to update
Documentation/devicetree/bindings/net/dsa/b53.txt with the compatible string

Thank you!

> 
> Signed-off-by: Damien Thébault <damien.theba...@vitec.com>
> ---
>  drivers/net/dsa/b53/b53_common.c | 13 +++++++++++++
>  drivers/net/dsa/b53/b53_mdio.c   |  5 ++++-
>  drivers/net/dsa/b53/b53_priv.h   |  1 +
>  3 files changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/dsa/b53/b53_common.c 
> b/drivers/net/dsa/b53/b53_common.c
> index 78616787f2a3..3da5fca77cbd 100644
> --- a/drivers/net/dsa/b53/b53_common.c
> +++ b/drivers/net/dsa/b53/b53_common.c
> @@ -1711,6 +1711,18 @@ static const struct b53_chip_data b53_switch_chips[] = 
> {
>               .cpu_port = B53_CPU_PORT_25,
>               .duplex_reg = B53_DUPLEX_STAT_FE,
>       },
> +     {
> +             .chip_id = BCM5389_DEVICE_ID,
> +             .dev_name = "BCM5389",
> +             .vlans = 4096,
> +             .enabled_ports = 0x1f,
> +             .arl_entries = 4,
> +             .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,
> +     },
>       {
>               .chip_id = BCM5395_DEVICE_ID,
>               .dev_name = "BCM5395",
> @@ -2034,6 +2046,7 @@ int b53_switch_detect(struct b53_device *dev)
>               else
>                       dev->chip_id = BCM5365_DEVICE_ID;
>               break;
> +     case BCM5389_DEVICE_ID:
>       case BCM5395_DEVICE_ID:
>       case BCM5397_DEVICE_ID:
>       case BCM5398_DEVICE_ID:
> diff --git a/drivers/net/dsa/b53/b53_mdio.c b/drivers/net/dsa/b53/b53_mdio.c
> index fa7556f5d4fb..a533a90e3904 100644
> --- a/drivers/net/dsa/b53/b53_mdio.c
> +++ b/drivers/net/dsa/b53/b53_mdio.c
> @@ -285,6 +285,7 @@ static const struct b53_io_ops b53_mdio_ops = {
>  #define B53_BRCM_OUI_1       0x0143bc00
>  #define B53_BRCM_OUI_2       0x03625c00
>  #define B53_BRCM_OUI_3       0x00406000
> +#define B53_BRCM_OUI_4       0x01410c00
>  
>  static int b53_mdio_probe(struct mdio_device *mdiodev)
>  {
> @@ -311,7 +312,8 @@ static int b53_mdio_probe(struct mdio_device *mdiodev)
>        */
>       if ((phy_id & 0xfffffc00) != B53_BRCM_OUI_1 &&
>           (phy_id & 0xfffffc00) != B53_BRCM_OUI_2 &&
> -         (phy_id & 0xfffffc00) != B53_BRCM_OUI_3) {
> +         (phy_id & 0xfffffc00) != B53_BRCM_OUI_3 &&
> +         (phy_id & 0xfffffc00) != B53_BRCM_OUI_4) {
>               dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id);
>               return -ENODEV;
>       }
> @@ -360,6 +362,7 @@ static const struct of_device_id b53_of_match[] = {
>       { .compatible = "brcm,bcm53125" },
>       { .compatible = "brcm,bcm53128" },
>       { .compatible = "brcm,bcm5365" },
> +     { .compatible = "brcm,bcm5389" },
>       { .compatible = "brcm,bcm5395" },
>       { .compatible = "brcm,bcm5397" },
>       { .compatible = "brcm,bcm5398" },
> diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h
> index 1187ebd79287..3b57f47d0e79 100644
> --- a/drivers/net/dsa/b53/b53_priv.h
> +++ b/drivers/net/dsa/b53/b53_priv.h
> @@ -48,6 +48,7 @@ struct b53_io_ops {
>  enum {
>       BCM5325_DEVICE_ID = 0x25,
>       BCM5365_DEVICE_ID = 0x65,
> +     BCM5389_DEVICE_ID = 0x89,
>       BCM5395_DEVICE_ID = 0x95,
>       BCM5397_DEVICE_ID = 0x97,
>       BCM5398_DEVICE_ID = 0x98,
> 

-- 
Florian

Reply via email to