* [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements
@ 2023-03-19 12:56 Daniel Golle
2023-03-19 12:56 ` [PATCH net-next v14 2/9] dt-bindings: net: mediatek,net: add mt7981-eth binding Daniel Golle
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Daniel Golle @ 2023-03-19 12:56 UTC (permalink / raw)
To: devicetree, Rob Herring, Krzysztof Kozlowski, netdev,
linux-mediatek, linux-arm-kernel, linux-kernel, Russell King,
Heiner Kallweit, Lorenzo Bianconi, Mark Lee, John Crispin,
Felix Fietkau, AngeloGioacchino Del Regno, Matthias Brugger,
DENG Qingfang, Landen Chao, Sean Wang, Paolo Abeni,
Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
Florian Fainelli, Andrew Lunn, Vladimir Oltean
Cc: Bjørn Mork, Frank Wunderlich, Alexander Couzens
This series brings a variety of fixes and enhancements for mtk_eth_soc,
adds support for the MT7981 SoC and facilitates sharing the SGMII PCS
code between mtk_eth_soc and mt7530.
The whole series has been tested on MT7622+MT7531 (BPi-R64),
MT7623+MT7530 (BPi-R2), MT7981+GPY211 (GL.iNet GL-MT3000) and
MT7986+MT7531 (BPi-R3). On the BananaPi R3 a variete of SFP modules
have been tested, all of them (some SGMII with PHY, others 2500Base-X
or 1000Base-X without PHY) are working well now, however, some of them
need manually disabling of autonegotiation for the link to come up.
Changes since v13:
* no longer pile Lorenzo's patches on top, they will be submitted
separately
* patches fixing existing code have been submitted already via 'net'
tree, so they are no longer included in this series.
Changes since v12:
* remove patches "fixing" ????Base-X modes. Turns out the cause are
buggy SFP modules for which we will need to introduce quirks rather
than trying to address this in the Ethernet driver.
Changes since v11:
* remove patch "net: ethernet: mtk_eth_soc: fix RX data corruption issue"
as it has already been merged via net tree
* add commits fixing 1000Base-X and 2500Base-X modes after phylink_pcs
conversion
* completely remove mtk_sgmii.c as only about 20 lines were left in that
file
* Add commits from Lorenzo for MT7988 as requested by him
Changes since v10:
* improve mediatek,mt7981-eth dt-bindings
* use regmap_set_bits instead of regmap_update_bits where possible
* completely remove mtk_sgmii.c
* no need to keep struct mtk_sgmii either as it had only a single
element
Changes since v9:
* fix path in mediatek,sgmiisys dt-binding
Changes since v8:
* move mediatek,sgmiisys dt-bindings to correct net/pcs folder
* rebase on top of net-next/main so series applies cleanly again
Changes since v7:
* move mediatek,sgmiisys.yaml to more appropriate folder
* don't include <linux/phylink.h> twice in PCS driver, sort includes
Changes since v6:
* label MAC MCR bit 12 in 08/12, MediaTek replied explaining its function
Changes since v5:
* drop dev pointer also from struct mtk_sgmii, pass it as function
parameter instead
* address comments left for dt-bindings
* minor improvements to commit messages
Changes since v4:
* remove unused dev pointer in struct pcs_mtk_lynxi
* squash link timer check into correct follow-up patch
Changes since v3:
* remove unused #define's
* use BMCR_* instead of #define'ing our own constants
* return before changing registers in case of invalid link timer
Changes since v2:
* improve dt-bindings, convert sgmisys bindings to dt-schema yaml
* fix typo
Changes since v1:
* apply reverse xmas tree everywhere
* improve commit descriptions
* add dt binding documentation
* various small changes addressing all comments received for v1
Daniel Golle (9):
net: ethernet: mtk_eth_soc: add support for MT7981 SoC
dt-bindings: net: mediatek,net: add mt7981-eth binding
dt-bindings: arm: mediatek: sgmiisys: Convert to DT schema
dt-bindings: net: pcs: mediatek,sgmiisys: add MT7981 SoC
net: ethernet: mtk_eth_soc: set MDIO bus clock frequency
net: ethernet: mtk_eth_soc: ppe: add support for flow accounting
net: pcs: add driver for MediaTek SGMII PCS
net: ethernet: mtk_eth_soc: switch to external PCS driver
net: dsa: mt7530: use external PCS driver
.../arm/mediatek/mediatek,sgmiisys.txt | 27 --
.../devicetree/bindings/net/mediatek,net.yaml | 53 ++-
.../bindings/net/pcs/mediatek,sgmiisys.yaml | 55 ++++
MAINTAINERS | 8 +
drivers/net/dsa/Kconfig | 1 +
drivers/net/dsa/mt7530.c | 277 ++++------------
drivers/net/dsa/mt7530.h | 47 +--
drivers/net/ethernet/mediatek/Kconfig | 2 +
drivers/net/ethernet/mediatek/Makefile | 2 +-
drivers/net/ethernet/mediatek/mtk_eth_path.c | 14 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 111 ++++++-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 118 +++----
drivers/net/ethernet/mediatek/mtk_ppe.c | 114 ++++++-
drivers/net/ethernet/mediatek/mtk_ppe.h | 25 +-
.../net/ethernet/mediatek/mtk_ppe_debugfs.c | 9 +-
.../net/ethernet/mediatek/mtk_ppe_offload.c | 8 +
drivers/net/ethernet/mediatek/mtk_ppe_regs.h | 14 +
drivers/net/ethernet/mediatek/mtk_sgmii.c | 207 ------------
drivers/net/pcs/Kconfig | 7 +
drivers/net/pcs/Makefile | 1 +
drivers/net/pcs/pcs-mtk-lynxi.c | 305 ++++++++++++++++++
include/linux/pcs/pcs-mtk-lynxi.h | 13 +
22 files changed, 819 insertions(+), 599 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
create mode 100644 Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
delete mode 100644 drivers/net/ethernet/mediatek/mtk_sgmii.c
create mode 100644 drivers/net/pcs/pcs-mtk-lynxi.c
create mode 100644 include/linux/pcs/pcs-mtk-lynxi.h
base-commit: 105a201ebf3312990b96c4fbaade22e31402f8cc
--
2.39.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH net-next v14 2/9] dt-bindings: net: mediatek,net: add mt7981-eth binding
2023-03-19 12:56 [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements Daniel Golle
@ 2023-03-19 12:56 ` Daniel Golle
2023-03-19 12:56 ` [PATCH net-next v14 3/9] dt-bindings: arm: mediatek: sgmiisys: Convert to DT schema Daniel Golle
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Daniel Golle @ 2023-03-19 12:56 UTC (permalink / raw)
To: devicetree, Rob Herring, Krzysztof Kozlowski, netdev,
linux-mediatek, linux-arm-kernel, linux-kernel, Russell King,
Heiner Kallweit, Lorenzo Bianconi, Mark Lee, John Crispin,
Felix Fietkau, AngeloGioacchino Del Regno, Matthias Brugger,
DENG Qingfang, Landen Chao, Sean Wang, Paolo Abeni,
Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
Florian Fainelli, Andrew Lunn, Vladimir Oltean
Cc: Bjørn Mork, Frank Wunderlich, Alexander Couzens
Introduce DT bindings for the MT7981 SoC to mediatek,net.yaml.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
.../devicetree/bindings/net/mediatek,net.yaml | 53 +++++++++++++++++--
1 file changed, 48 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml
index 7ef696204c5a..b7f6474dc5ab 100644
--- a/Documentation/devicetree/bindings/net/mediatek,net.yaml
+++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml
@@ -21,6 +21,7 @@ properties:
- mediatek,mt7623-eth
- mediatek,mt7622-eth
- mediatek,mt7629-eth
+ - mediatek,mt7981-eth
- mediatek,mt7986-eth
- ralink,rt5350-eth
@@ -78,6 +79,11 @@ properties:
description:
List of phandles to wireless ethernet dispatch nodes.
+ mediatek,wed-pcie:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ Phandle to the mediatek wed-pcie controller.
+
dma-coherent: true
mdio-bus:
@@ -123,6 +129,8 @@ allOf:
mediatek,wed: false
+ mediatek,wed-pcie: false
+
- if:
properties:
compatible:
@@ -160,6 +168,8 @@ allOf:
description:
Phandle to the mediatek pcie-mirror controller.
+ mediatek,wed-pcie: false
+
- if:
properties:
compatible:
@@ -206,6 +216,44 @@ allOf:
mediatek,wed: false
+ mediatek,wed-pcie: false
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt7981-eth
+ then:
+ properties:
+ interrupts:
+ minItems: 4
+
+ clocks:
+ minItems: 15
+ maxItems: 15
+
+ clock-names:
+ items:
+ - const: fe
+ - const: gp2
+ - const: gp1
+ - const: wocpu0
+ - const: sgmii_ck
+ - const: sgmii_tx250m
+ - const: sgmii_rx250m
+ - const: sgmii_cdr_ref
+ - const: sgmii_cdr_fb
+ - const: sgmii2_tx250m
+ - const: sgmii2_rx250m
+ - const: sgmii2_cdr_ref
+ - const: sgmii2_cdr_fb
+ - const: netsys0
+ - const: netsys1
+
+ mediatek,sgmiisys:
+ minItems: 2
+ maxItems: 2
+
- if:
properties:
compatible:
@@ -242,11 +290,6 @@ allOf:
minItems: 2
maxItems: 2
- mediatek,wed-pcie:
- $ref: /schemas/types.yaml#/definitions/phandle
- description:
- Phandle to the mediatek wed-pcie controller.
-
patternProperties:
"^mac@[0-1]$":
type: object
--
2.39.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH net-next v14 3/9] dt-bindings: arm: mediatek: sgmiisys: Convert to DT schema
2023-03-19 12:56 [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements Daniel Golle
2023-03-19 12:56 ` [PATCH net-next v14 2/9] dt-bindings: net: mediatek,net: add mt7981-eth binding Daniel Golle
@ 2023-03-19 12:56 ` Daniel Golle
2023-03-19 12:57 ` [PATCH net-next v14 4/9] dt-bindings: net: pcs: mediatek,sgmiisys: add MT7981 SoC Daniel Golle
2023-03-21 3:00 ` [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: Daniel Golle @ 2023-03-19 12:56 UTC (permalink / raw)
To: devicetree, Rob Herring, Krzysztof Kozlowski, netdev,
linux-mediatek, linux-arm-kernel, linux-kernel, Russell King,
Heiner Kallweit, Lorenzo Bianconi, Mark Lee, John Crispin,
Felix Fietkau, AngeloGioacchino Del Regno, Matthias Brugger,
DENG Qingfang, Landen Chao, Sean Wang, Paolo Abeni,
Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
Florian Fainelli, Andrew Lunn, Vladimir Oltean
Cc: Bjørn Mork, Frank Wunderlich, Alexander Couzens
Convert mediatek,sgmiiisys bindings to DT schema format.
Add maintainer Matthias Brugger, no maintainers were listed in the
original documentation.
As this node is also referenced by the Ethernet controller and used
as SGMII PCS add this fact to the description.
Move the file to Documentation/devicetree/bindings/net/pcs/ which seems
more appropriate given that the great majority of registers are related
to SGMII PCS functionality and only one register represents clock bits.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
.../arm/mediatek/mediatek,sgmiisys.txt | 27 ----------
.../bindings/net/pcs/mediatek,sgmiisys.yaml | 49 +++++++++++++++++++
2 files changed, 49 insertions(+), 27 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
create mode 100644 Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
deleted file mode 100644
index d2c24c277514..000000000000
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-MediaTek SGMIISYS controller
-============================
-
-The MediaTek SGMIISYS controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be:
- - "mediatek,mt7622-sgmiisys", "syscon"
- - "mediatek,mt7629-sgmiisys", "syscon"
- - "mediatek,mt7981-sgmiisys_0", "syscon"
- - "mediatek,mt7981-sgmiisys_1", "syscon"
- - "mediatek,mt7986-sgmiisys_0", "syscon"
- - "mediatek,mt7986-sgmiisys_1", "syscon"
-- #clock-cells: Must be 1
-
-The SGMIISYS controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-sgmiisys: sgmiisys@1b128000 {
- compatible = "mediatek,mt7622-sgmiisys", "syscon";
- reg = <0 0x1b128000 0 0x1000>;
- #clock-cells = <1>;
-};
diff --git a/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml b/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
new file mode 100644
index 000000000000..7ce597011a32
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/pcs/mediatek,sgmiisys.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek SGMIISYS Controller
+
+maintainers:
+ - Matthias Brugger <matthias.bgg@gmail.com>
+
+description:
+ The MediaTek SGMIISYS controller provides a SGMII PCS and some clocks
+ to the ethernet subsystem to which it is attached.
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - mediatek,mt7622-sgmiisys
+ - mediatek,mt7629-sgmiisys
+ - mediatek,mt7986-sgmiisys_0
+ - mediatek,mt7986-sgmiisys_1
+ - const: syscon
+
+ reg:
+ maxItems: 1
+
+ '#clock-cells':
+ const: 1
+
+required:
+ - compatible
+ - reg
+ - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ sgmiisys: syscon@1b128000 {
+ compatible = "mediatek,mt7622-sgmiisys", "syscon";
+ reg = <0 0x1b128000 0 0x1000>;
+ #clock-cells = <1>;
+ };
+ };
--
2.39.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH net-next v14 4/9] dt-bindings: net: pcs: mediatek,sgmiisys: add MT7981 SoC
2023-03-19 12:56 [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements Daniel Golle
2023-03-19 12:56 ` [PATCH net-next v14 2/9] dt-bindings: net: mediatek,net: add mt7981-eth binding Daniel Golle
2023-03-19 12:56 ` [PATCH net-next v14 3/9] dt-bindings: arm: mediatek: sgmiisys: Convert to DT schema Daniel Golle
@ 2023-03-19 12:57 ` Daniel Golle
2023-03-21 3:00 ` [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: Daniel Golle @ 2023-03-19 12:57 UTC (permalink / raw)
To: devicetree, Rob Herring, Krzysztof Kozlowski, netdev,
linux-mediatek, linux-arm-kernel, linux-kernel, Russell King,
Heiner Kallweit, Lorenzo Bianconi, Mark Lee, John Crispin,
Felix Fietkau, AngeloGioacchino Del Regno, Matthias Brugger,
DENG Qingfang, Landen Chao, Sean Wang, Paolo Abeni,
Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
Florian Fainelli, Andrew Lunn, Vladimir Oltean
Cc: Bjørn Mork, Frank Wunderlich, Alexander Couzens
Add mediatek,pnswap boolean property needed on many boards using the
MediaTek MT7981 SoC.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
.../devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml b/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
index 7ce597011a32..66a95191bd77 100644
--- a/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
+++ b/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
@@ -19,6 +19,8 @@ properties:
- enum:
- mediatek,mt7622-sgmiisys
- mediatek,mt7629-sgmiisys
+ - mediatek,mt7981-sgmiisys_0
+ - mediatek,mt7981-sgmiisys_1
- mediatek,mt7986-sgmiisys_0
- mediatek,mt7986-sgmiisys_1
- const: syscon
@@ -29,6 +31,10 @@ properties:
'#clock-cells':
const: 1
+ mediatek,pnswap:
+ description: Invert polarity of the SGMII data lanes
+ type: boolean
+
required:
- compatible
- reg
--
2.39.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements
2023-03-19 12:56 [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements Daniel Golle
` (2 preceding siblings ...)
2023-03-19 12:57 ` [PATCH net-next v14 4/9] dt-bindings: net: pcs: mediatek,sgmiisys: add MT7981 SoC Daniel Golle
@ 2023-03-21 3:00 ` patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-03-21 3:00 UTC (permalink / raw)
To: Daniel Golle
Cc: devicetree, robh+dt, krzysztof.kozlowski+dt, netdev,
linux-mediatek, linux-arm-kernel, linux-kernel, linux, hkallweit1,
lorenzo, Mark-MC.Lee, john, nbd, angelogioacchino.delregno,
matthias.bgg, dqfext, Landen.Chao, sean.wang, pabeni, kuba,
edumazet, davem, olteanv, f.fainelli, andrew, vladimir.oltean,
bjorn, frank-w, lynxis
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Sun, 19 Mar 2023 12:56:07 +0000 you wrote:
> This series brings a variety of fixes and enhancements for mtk_eth_soc,
> adds support for the MT7981 SoC and facilitates sharing the SGMII PCS
> code between mtk_eth_soc and mt7530.
>
> The whole series has been tested on MT7622+MT7531 (BPi-R64),
> MT7623+MT7530 (BPi-R2), MT7981+GPY211 (GL.iNet GL-MT3000) and
> MT7986+MT7531 (BPi-R3). On the BananaPi R3 a variete of SFP modules
> have been tested, all of them (some SGMII with PHY, others 2500Base-X
> or 1000Base-X without PHY) are working well now, however, some of them
> need manually disabling of autonegotiation for the link to come up.
>
> [...]
Here is the summary with links:
- [net-next,v14,1/9] net: ethernet: mtk_eth_soc: add support for MT7981 SoC
https://git.kernel.org/netdev/net-next/c/f5d43ddd334b
- [net-next,v14,2/9] dt-bindings: net: mediatek,net: add mt7981-eth binding
https://git.kernel.org/netdev/net-next/c/e3ac1c270466
- [net-next,v14,3/9] dt-bindings: arm: mediatek: sgmiisys: Convert to DT schema
https://git.kernel.org/netdev/net-next/c/d4f08a703565
- [net-next,v14,4/9] dt-bindings: net: pcs: mediatek,sgmiisys: add MT7981 SoC
https://git.kernel.org/netdev/net-next/c/4f7eb19c4f44
- [net-next,v14,5/9] net: ethernet: mtk_eth_soc: set MDIO bus clock frequency
https://git.kernel.org/netdev/net-next/c/c0a440031d43
- [net-next,v14,6/9] net: ethernet: mtk_eth_soc: ppe: add support for flow accounting
https://git.kernel.org/netdev/net-next/c/3fbe4d8c0e53
- [net-next,v14,7/9] net: pcs: add driver for MediaTek SGMII PCS
https://git.kernel.org/netdev/net-next/c/4765a9722e09
- [net-next,v14,8/9] net: ethernet: mtk_eth_soc: switch to external PCS driver
https://git.kernel.org/netdev/net-next/c/2a3ec7ae3133
- [net-next,v14,9/9] net: dsa: mt7530: use external PCS driver
https://git.kernel.org/netdev/net-next/c/5b89aeae6e00
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-03-21 3:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-19 12:56 [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements Daniel Golle
2023-03-19 12:56 ` [PATCH net-next v14 2/9] dt-bindings: net: mediatek,net: add mt7981-eth binding Daniel Golle
2023-03-19 12:56 ` [PATCH net-next v14 3/9] dt-bindings: arm: mediatek: sgmiisys: Convert to DT schema Daniel Golle
2023-03-19 12:57 ` [PATCH net-next v14 4/9] dt-bindings: net: pcs: mediatek,sgmiisys: add MT7981 SoC Daniel Golle
2023-03-21 3:00 ` [PATCH net-next v14 0/9] net: ethernet: mtk_eth_soc: various enhancements patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).