From: <alexandru.tachici@analog.com>
To: <andrew@lunn.ch>
Cc: <o.rempel@pengutronix.de>, <alexandru.tachici@analog.com>,
<davem@davemloft.net>, <devicetree@vger.kernel.org>,
<hkallweit1@gmail.com>, <kuba@kernel.org>,
<linux-kernel@vger.kernel.org>, <linux@armlinux.org.uk>,
<netdev@vger.kernel.org>, <robh+dt@kernel.org>
Subject: [PATCH v5 0/7] net: phy: adin1100: Add initial support for ADIN1100 industrial PHY
Date: Thu, 24 Mar 2022 13:26:13 +0200 [thread overview]
Message-ID: <20220324112620.46963-1-alexandru.tachici@analog.com> (raw)
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.
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.
Alexandru Ardelean (1):
net: phy: adin1100: Add initial support for ADIN1100 industrial PHY
Alexandru Tachici (6):
ethtool: Add 10base-T1L link mode entry
net: phy: Add 10-BaseT1L registers
net: phy: Add BaseT1 auto-negotiation registers
net: phy: Add 10BASE-T1L support in phy-c45
net: phy: adin1100: Add SQI support
dt-bindings: net: phy: Add 10-baseT1L 2.4 Vpp
Changelog V4 -> V5:
- added int pma_extable; attribute to struct phy_device;
- added genphy_c45_baset1_able() function to determine base-t1 ability
- replaced constant reading of MDIO_PMA_EXTABLE and checking for MDIO_PMA_EXTABLE_BT1 in
phy-c45.c with the genphy_c45_baset1_able() call
.../devicetree/bindings/net/ethernet-phy.yaml | 9 +
drivers/net/phy/Kconfig | 7 +
drivers/net/phy/Makefile | 1 +
drivers/net/phy/adin1100.c | 299 ++++++++++++++++++
drivers/net/phy/phy-c45.c | 258 ++++++++++++++-
drivers/net/phy/phy-core.c | 3 +-
drivers/net/phy/phy_device.c | 1 +
include/linux/mdio.h | 70 ++++
include/linux/phy.h | 2 +
include/uapi/linux/ethtool.h | 1 +
include/uapi/linux/mdio.h | 75 +++++
net/ethtool/common.c | 3 +
12 files changed, 723 insertions(+), 6 deletions(-)
create mode 100644 drivers/net/phy/adin1100.c
--
2.25.1
next reply other threads:[~2022-03-24 11:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-24 11:26 alexandru.tachici [this message]
2022-03-24 11:26 ` [PATCH v5 1/7] ethtool: Add 10base-T1L link mode entry alexandru.tachici
2022-03-24 11:26 ` [PATCH v5 2/7] net: phy: Add 10-BaseT1L registers alexandru.tachici
2022-03-24 11:26 ` [PATCH v5 3/7] net: phy: Add BaseT1 auto-negotiation registers alexandru.tachici
2022-03-24 11:26 ` [PATCH v5 4/7] net: phy: Add 10BASE-T1L support in phy-c45 alexandru.tachici
2022-03-24 11:26 ` [PATCH v5 5/7] net: phy: adin1100: Add initial support for ADIN1100 industrial PHY alexandru.tachici
2022-04-10 5:11 ` Ramon Fried
2022-04-10 5:12 ` Ramon Fried
2022-04-12 0:17 ` Zhou Furong
2022-03-24 11:26 ` [PATCH v5 6/7] net: phy: adin1100: Add SQI support alexandru.tachici
2022-03-24 11:26 ` [PATCH v5 7/7] dt-bindings: net: phy: Add 10-baseT1L 2.4 Vpp alexandru.tachici
2022-03-24 23:00 ` [PATCH v5 0/7] net: phy: adin1100: Add initial support for ADIN1100 industrial PHY Jakub Kicinski
2022-04-07 12:05 ` Oleksij Rempel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220324112620.46963-1-alexandru.tachici@analog.com \
--to=alexandru.tachici@analog.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=o.rempel@pengutronix.de \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).