From patchwork Wed Mar 29 15:57:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Golle X-Patchwork-Id: 7414 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp519545vqo; Wed, 29 Mar 2023 09:03:06 -0700 (PDT) X-Google-Smtp-Source: AKy350Y4fYVN9Sf1z5FUwipdqBBAMQAczSdyYGzhRFiVCIGcc27/XM0cuaznlzk7ioKWZHpwdCVA X-Received: by 2002:aa7:d594:0:b0:500:2e94:26aa with SMTP id r20-20020aa7d594000000b005002e9426aamr17905515edq.20.1680105785848; Wed, 29 Mar 2023 09:03:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680105785; cv=none; d=google.com; s=arc-20160816; b=TJv+kq3tNkryaoOjVnf3D+mpWsXYxdMQmsv0X9CdmGZZcwUiLmVCuZDlGOrHwY733J YZ9oZuQ9tdpZJCPA9Ujbp19mFisVIQAA/NfoG39/HlEMXr9HNjbVRvKURx+Z9i4l0392 1NVbFP3J7dUviz0KYhYhHiynyNBnAeRlsoQKbPHnTO1hrb5Du+rdqbjTajlzdpxqvrkN JeH2dtgUyPDnydzadb2O2dDrdF/i8lrlI8+fRcy6tp/I/Em6ZWDspGw2aS+7R1Qjj5Be cS8/MUxaKHYMc+MceYsxxi0I+xSE1A5xaaaycs37mzNmtW5UNyNp5YuRUpDnUSTdxIGt t1Tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date; bh=FF4fLbskvvxrngKMlYefGzTEqPfnLtcZPTH9/ay67ek=; b=mgE3nohDuOCRysgXys0Xw/00CBRV5RssyhoaR5+16aBw77//z9XHgakQb7ktabMbum zTfin0EcdfwZIcx5sww6qFwVKcAVeYZV/KxL2U/bJm/9qMqZSdoLvi5lPXzaMfs4G6ye v45YucaKXqyW4GrE085PbnDPFm7CJMeUs+TKlBHOBi0AkgpdbtLlUZ1q1GscKLovoDtw MxcgKH73BydbmulzfZAjcfMLkpYvR3HW/cdBhvPCHEdY+zuoPSTn0lm+3K8Eah0CFWlE bgTtPnX5NlEpaYsx0KqJ2QAiXBrfB2P1Hq/Onr21uyyYx2bln2TnYxztThlZtNTDtSNJ TX3Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b1-20020aa7c6c1000000b005024c85f879si5559491eds.481.2023.03.29.09.02.14; Wed, 29 Mar 2023 09:03:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231171AbjC2P6y (ORCPT + 99 others); Wed, 29 Mar 2023 11:58:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230034AbjC2P6g (ORCPT ); Wed, 29 Mar 2023 11:58:36 -0400 Received: from fudo.makrotopia.org (fudo.makrotopia.org [IPv6:2a07:2ec0:3002::71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E06CF5FDC; Wed, 29 Mar 2023 08:58:03 -0700 (PDT) Received: from local by fudo.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.96) (envelope-from ) id 1phYAh-0003Jq-1t; Wed, 29 Mar 2023 17:57:12 +0200 Date: Wed, 29 Mar 2023 16:57:04 +0100 From: Daniel Golle To: netdev@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , Sean Wang , Landen Chao , DENG Qingfang , Philipp Zabel Cc: Sam Shih , Lorenzo Bianconi , John Crispin , Felix Fietkau Subject: [RFC PATCH net-next v3 00/15] net: dsa: add support for MT7988 Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1761718604111384770?= X-GMAIL-MSGID: =?utf-8?q?1761718604111384770?= The MediaTek MT7988 SoC comes with a built-in switch very similar to previous MT7530 and MT7531. However, the switch address space is mapped into the SoCs memory space rather than being connected via MDIO. Using MMIO simplifies register access and also removes the need for a bus lock, and for that reason also makes interrupt handling more light-weight. Note that this is different from previous SoCs like MT7621 and MT7623N which also came with an integrated MT7530-like switch which yet had to be accessed via MDIO. Split-off the part of the driver registering an MDIO driver, then add another module acting as MMIO/platform driver. Changes since v2: * split into many small commits to ease review * introduce helper functions to reduce code duplication * use helpers for locking to make lock-skipping easier and less ugly to implement. * add dt-bindings for mediatek,mt7988-switch Changes since initial RFC: * use regmap for register access and move register access to bus- specific driver * move initialization of MT7531 SGMII PCS to MDIO driver Daniel Golle (15): net: dsa: mt7530: refactor SGMII PCS creation net: dsa: mt7530: use unlocked regmap accessors net: dsa: mt7530: use regmap to access switch register space net: dsa: mt7530: move SGMII PCS creation to mt7530_probe function net: dsa: mt7530: introduce mutex helpers net: dsa: mt7530: move p5_intf_modes() function to mt7530.c net: dsa: mt7530: introduce mt7530_probe_common helper function net: dsa: mt7530: introduce mt7530_remove_common helper function net: dsa: mt7530: split-off common parts from mt7531_setup net: dsa: mt7530: introduce separate MDIO driver net: dsa: mt7530: skip locking if MDIO bus isn't present net: dsa: mt7530: add support for single-chip reset line net: dsa: mt7530: add support for 10G link modes for CPU port net: dsa: mt7530: introduce driver for MT7988 built-in switch dt-bindings: net: dsa: mediatek,mt7530: add mediatek,mt7988-switch .../bindings/net/dsa/mediatek,mt7530.yaml | 26 +- MAINTAINERS | 3 + drivers/net/dsa/Kconfig | 28 +- drivers/net/dsa/Makefile | 4 +- drivers/net/dsa/mt7530-mdio.c | 242 ++++++++ drivers/net/dsa/mt7530-mmio.c | 96 ++++ drivers/net/dsa/mt7530.c | 519 +++++++++--------- drivers/net/dsa/mt7530.h | 38 +- 8 files changed, 653 insertions(+), 303 deletions(-) create mode 100644 drivers/net/dsa/mt7530-mdio.c create mode 100644 drivers/net/dsa/mt7530-mmio.c base-commit: 86e2eca4ddedc07d639c44c990e1c220cac3741e