mbox series

[net-next,v5,0/6] net-next: dsa: mt7530: add support for MT7531

Message ID cover.1599829696.git.landen.chao@mediatek.com (mailing list archive)
Headers show
Series net-next: dsa: mt7530: add support for MT7531 | expand

Message

Landen Chao (趙皎宏) Sept. 11, 2020, 1:48 p.m. UTC
This patch series adds support for MT7531.

MT7531 is the next generation of MT7530 which could be found on Mediatek
router platforms such as MT7622 or MT7629.

It is also a 7-ports switch with 5 giga embedded phys, 2 cpu ports, and
the same MAC logic of MT7530. Cpu port 6 only supports SGMII interface.
Cpu port 5 supports either RGMII or SGMII in different HW SKU, but cannot
be muxed to PHY of port 0/4 like mt7530. Due to support for SGMII
interface, pll, and pad setting are different from MT7530.

MT7531 SGMII interface can be configured in following mode:
- 'SGMII AN mode' with in-band negotiation capability
    which is compatible with PHY_INTERFACE_MODE_SGMII.
- 'SGMII force mode' without in-band negotiation
    which is compatible with 10B/8B encoding of
    PHY_INTERFACE_MODE_1000BASEX with fixed full-duplex and fixed pause.
- 2.5 times faster clocked 'SGMII force mode' without in-band negotiation
    which is compatible with 10B/8B encoding of
    PHY_INTERFACE_MODE_2500BASEX with fixed full-duplex and fixed pause.

v4 -> v5
- Add fixed-link node to dsa cpu port in dts file by suggestion of
  Vladimir Oltean.

v3 -> v4
- Adjust the coding style by suggestion of Jakub Kicinski.
  Remove unnecessary jumping label, merge continuous numeric 'switch
  cases' into one line, and keep the variables longest to shortest
  (reverse xmas tree).

v2 -> v3
- Keep the same setup logic of mt7530/mt7621 because these series of
  patches is for adding mt7531 hardware.
- Do not adjust rgmii delay when vendor phy driver presents in order to
  prevent double adjustment by suggestion of Andrew Lunn.
- Remove redundant 'Example 4' from dt-bindings by suggestion of
  Rob Herring.
- Fix typo.

v1 -> v2
- change phylink_validate callback function to support full-duplex
  gigabit only to match hardware capability.
- add description of SGMII interface.
- configure mt7531 cpu port in fastest speed by default.
- parse SGMII control word for in-band negotiation mode.
- configure RGMII delay based on phy.rst.
- Rename the definition in the header file to avoid potential conflicts.
- Add wrapper function for mdio read/write to support both C22 and C45.
- correct fixed-link speed of 2500base-x in dts.
- add MT7531 port mirror setting.

Landen Chao (6):
  net: dsa: mt7530: Refine message in Kconfig
  net: dsa: mt7530: Extend device data ready for adding a new hardware
  dt-bindings: net: dsa: add new MT7531 binding to support MT7531
  net: dsa: mt7530: Add the support of MT7531 switch
  arm64: dts: mt7622: add mt7531 dsa to mt7622-rfb1 board
  arm64: dts: mt7622: add mt7531 dsa to bananapi-bpi-r64 board

 .../devicetree/bindings/net/dsa/mt7530.txt    |   13 +-
 .../dts/mediatek/mt7622-bananapi-bpi-r64.dts  |   50 +
 arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts  |   63 +-
 drivers/net/dsa/Kconfig                       |    6 +-
 drivers/net/dsa/mt7530.c                      | 1192 +++++++++++++++--
 drivers/net/dsa/mt7530.h                      |  259 +++-
 6 files changed, 1467 insertions(+), 116 deletions(-)

Comments

