1. 02 May, 2022 33 commits
  2. 01 May, 2022 7 commits
    • David S. Miller's avatar
      Merge branch 'adin1100-industrial-PHY-support' · 6e28f56c
      David S. Miller authored
      Alexandru Tachici says:
      
      ====================
      net: phy: adin1100: Add initial support for ADIN1100 industrial PHY
      
      The ADIN1100 is a low power single port 10BASE-T1L transceiver designed for
      industrial Ethernet applications and is compliant with the IEEE 802.3cg
      Ethernet standard for long reach 10 Mb/s Single Pair Ethernet.
      
      The ADIN1100 uses Auto-Negotiation capability in accordance
      with IEEE 802.3 Clause 98, providing a mechanism for
      exchanging information between PHYs to allow link partners to
      agree to a common mode of operation.
      
      The concluded operating mode is the transmit amplitude mode and
      master/slave preference common across the two devices.
      
      Both device and LP advertise their ability and request for
      increased transmit at:
      - BASE-T1 autonegotiation advertisement register [47:32]\
      Clause 45.2.7.21 of Standard 802.3
      - BIT(13) - 10BASE-T1L High Level Transmit Operating Mode Ability
      - BIT(12) - 10BASE-T1L High Level Transmit Operating Mode Request
      
      For 2.4 Vpp (high level transmit) operation, both devices need
      to have the High Level Transmit Operating Mode Ability bit set,
      and only one of them needs to have the High Level Transmit
      Operating Mode Request bit set. Otherwise 1.0 Vpp transmit level
      will be used.
      
      Settings for eth1:
      	Supported ports: [ TP	 MII ]
      	Supported link modes:   10baseT1L/Full
      	Supported pause frame use: Symmetric Receive-only
      	Supports auto-negotiation: Yes
      	Supported FEC modes: Not reported
      	Advertised link modes:  10baseT1L/Full
      	Advertised pause frame use: No
      	Advertised auto-negotiation: Yes
      	Advertised FEC modes: Not reported
      	Link partner advertised link modes:  10baseT1L/Full
      	Link partner advertised pause frame use: No
      	Link partner advertised auto-negotiation: Yes
      	Link partner advertised FEC modes: Not reported
      	Speed: 10Mb/s
      	Duplex: Full
      	Auto-negotiation: on
      	master-slave cfg: preferred slave
      	master-slave status: slave
      	Port: Twisted Pair
      	PHYAD: 0
      	Transceiver: external
      	MDI-X: Unknown
      	Link detected: yes
      	SQI: 7/7
      
      1. Add basic support for ADIN1100.
      
      Alexandru Ardelean (1):
        net: phy: adin1100: Add initial support for ADIN1100 industrial PHY
      
      1. Added 10baset-T1L link modes.
      
      2. Added 10-BasetT1L registers.
      
      3. Added Base-T1 auto-negotiation registers. For Base-T1 these
      registers decide master/slave status and TX voltage of the
      device and link partner.
      
      4. Added 10BASE-T1L support in phy-c45.c. Now genphy functions will call
      Base-T1 functions where registers don't match, like the auto-negotiation ones.
      
      5. Convert MSE to SQI using a predefined table and allow user access
      through ethtool.
      
      6. DT bindings for the 2.4 Vpp transmit mode.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6e28f56c
    • Alexandru Tachici's avatar
      dt-bindings: net: phy: Add 10-baseT1L 2.4 Vpp · 49714461
      Alexandru Tachici authored
      Add a tristate property to advertise desired transmit level.
      
      If the device supports the 2.4 Vpp operating mode for 10BASE-T1L,
      as defined in 802.3gc, and the 2.4 Vpp transmit voltage operation
      is desired, property should be set to 1. This property is used
      to select whether Auto-Negotiation advertises a request to
      operate the 10BASE-T1L PHY in increased transmit level mode.
      
      If property is set to 1, the PHY shall advertise a request
      to operate the 10BASE-T1L PHY in increased transmit level mode.
      If property is set to zero, the PHY shall not advertise
      a request to operate the 10BASE-T1L PHY in increased transmit level mode.
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarAlexandru Tachici <alexandru.tachici@analog.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      49714461
    • Alexandru Tachici's avatar
      net: phy: adin1100: Add SQI support · 48f20f90
      Alexandru Tachici authored
      Determine the SQI from MSE using a predefined table
      for the 10BASE-T1L.
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarAlexandru Tachici <alexandru.tachici@analog.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      48f20f90
    • Alexandru Ardelean's avatar
      net: phy: adin1100: Add initial support for ADIN1100 industrial PHY · 7eaf9132
      Alexandru Ardelean authored
      The ADIN1100 is a low power single port 10BASE-T1L transceiver designed for
      industrial Ethernet applications and is compliant with the IEEE 802.3cg
      Ethernet standard for long reach 10 Mb/s Single Pair Ethernet.
      Signed-off-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
      Signed-off-by: default avatarAlexandru Tachici <alexandru.tachici@analog.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7eaf9132
    • Alexandru Tachici's avatar
      net: phy: Add 10BASE-T1L support in phy-c45 · 3da8ffd8
      Alexandru Tachici authored
      This patch is needed because the BASE-T1 uses different registers
      for status, control and advertisement to those already
      employed in the existing phy-c45 functions.
      
      Where required, genphy_c45 functions will now check whether
      the device supports BASE-T1 and use the specific registers
      instead: 45.2.7.19 BASE-T1 AN control register,
      45.2.7.20 BASE-T1 AN status, 45.2.7.21 BASE-T1 AN
      advertisement register, 45.2.7.22 BASE-T1 AN LP Base
      Page ability register, 45.2.1.185 BASE-T1 PMA/PMD control
      register.
      Tested-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Signed-off-by: default avatarAlexandru Tachici <alexandru.tachici@analog.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3da8ffd8
    • Alexandru Tachici's avatar
      net: phy: Add BaseT1 auto-negotiation registers · 1b020e44
      Alexandru Tachici authored
      Added BASE-T1 AN advertisement register (Registers 7.514, 7.515, and
      7.516) and BASE-T1 AN LP Base Page ability register (Registers 7.517,
      7.518, and 7.519).
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarAlexandru Tachici <alexandru.tachici@analog.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1b020e44
    • Alexandru Tachici's avatar
      net: phy: Add 10-BaseT1L registers · 909b4f2b
      Alexandru Tachici authored
      The 802.3gc specification defines the 10-BaseT1L link
      mode for ethernet trafic on twisted wire pair.
      
      PMA status register can be used to detect if the phy supports
      2.4 V TX level and PCS control register can be used to
      enable/disable PCS level loopback.
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarAlexandru Tachici <alexandru.tachici@analog.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      909b4f2b