[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210712130631.38153-1-alexandru.tachici@analog.com>
Date: Mon, 12 Jul 2021 16:06:24 +0300
From: <alexandru.tachici@...log.com>
To: <netdev@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<devicetree@...r.kernel.org>
CC: <robh+dt@...nel.org>, <andrew@...n.ch>, <hkallweit1@...il.com>,
<linux@...linux.org.uk>, <davem@...emloft.net>, <kuba@...nel.org>,
Alexandru Tachici <alexandru.tachici@...log.com>
Subject: [PATCH v2 0/7] net: phy: adin1100: Add initial support for ADIN1100 industrial PHY
From: Alexandru Tachici <alexandru.tachici@...log.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.
Ethtool output:
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT1L/Full
2400mv
1000mv
Supported pause frame use: Transmit-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT1L/Full
2400mv
1000mv
Advertised pause frame use: Transmit-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT1L/Full
2400mv
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 10base-T1L voltage levels link modes. 1v is the default TX level.
2.4 V support depends on pin configuration and power supply.
3. Allow user to access error and frame counters through ethtool.
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 ADIN1100.
Alexandru Tachici (6):
ethtool: Add 10base-T1L link mode entries
ethtool: Add 10base-T1L voltage levels link mode entries
net: phy: adin1100: Add ethtool get_stats support
net: phy: adin1100: Add ethtool master-slave support
net: phy: adin1100: Add SQI support
dt-bindings: adin1100: Add binding for ADIN1100 Ethernet PHY
Changelog v1 -> v2:
- Added ETHTOOL_LINK_MODE_10baseT1L_Full_BIT and ETHTOOL_LINK_MODE_10baseT1L_Half_BIT.
Using only full duplex here as chip supports full duplex only
- removed .match_phy_device
- removed link partner advertising of modes not present in the kernel
- enable/disable only the PCS loopback
- replaced custom timeout implementations with phy_read_mmd_poll_timeout
- added link modes for 1.0 V and 2.4 V TX levels
- removed link change notify
- check if 2.4v TX level is supported in adin_get_features call and set
corresponding link mode
.../devicetree/bindings/net/adi,adin1100.yaml | 45 ++
drivers/net/phy/Kconfig | 7 +
drivers/net/phy/Makefile | 1 +
drivers/net/phy/adin1100.c | 533 ++++++++++++++++++
drivers/net/phy/phy-core.c | 4 +-
include/uapi/linux/ethtool.h | 4 +
net/ethtool/common.c | 6 +
7 files changed, 599 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/net/adi,adin1100.yaml
create mode 100644 drivers/net/phy/adin1100.c
--
2.25.1
Powered by blists - more mailing lists