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: 1263958 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=AZWoPvAd; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48rYzS28W4z9sPk for ; Tue, 31 Mar 2020 01:01:40 +1100 (AEDT) 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:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 1263959 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=Dcko6Av7; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48rYzT2CHzz9sRN for ; Tue, 31 Mar 2020 01:01:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728496AbgC3OBk (ORCPT ); Mon, 30 Mar 2020 10:01:40 -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 S1727390AbgC3OBj (ORCPT ); Mon, 30 Mar 2020 10:01:39 -0400 X-Greylist: delayed 428 seconds by postgrey-1.27 at vger.kernel.org; Mon, 30 Mar 2020 10:01:37 EDT IronPort-SDR: l6c8d4ufmHTFlol9w4egC0tFWAAggT8Ue4+UFH01FKJta4iAKUZm6LIeBJnE01aierZW+Fuia1 HBktNyVeNULwudAqq9EktOfEiEeR9Ib8BwsUzvrLdERymVtAw/adzZZILiR9r5TIrf6/s3x0yh rGRxc6cp2Da0XMdOFP1kQigOH2NLCEv2sgYpoR2XKN4CmZLwDgPPayQSOyHY1Xu0nDU/KINIlo NwnJ0GBEnJTSIlIRYybDMKdK2YZqOEbO2XzCU9wORWE8lXOB5gBs8k+0n8ymwy1i04+Z5vbDti A6Q= X-IronPort-AV: E=Sophos;i="5.72,324,1580770800"; d="scan'208";a="11606918" 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=po89PzaA6MKZBpJ/RTQTIsqag9iwZ1Wmc6kMxkfYtkk=; b=Dcko6Av78DGjCMu57BZG+4QC2ukRKqTff/Vn/tp0KtBTDPBIhG+8GDNE 0SWFqRg0RMhKf1Z6EIw/z/pzZBR8HfpdxxoFc8dTnLYFo/q0/LHc+TjJq kM+NCMYxTMOQE5cdfjRiz2v9VzjgyzRIhyyfzuoQ48OlWcYBtE6vs3gIg a+nxgAl+E/Ecz6/C/hOV3oCBWC3/lh/ZtmJDx7Sp/03Yd38pr+l/+cmF8 +H6abv1YF76yKXtD3SjV6moeUCY0JFw+xJTgvFZOYRJB/zkmTlsaFPMRB Ryl7en6XiDa+8HW7uYd1W5bCyh+J/GziV78Ol3wOZsIb9xJL0awrKGsn8 Q==; IronPort-SDR: EeKZZ6vDx2l67ZyrQH8h+LQ2Q63oXjRZ56gxaDTE5ijPrUOkTM7NMFRToneC/heXFFK/zggDOG Iw8eH890PZ2sOSTdZ5nfHlG0G8gEklp+zXgnFFfuS6FOEul7zsebucN/N2Z6zfs1qTFRL3jlpB kCjwo4cgakkQ5XcrzhoLLSAiSWD7cRywGTC3uX87/VVAu9R1p51F2DP4ltsUAox+TN+O7MjdaA BXNjhbDZeGrcBl1AX2b760M6DTZQvPBkdKL8ss4SsQLrayWtKOWvxa+na8+qVL23PU34boG4xD Wa4= X-IronPort-AV: E=Sophos;i="5.72,324,1580770800"; d="scan'208";a="11606917" 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 EF068280070; 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 2/4] net: dsa: mv88e6xxx: account for PHY base address offset in dual chip mode Date: Mon, 30 Mar 2020 15:53:43 +0200 Message-Id: <20200330135345.4361-2-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 In dual chip mode (6250 family), not only global and port registers are shifted by sw_addr, but also the PHY addresses. Account for this in the IRQ mapping. Signed-off-by: Matthias Schiffer --- drivers/net/dsa/mv88e6xxx/chip.h | 1 + drivers/net/dsa/mv88e6xxx/global2.c | 2 +- drivers/net/dsa/mv88e6xxx/smi.c | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h index e5430cf2ad71..88c148a62366 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.h +++ b/drivers/net/dsa/mv88e6xxx/chip.h @@ -257,6 +257,7 @@ struct mv88e6xxx_chip { const struct mv88e6xxx_bus_ops *smi_ops; struct mii_bus *bus; int sw_addr; + unsigned int phy_base_addr; /* Handles automatic disabling and re-enabling of the PHY * polling unit. diff --git a/drivers/net/dsa/mv88e6xxx/global2.c b/drivers/net/dsa/mv88e6xxx/global2.c index 8fd483020c5b..3c3dfaf16882 100644 --- a/drivers/net/dsa/mv88e6xxx/global2.c +++ b/drivers/net/dsa/mv88e6xxx/global2.c @@ -1156,7 +1156,7 @@ int mv88e6xxx_g2_irq_mdio_setup(struct mv88e6xxx_chip *chip, err = irq; goto out; } - bus->irq[chip->info->phy_base_addr + phy] = irq; + bus->irq[chip->phy_base_addr + phy] = irq; } return 0; out: diff --git a/drivers/net/dsa/mv88e6xxx/smi.c b/drivers/net/dsa/mv88e6xxx/smi.c index 282fe08db050..a62d7b8702d5 100644 --- a/drivers/net/dsa/mv88e6xxx/smi.c +++ b/drivers/net/dsa/mv88e6xxx/smi.c @@ -175,5 +175,9 @@ int mv88e6xxx_smi_init(struct mv88e6xxx_chip *chip, chip->bus = bus; chip->sw_addr = sw_addr; + chip->phy_base_addr = chip->info->phy_base_addr; + if (chip->info->dual_chip) + chip->phy_base_addr += sw_addr; + return 0; } From patchwork Mon Mar 30 13:53:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 1263961 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=ddbV1GfR; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48rYzW2QLbz9sPR for ; Tue, 31 Mar 2020 01:01:43 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728696AbgC3OBm (ORCPT ); Mon, 30 Mar 2020 10:01:42 -0400 Received: from mx1.tq-group.com ([62.157.118.193]:56723 "EHLO mx1.tq-group.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727749AbgC3OBk (ORCPT ); Mon, 30 Mar 2020 10:01:40 -0400 IronPort-SDR: oGXIKI9EGh+fVJpyD9YJqx6xqBN/HkJd+f7H8MGqr/yMg66J4RJlUaWzREy5ukW2jHssjHSOH5 KN/87vYXunlmHP9YSKOc+LafTYwLheRfAF+VfXx+gkRO975yZ9MO4sEhQ8llW5K3bB4R2am7TM pQp1spHPlzl985T9kSsCQnvLpV1+A8y1oUFA1gi4+9txd/dIQ9KJlezlUVSah0xbiVb6Q3Umkb dgTQQnq5hinHLJwucWR7NB9SoI4zGSt46vDr+mwYyE+ErqJaLDG0W4DqWNHzHHIpl6e2VU205I 4kg= X-IronPort-AV: E=Sophos;i="5.72,324,1580770800"; d="scan'208";a="11606920" 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=RTtPPxYYq8t3b00GlV/IZO1O9+uF2d8Ca1m7XVY2DW8=; b=ddbV1GfRNFhkyoePnNIkP+HO9J9SPiPr7qDzp0GIL7e1I/VvDKRS0krh ExHbo3c7+lDhmrA5lyreeo4ZgBSRKFB7zPEcYBy+WqKdNc5o2qMfwMgXW ZpdfXTUxVjlxGvbrc18NQUU41TWqFVJ5Bn0Wbd4cfQIGyRh90eR6c30UQ +uC8gZ74kELRI43lxyGJJnex84fv2Pc99sa6LHUz6IMt1xHQej+f2r2PG YrUAgkApjVn3JTIMfGDTgWE56tX/v7RljAqDhG0IlZkczLN5xI0nrYmOW y0tkR35dN4YQH8PUk0GwlluAG3InlD4+9Q/S7gljawvNOqCjwdOW6Fapw Q==; IronPort-SDR: flzfqq2x4NGX/BErTh3OgyX0pn0uX7s4Q9Hda0z7nZUTPqUV5qa7agyhmFK4aRPEIsMxM5J+tM QqEuetvKOjw8NG2Y1VDDxwQWMu/FRfM7xHRGpqFq1xM4d3YiiWH88VVUAAL/9dUmzBe42XiGDf b0ZTFwW0V/I6eVwFgd4vbgLoPjhY/4111MVRa77oBV/FYO94fy330moDmmzcsyGHjkcmaquCjx 5PmPyR+nm/GTy8yRiEZcpebnR7mQisrhvw6k+a+Svo8qvbWzDPQje4Y714l8lWBXkNmGxmzrkY TwA= X-IronPort-AV: E=Sophos;i="5.72,324,1580770800"; d="scan'208";a="11606919" 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 1FCFE280065; 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 3/4] net: dsa: mv88e6xxx: implement get_phy_address Date: Mon, 30 Mar 2020 15:53:44 +0200 Message-Id: <20200330135345.4361-3-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 Avoid the need to specify a PHY for each physical port in the device tree when phy_base_addr is not 0 (6250 and 6341 families). This change should be backwards-compatible with existing device trees, as it only adds sensible defaults where explicit definitions were required before. Signed-off-by: Matthias Schiffer --- drivers/net/dsa/mv88e6xxx/chip.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 221593261e8f..228c1b085b66 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -5379,6 +5379,13 @@ static enum dsa_tag_protocol mv88e6xxx_get_tag_protocol(struct dsa_switch *ds, return chip->info->tag_protocol; } +static int mv88e6xxx_get_phy_address(struct dsa_switch *ds, int port) +{ + struct mv88e6xxx_chip *chip = ds->priv; + + return chip->phy_base_addr + port; +} + static int mv88e6xxx_port_mdb_prepare(struct dsa_switch *ds, int port, const struct switchdev_obj_port_mdb *mdb) { @@ -5509,6 +5516,7 @@ static const struct dsa_switch_ops mv88e6xxx_switch_ops = { .get_tag_protocol = mv88e6xxx_get_tag_protocol, .setup = mv88e6xxx_setup, .teardown = mv88e6xxx_teardown, + .get_phy_address = mv88e6xxx_get_phy_address, .phylink_validate = mv88e6xxx_validate, .phylink_mac_link_state = mv88e6xxx_serdes_pcs_get_state, .phylink_mac_config = mv88e6xxx_mac_config, 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: 1263960 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=G1UesuzY; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48rYzV674Xz9sP7 for ; Tue, 31 Mar 2020 01:01:42 +1100 (AEDT) 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