From patchwork Mon Apr 3 01:16:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Golle X-Patchwork-Id: 7609 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2000945vqo; Sun, 2 Apr 2023 18:24:41 -0700 (PDT) X-Google-Smtp-Source: AKy350aa3gF2ko2tJq0Fed+Rig620aHdhu0zKu/8e+WTB/lKL+LDnQL6fxzGa3n1EpioqWIYK5d1 X-Received: by 2002:aa7:9696:0:b0:627:fae5:b3d0 with SMTP id f22-20020aa79696000000b00627fae5b3d0mr33075121pfk.24.1680485081319; Sun, 02 Apr 2023 18:24:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680485081; cv=none; d=google.com; s=arc-20160816; b=q9HNpCSKVlXv6NGsAxiVYECD6luQ/nTreiUg3HOeDrYAykls1hFFRVUsFWH4XfZoRi Sz+e8z8hAxOOkyLLSwnQ8DO7w1PkP3ofdB5Su1NL0ExsLloxQRXgk3BvsdEIIWgLeXdG AfXiqBd30y0Vd3NjE5IOsG28OZACEqxa4b4exb/SMGw3SJzKxt5xUfRLq5B6iERNMNc+ at2TldbBBwsunGMtDedexMG/ZifAt0mIh3Opf+tm/QJAoAlyzrTFE2+3RU11SPg2YvTX o9g/g/2up8HBSwCAnpAeqaISab4puW5QnipfA1niaUNJk3Dkl0g12YN0kumgN/cj9P5Z HDqg== 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=OZttSZuDyAg0bopR9zW8YQC6yIiuzPfjCJliBxk15Qw=; b=cpyXQDHSU6gFQyzVqMyG7lMzwENlsciN3bqskQ/8f4FLfDOcG3PaxV4yGNe70Il453 kuK+ritzHeo9lJ3OJbknhlaWXP0IZxysLyy7aUSewK2UzhME832zQI8k4miOoVxan5yQ qd4Avu0Dgi881lFlXjwQO5H5hW7RAbWq1bJ5/Rvp61Nq5cJHYFCN7jdHtiUF5AtaWIoD PVSYAQ6o2LonQCgIZ0yfh0p5bI6aeBKRNEyKfQzh097HBswImC2SldeQhIisI2iPol84 6g4P5USgK/RpTWTk6mBvcH34tGa6eMpZLbkfr0EJ+oSHz9eMuSw0bpPzjXII6QxaFShr PfEw== 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 81-20020a630054000000b0050b1a4d8625si7473681pga.723.2023.04.02.18.24.29; Sun, 02 Apr 2023 18:24:41 -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 S230430AbjDCBQ6 (ORCPT + 99 others); Sun, 2 Apr 2023 21:16:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229492AbjDCBQ5 (ORCPT ); Sun, 2 Apr 2023 21:16:57 -0400 Received: from fudo.makrotopia.org (fudo.makrotopia.org [IPv6:2a07:2ec0:3002::71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AE1C5BB2; Sun, 2 Apr 2023 18:16:56 -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 1pj8oQ-0004f3-1u; Mon, 03 Apr 2023 03:16:46 +0200 Date: Mon, 3 Apr 2023 02:16:40 +0100 From: Daniel Golle To: devicetree@vger.kernel.org, netdev@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Rob Herring , Krzysztof Kozlowski , 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 , Russell King , =?utf-8?b?QXLEsW7DpyDDnG5hbA==?= Cc: Sam Shih , Lorenzo Bianconi , John Crispin , Felix Fietkau Subject: [PATCH net-next v2 00/14] 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?1762116324530057479?= X-GMAIL-MSGID: =?utf-8?q?1762116324530057479?= 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. The whole series has been tested on various MediaTek boards: * MT7623A + MT7530 (BPi-R2) * MT7986A + MT7531 (BPi-R3) * MT7988A reference board Changes since v1: * use 'internal' PHY mode where appropriate * use regmap_update_bits in mt7530_rmw * improve dt-bindings Changes since RFC v3: * WARN_ON_ONCE if register read fails * move probing of the reset GPIO and reset controller link out of common probe function, as they are not actually common Changes since RFC 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 (14): net: dsa: mt7530: make some noise if register read fails 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: 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 | 27 +- drivers/net/dsa/Makefile | 2 + drivers/net/dsa/mt7530-mdio.c | 271 +++++++++ drivers/net/dsa/mt7530-mmio.c | 101 ++++ drivers/net/dsa/mt7530.c | 565 +++++++++--------- drivers/net/dsa/mt7530.h | 38 +- 8 files changed, 713 insertions(+), 320 deletions(-) create mode 100644 drivers/net/dsa/mt7530-mdio.c create mode 100644 drivers/net/dsa/mt7530-mmio.c base-commit: 51aaa68222d6c34f0373cf95223ce2f230329e8f