Vladimir Oltean Sept. 11, 2020, 4:47 p.m. UTC | #1
On Fri, Sep 11, 2020 at 09:48:50PM +0800, Landen Chao wrote:
> This patch series adds support for MT7531.
>
> MT7531 is the next generation of MT7530 which could be found on Mediatek
> router platforms such as MT7622 or MT7629.
>
> It is also a 7-ports switch with 5 giga embedded phys, 2 cpu ports, and
> the same MAC logic of MT7530. Cpu port 6 only supports SGMII interface.
> Cpu port 5 supports either RGMII or SGMII in different HW SKU, but cannot
> be muxed to PHY of port 0/4 like mt7530. Due to support for SGMII
> interface, pll, and pad setting are different from MT7530.
>
> MT7531 SGMII interface can be configured in following mode:
> - 'SGMII AN mode' with in-band negotiation capability
>     which is compatible with PHY_INTERFACE_MODE_SGMII.
> - 'SGMII force mode' without in-band negotiation
>     which is compatible with 10B/8B encoding of
>     PHY_INTERFACE_MODE_1000BASEX with fixed full-duplex and fixed pause.
> - 2.5 times faster clocked 'SGMII force mode' without in-band negotiation
>     which is compatible with 10B/8B encoding of
>     PHY_INTERFACE_MODE_2500BASEX with fixed full-duplex and fixed pause.
>
> v4 -> v5
> - Add fixed-link node to dsa cpu port in dts file by suggestion of
>   Vladimir Oltean.

Thank you!

-Vladimir
David Miller Sept. 14, 2020, 11:32 p.m. UTC | #2
From: Landen Chao <landen.chao@mediatek.com>
Date: Fri, 11 Sep 2020 21:48:50 +0800

> This patch series adds support for MT7531.
> 
> MT7531 is the next generation of MT7530 which could be found on Mediatek
> router platforms such as MT7622 or MT7629.
> 
> It is also a 7-ports switch with 5 giga embedded phys, 2 cpu ports, and
> the same MAC logic of MT7530. Cpu port 6 only supports SGMII interface.
> Cpu port 5 supports either RGMII or SGMII in different HW SKU, but cannot
> be muxed to PHY of port 0/4 like mt7530. Due to support for SGMII
> interface, pll, and pad setting are different from MT7530.
> 
> MT7531 SGMII interface can be configured in following mode:
> - 'SGMII AN mode' with in-band negotiation capability
>     which is compatible with PHY_INTERFACE_MODE_SGMII.
> - 'SGMII force mode' without in-band negotiation
>     which is compatible with 10B/8B encoding of
>     PHY_INTERFACE_MODE_1000BASEX with fixed full-duplex and fixed pause.
> - 2.5 times faster clocked 'SGMII force mode' without in-band negotiation
>     which is compatible with 10B/8B encoding of
>     PHY_INTERFACE_MODE_2500BASEX with fixed full-duplex and fixed pause.
 ...

Series applied, thank you.
Matthias Brugger Sept. 21, 2020, 10:10 a.m. UTC | #3
On 15/09/2020 01:32, David Miller wrote:
> From: Landen Chao <landen.chao@mediatek.com>
> Date: Fri, 11 Sep 2020 21:48:50 +0800
> 
>> This patch series adds support for MT7531.
>>
>> MT7531 is the next generation of MT7530 which could be found on Mediatek
>> router platforms such as MT7622 or MT7629.
>>
>> It is also a 7-ports switch with 5 giga embedded phys, 2 cpu ports, and
>> the same MAC logic of MT7530. Cpu port 6 only supports SGMII interface.
>> Cpu port 5 supports either RGMII or SGMII in different HW SKU, but cannot
>> be muxed to PHY of port 0/4 like mt7530. Due to support for SGMII
>> interface, pll, and pad setting are different from MT7530.
>>
>> MT7531 SGMII interface can be configured in following mode:
>> - 'SGMII AN mode' with in-band negotiation capability
>>      which is compatible with PHY_INTERFACE_MODE_SGMII.
>> - 'SGMII force mode' without in-band negotiation
>>      which is compatible with 10B/8B encoding of
>>      PHY_INTERFACE_MODE_1000BASEX with fixed full-duplex and fixed pause.
>> - 2.5 times faster clocked 'SGMII force mode' without in-band negotiation
>>      which is compatible with 10B/8B encoding of
>>      PHY_INTERFACE_MODE_2500BASEX with fixed full-duplex and fixed pause.
>   ...
> 
> Series applied, thank you.
> 

Regarding the DTS patches: Please coordinate with me the next time. I want to 
prevent merge conflicts if both mine and your tree add patches to the files.

Thanks,
Matthias