All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/8] net: phy: adin1100: Add initial support for ADIN1100 industrial PHY
@ 2021-10-11 14:22 alexandru.tachici
  2021-10-11 14:22 ` [PATCH v3 1/8] ethtool: Add 10base-T1L link mode entry alexandru.tachici
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: alexandru.tachici @ 2021-10-11 14:22 UTC (permalink / raw)
  To: andrew
  Cc: o.rempel, alexandru.tachici, davem, devicetree, hkallweit1, kuba,
	linux-kernel, linux, netdev, robh+dt

From: Alexandru Tachici <alexandru.tachici@analog.com>

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.

Ethtool output:
        Settings for eth1:
        Supported ports: [ TP	 MII ]
        Supported link modes:   10baseT1L/Full
        Supported pause frame use: Transmit-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT1L/Full
        Advertised pause frame use: Transmit-only
        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 master
        master-slave status: master
        Port: MII
        PHYAD: 0
        Transceiver: external
        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 that are used in ADIN1100 driver.

3. Added BaseT1 auto-negotiation registers. For ADIN1100 these
registers decide master/slave status and TX voltage of the
device and link partner.

4. Allow user to set the master-slave configuration of ADIN1100.

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.

7. DT bindings for ADIN1100.

Alexandru Tachici (7):
  ethtool: Add 10base-T1L link mode entry
  net: phy: Add 10-BaseT1L registers
  net: phy: Add BaseT1 auto-negotiation registers
  net: phy: adin1100: Add ethtool master-slave support
  net: phy: adin1100: Add SQI support
  dt-bindings: net: phy: Add 10-baseT1L 2.4 Vpp
  dt-bindings: adin1100: Add binding for ADIN1100 Ethernet PHY

Changelog V2 -> V3:
 - removed unused defines
 - dropped 1 V 2.4 V voltage link entries (will add these features in a separate patch)
 - dropped extra PHY stats, will add them in a separate patch
(adin1200/1300 will need rework too as it implements same stats)
 - added PMA status register and PCS control register in mdio.h (registers specified in 802.3gc)
 - added auto-negotiation advertisement and link partner registers in mdio.h
(Registers specified in 802.3 2018)
 - added 10base-t1l-2.4vpp tristate property to ethernet-phy yaml
 - replaced standard registers defines in adin1100.c with the ones added to mdio.h

 .../devicetree/bindings/net/adi,adin1100.yaml |  30 ++
 .../devicetree/bindings/net/ethernet-phy.yaml |   9 +
 drivers/net/phy/Kconfig                       |   7 +
 drivers/net/phy/Makefile                      |   1 +
 drivers/net/phy/adin1100.c                    | 403 ++++++++++++++++++
 drivers/net/phy/phy-core.c                    |   3 +-
 include/uapi/linux/ethtool.h                  |   1 +
 include/uapi/linux/mdio.h                     |  56 +++
 net/ethtool/common.c                          |   3 +
 9 files changed, 512 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/net/adi,adin1100.yaml
 create mode 100644 drivers/net/phy/adin1100.c

--
2.25.1

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2021-11-24 15:15 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-11 14:22 [PATCH v3 0/8] net: phy: adin1100: Add initial support for ADIN1100 industrial PHY alexandru.tachici
2021-10-11 14:22 ` [PATCH v3 1/8] ethtool: Add 10base-T1L link mode entry alexandru.tachici
2021-10-12  7:15   ` Oleksij Rempel
2021-10-11 14:22 ` [PATCH v3 2/8] net: phy: Add 10-BaseT1L registers alexandru.tachici
2021-10-12  6:37   ` Oleksij Rempel
2021-10-11 14:22 ` [PATCH v3 3/8] net: phy: Add BaseT1 auto-negotiation registers alexandru.tachici
2021-10-12  7:14   ` Oleksij Rempel
2021-11-24 15:24     ` alexandru.tachici
2021-10-11 14:22 ` [PATCH v3 4/8] net: phy: adin1100: Add initial support for ADIN1100 industrial PHY alexandru.tachici
2021-10-11 15:24   ` Jakub Kicinski
2021-10-12  8:29   ` Oleksij Rempel
2021-10-11 14:22 ` [PATCH v3 5/8] net: phy: adin1100: Add ethtool master-slave support alexandru.tachici
2021-10-11 14:22 ` [PATCH v3 6/8] net: phy: adin1100: Add SQI support alexandru.tachici
2021-10-11 14:22 ` [PATCH v3 7/8] dt-bindings: net: phy: Add 10-baseT1L 2.4 Vpp alexandru.tachici
2021-10-18 19:06   ` Rob Herring
2021-10-19  5:48     ` Oleksij Rempel
2021-10-11 14:22 ` [PATCH v3 8/8] dt-bindings: adin1100: Add binding for ADIN1100 Ethernet PHY alexandru.tachici
2021-10-11 23:13   ` Rob Herring
2021-10-12  0:47   ` Rob Herring

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.