From patchwork Mon Mar 30 13:53:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 221591 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFDD6C2D0E5 for ; Mon, 30 Mar 2020 14:01:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8A86E20776 for ; Mon, 30 Mar 2020 14:01:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=tq-group.com header.i=@tq-group.com header.b="AZWoPvAd" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727800AbgC3OBi (ORCPT ); Mon, 30 Mar 2020 10:01:38 -0400 Received: from mx1.tq-group.com ([62.157.118.193]:24401 "EHLO mx1.tq-group.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726099AbgC3OBi (ORCPT ); Mon, 30 Mar 2020 10:01:38 -0400 X-Greylist: delayed 428 seconds by postgrey-1.27 at vger.kernel.org; Mon, 30 Mar 2020 10:01:37 EDT IronPort-SDR: k/cMlrQ310LNtxZ/PBbgfkj3G9s0OFe7JKVwqbNI5a206LhugYvWtpFil4i043OZpgWSW2Qm7e 7So3pC8bRw+bBiMCyDunuNXCLksfE+1Uve8gDtwDUoWxdKpP0WCbGDQ2KNwdLUGJw2Uar+vDsN Morn2QbsKgWv1QA10KcHiOmELGFGf9F9z2uqrGYSlu/rXYwVXbdYA63ugjuXLWSlnFTCDfPurW zBmdcGcwiiKYdtdRNx9RMI3jVZdex7f8r88zmdE9I3c2wfVVflYI3WuVT2+4IDoOG+/4KQyLof NFg= X-IronPort-AV: E=Sophos;i="5.72,324,1580770800"; d="scan'208";a="11606916" Received: from unknown (HELO tq-pgp-pr1.tq-net.de) ([192.168.6.15]) by mx1-pgp.tq-group.com with ESMTP; 30 Mar 2020 15:54:28 +0200 Received: from mx1.tq-group.com ([192.168.6.7]) by tq-pgp-pr1.tq-net.de (PGP Universal service); Mon, 30 Mar 2020 15:54:28 +0200 X-PGP-Universal: processed; by tq-pgp-pr1.tq-net.de on Mon, 30 Mar 2020 15:54:28 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1585576468; x=1617112468; h=from:to:cc:subject:date:message-id; bh=MG3g/7I8r8bIcTVclYiAY0P1thD3kW/rua30GE+/02Y=; b=AZWoPvAdO0lBMGq4fPwBJXOvlCOdwC7ZvN1wg1JxRVw6g+Dbbao/IGLx ARA8vxlsI8hvu0j4FE23kZvtIEAp6pjefwSyg5sunFoD/wS7ZSUoOue/+ 8ASGdG3Nz+a++OszVOlvBUEWnEx+76hzLH6vwUUOWCiJ7gOG/BjKo4lRo uVsBeKE5cZwqz0Z3caDOJCu7i2R1Hch6nvFysbyv+hvcvKmbU3O9j2MlA Of4EY5LlzrIff/BKoWwfc93oP7++7sD/qA+UPRuCesWvC1LuDPgbYYvXx pRORYa6RikOtDINmCKkrniJKhvxrvAFrpPVDQiUsStQMFZghDWyWG9HjC w==; IronPort-SDR: v/DD+d0Grq+WKNTuyZJ84oEobeE86incUxDdycNXkMEac3CbgDSIaVK8EKeirB7ajeva1D7AqZ bzQrNhV3YAc/Hj3G/ER1/W5mqYQ9oD7VfwvVcbKOPE3KYEbgmw0pEemxA1ON6g3Q5M5JWPVelS g3OZ5uuTFdxOCXjXIOtvgNLS1oNHL0+Uh8IXxq8AbnvAu3ADNN7WEsWvgZ+y34Mg9sCdlr+pkM N2+iD2IZgqP2LB9dYAERCXJCCZy8J7P9YRUwDTj9XHZGRR5ORPVCL5+4rNC54hh194gFcvyH/I QQs= X-IronPort-AV: E=Sophos;i="5.72,324,1580770800"; d="scan'208";a="11606915" Received: from vtuxmail01.tq-net.de ([10.115.0.20]) by mx1.tq-group.com with ESMTP; 30 Mar 2020 15:54:28 +0200 Received: from schifferm-ubuntu4.tq-net.de (schifferm-ubuntu4.tq-net.de [10.117.49.26]) by vtuxmail01.tq-net.de (Postfix) with ESMTPA id C9D86280065; Mon, 30 Mar 2020 15:54:32 +0200 (CEST) From: Matthias Schiffer To: andrew@lunn.ch, vivien.didelot@gmail.com, f.fainelli@gmail.com, davem@davemloft.net, kuba@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Matthias Schiffer Subject: [PATCH net-next 1/4] net: dsa: allow switch drivers to override default slave PHY addresses Date: Mon, 30 Mar 2020 15:53:42 +0200 Message-Id: <20200330135345.4361-1-matthias.schiffer@ew.tq-group.com> X-Mailer: git-send-email 2.17.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Avoid having to define a PHY for every physical port when PHY addresses are fixed, but port index != PHY address. Signed-off-by: Matthias Schiffer --- include/net/dsa.h | 1 + net/dsa/slave.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/net/dsa.h b/include/net/dsa.h index aeb411e77b9a..8216f3687799 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -391,6 +391,7 @@ struct dsa_switch_ops { int (*setup)(struct dsa_switch *ds); void (*teardown)(struct dsa_switch *ds); + int (*get_phy_address)(struct dsa_switch *ds, int port); u32 (*get_phy_flags)(struct dsa_switch *ds, int port); /* diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 8ced165a7908..1c78f8cae9e9 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1546,7 +1546,7 @@ static int dsa_slave_phy_setup(struct net_device *slave_dev) struct dsa_switch *ds = dp->ds; phy_interface_t mode; u32 phy_flags = 0; - int ret; + int addr, ret; ret = of_get_phy_mode(port_dn, &mode); if (ret) @@ -1578,7 +1578,13 @@ static int dsa_slave_phy_setup(struct net_device *slave_dev) /* We could not connect to a designated PHY or SFP, so try to * use the switch internal MDIO bus instead */ - ret = dsa_slave_phy_connect(slave_dev, dp->index); + + if (ds->ops->get_phy_address) + addr = ds->ops->get_phy_address(ds, dp->index); + else + addr = dp->index; + + ret = dsa_slave_phy_connect(slave_dev, addr); if (ret) { netdev_err(slave_dev, "failed to connect to port %d: %d\n", From patchwork Mon Mar 30 13:53:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 221590 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6472C2D0EC for ; Mon, 30 Mar 2020 14:01:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 79C422073B for ; Mon, 30 Mar 2020 14:01:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=tq-group.com header.i=@tq-group.com header.b="G1UesuzY" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728606AbgC3OBl (ORCPT ); Mon, 30 Mar 2020 10:01:41 -0400 Received: from mx1.tq-group.com ([62.157.118.193]:24401 "EHLO mx1.tq-group.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726099AbgC3OBk (ORCPT ); Mon, 30 Mar 2020 10:01:40 -0400 X-Greylist: delayed 428 seconds by postgrey-1.27 at vger.kernel.org; Mon, 30 Mar 2020 10:01:37 EDT IronPort-SDR: Y5EghjizNobDW5xbSwhBzX+5CWOcME1/s2KpTsQsDoGFcPB5YT/0ZqnwZqQTErkCztD8JYB5xy fRizms3uxT+wsADNAj+g9iw0zL8+raRRrot6e7xq00M29VI39Vm4LV2BQNOeQCBLYwBqXf/Cth E74Au7rwLZx24CyT1Pr1CJGu+5DpDcOyLhhPe/OcHYCkksj3tZRo4QZ7sgdVTOPxEaXBJmG8aX 03+Ml90lX81k9kuGiKKxK67vWSEdolIVoG/p5j/ZVCV8OHt3QtdzxHzXl41lU1GpKRofb4QAI6 YCA= X-IronPort-AV: E=Sophos;i="5.72,324,1580770800"; d="scan'208";a="11606922" Received: from unknown (HELO tq-pgp-pr1.tq-net.de) ([192.168.6.15]) by mx1-pgp.tq-group.com with ESMTP; 30 Mar 2020 15:54:28 +0200 Received: from mx1.tq-group.com ([192.168.6.7]) by tq-pgp-pr1.tq-net.de (PGP Universal service); Mon, 30 Mar 2020 15:54:28 +0200 X-PGP-Universal: processed; by tq-pgp-pr1.tq-net.de on Mon, 30 Mar 2020 15:54:28 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1585576468; x=1617112468; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=90m37/5zJs3kt2iYIY/hmc7I7JDo4kDC1Cx3Gz+g2qY=; b=G1UesuzYvaukYDLSe5vcnWHkPKQtMgjzXjA4wcAki5bVWSdVInn8b4fV VTJp/0+l3483sekMQh8WaJZFCmFmFRs+jOBSNQ9sRy/CNUB+uCH+tSV2B OfJsy+jGBiL088u0UmREHEHvbrrId+xp5yd0ksqtv/r3gVCLYtJWz/UDp yG1KaG7n3XCgDx/vxqDouIUUMpU6Si+GmvG1Lmdcm4zeUdB14hhUrl/9T hZhZKs5w0letlh/czyM96I87tLub4wTcCRR8+BxzHiC+ucVui5uPNAEqI WrYjlgPsbmopzT+RmhSfD9QPk81ngtdO/xN6aknVzTh/sj/fYvoujIsnX A==; IronPort-SDR: jucPNaituKfnfV9Mm6EffvDpCbzsHg/c+1FXcvBGAbz9dcCWxKT9KJOs1k1H3FOaonrAQ6jB0P Rv0KbZw9B+NWsA1LxHrw9Tbse7ke9w3jINJ6p1ZXMhewChBEEFHGdLeA9embpCuq7VzZYBKKDn Jsut9Dcjmtk9kCbkO8xWgdLj3HlhJSHxoHaBLAptnW/GfBczm4Hs7jaeKBD31+8htRjU1pQNsB 2NiYx2rLSCqpgKx4AdI/2H5D/Au34F1M0nmjOsdj8DITPmM9HapnY0DZD93h+nRXUDq2WF0OK9 92I= X-IronPort-AV: E=Sophos;i="5.72,324,1580770800"; d="scan'208";a="11606921" Received: from vtuxmail01.tq-net.de ([10.115.0.20]) by mx1.tq-group.com with ESMTP; 30 Mar 2020 15:54:28 +0200 Received: from schifferm-ubuntu4.tq-net.de (schifferm-ubuntu4.tq-net.de [10.117.49.26]) by vtuxmail01.tq-net.de (Postfix) with ESMTPA id 44169280070; Mon, 30 Mar 2020 15:54:33 +0200 (CEST) From: Matthias Schiffer To: andrew@lunn.ch, vivien.didelot@gmail.com, f.fainelli@gmail.com, davem@davemloft.net, kuba@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Matthias Schiffer Subject: [PATCH net-next 4/4] net: dsa: mv88e6xxx: add support for MV88E6020 switch Date: Mon, 30 Mar 2020 15:53:45 +0200 Message-Id: <20200330135345.4361-4-matthias.schiffer@ew.tq-group.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200330135345.4361-1-matthias.schiffer@ew.tq-group.com> References: <20200330135345.4361-1-matthias.schiffer@ew.tq-group.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org A 6250 family switch with 5 internal PHYs and no PTP support. Signed-off-by: Matthias Schiffer --- drivers/net/dsa/mv88e6xxx/chip.c | 21 +++++++++++++++++++++ drivers/net/dsa/mv88e6xxx/chip.h | 1 + drivers/net/dsa/mv88e6xxx/port.h | 1 + 3 files changed, 23 insertions(+) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 228c1b085b66..a72b81c9d417 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -4647,6 +4647,27 @@ static const struct mv88e6xxx_ops mv88e6390x_ops = { }; static const struct mv88e6xxx_info mv88e6xxx_table[] = { + [MV88E6020] = { + .prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6020, + .family = MV88E6XXX_FAMILY_6250, + .name = "Marvell 88E6020", + .num_databases = 64, + .num_ports = 7, + .num_internal_phys = 5, + .max_vid = 4095, + .port_base_addr = 0x8, + .phy_base_addr = 0x0, + .global1_addr = 0xf, + .global2_addr = 0x7, + .age_time_coeff = 15000, + .g1_irqs = 9, + .g2_irqs = 5, + .atu_move_port_mask = 0xf, + .dual_chip = true, + .tag_protocol = DSA_TAG_PROTO_DSA, + .ops = &mv88e6250_ops, + }, + [MV88E6085] = { .prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6085, .family = MV88E6XXX_FAMILY_6097, diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h index 88c148a62366..f75d48427c26 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.h +++ b/drivers/net/dsa/mv88e6xxx/chip.h @@ -47,6 +47,7 @@ enum mv88e6xxx_frame_mode { /* List of supported models */ enum mv88e6xxx_model { + MV88E6020, MV88E6085, MV88E6095, MV88E6097, diff --git a/drivers/net/dsa/mv88e6xxx/port.h b/drivers/net/dsa/mv88e6xxx/port.h index 44d76ac973f6..190d7d5568e9 100644 --- a/drivers/net/dsa/mv88e6xxx/port.h +++ b/drivers/net/dsa/mv88e6xxx/port.h @@ -101,6 +101,7 @@ /* Offset 0x03: Switch Identifier Register */ #define MV88E6XXX_PORT_SWITCH_ID 0x03 #define MV88E6XXX_PORT_SWITCH_ID_PROD_MASK 0xfff0 +#define MV88E6XXX_PORT_SWITCH_ID_PROD_6020 0x0200 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6085 0x04a0 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6095 0x0950 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6097 0x0990