mbox series

[v5,00/12] net: ethernet: mtk_eth_soc: various enhancements

Message ID cover.1676128246.git.daniel@makrotopia.org
Headers show
Series net: ethernet: mtk_eth_soc: various enhancements | expand

Message

Daniel Golle Feb. 11, 2023, 4:01 p.m. UTC
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.

Note that this series depends on commit 697c3892d825
("regmap: apply reg_base and reg_downshift for single register ops") to
not break mt7530 pcs register access.

The whole series has been tested on MT7622+MT7531 (BPi-R64),
MT7623+MT7530 (BPi-R2) and MT7981+GPY211 (GL.iNet GL-MT3000).

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 (12):
  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: arm: mediatek: sgmiisys: add MT7981 SoC
  net: ethernet: mtk_eth_soc: set MDIO bus clock frequency
  net: ethernet: mtk_eth_soc: reset PCS state
  net: ethernet: mtk_eth_soc: only write values if needed
  net: ethernet: mtk_eth_soc: fix RX data corruption issue
  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 --
 .../arm/mediatek/mediatek,sgmiisys.yaml       |  75 +++++
 .../devicetree/bindings/net/mediatek,net.yaml |  43 ++-
 MAINTAINERS                                   |   7 +
 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/mtk_eth_path.c  |  14 +-
 drivers/net/ethernet/mediatek/mtk_eth_soc.c   |  65 +++-
 drivers/net/ethernet/mediatek/mtk_eth_soc.h   | 100 ++----
 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     | 190 ++---------
 drivers/net/pcs/Kconfig                       |   7 +
 drivers/net/pcs/Makefile                      |   1 +
 drivers/net/pcs/pcs-mtk-lynxi.c               | 301 ++++++++++++++++++
 include/linux/pcs/pcs-mtk-lynxi.h             |  13 +
 21 files changed, 810 insertions(+), 530 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
 create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.yaml
 create mode 100644 drivers/net/pcs/pcs-mtk-lynxi.c
 create mode 100644 include/linux/pcs/pcs-mtk-lynxi.h


base-commit: 6ba8a227fd19d19779005fb66ad7562608e1df83

Comments

Krzysztof Kozlowski Feb. 13, 2023, 9:16 a.m. UTC | #1
On 11/02/2023 17:02, Daniel Golle wrote:
> Add mediatek,pnswap boolean property as well as an example for the
> MediaTek MT7981 SoC making use of that new property.
> 
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> ---
>  .../arm/mediatek/mediatek,sgmiisys.yaml       | 22 +++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.yaml
> index 99ceb08ad7c0..97d4ab70e541 100644
> --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.yaml
> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.yaml
> @@ -23,6 +23,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
> @@ -33,6 +35,10 @@ properties:
>    '#clock-cells':
>      const: 1
>  
> +  mediatek,pnswap:
> +    description: Invert polarity of the SGMII data lanes
> +    type: boolean
> +
>  required:
>    - compatible
>    - reg
> @@ -51,3 +57,19 @@ examples:
>          #clock-cells = <1>;
>        };
>      };
> +  - |
> +    soc {
> +      #address-cells = <2>;
> +      #size-cells = <2>;
> +      sgmiisys0: syscon@10060000 {
> +        compatible = "mediatek,mt7981-sgmiisys_0", "syscon";
> +        reg = <0 0x10060000 0 0x1000>;
> +        mediatek,pnswap;

No really need for three almost the same nodes. Just choose one - with
or without pnswap.

Best regards,
Krzysztof