[PATCH net-next 0/5] net: ethernet: adi: adin1110: Add OPEN Alliance TC6 support

From: Iustin Stolniceanu

Date: Tue Nov 03 2026 - 12:49:58 EST


The ADIN1110 supports two SPI host interface protocols: the generic SPI
protocol, which the adin1110 driver implements today, and the OPEN
Alliance TC6 protocol. The protocol is selected by the SPI_CFG1 pin,
which the device latches when it comes out of reset.

This series adds OPEN Alliance TC6 support for the ADIN1110 using the
oa_tc6 framework, selected by a new adi,spi-oa-tc6 DT property:

1-2: oa_tc6: configurable reset settle time, and indirect MDIO access
(MDIOACC) for MAC-PHYs without direct PHY register access
3: dt-bindings: add adi,spi-oa-tc6
4: adin1110: add the OPEN Alliance TC6 probe path
5: adin1100: skip the soft reset on ADIN1110/ADIN2111, as it resets
the whole MAC-PHY

The ADIN2111 is not supported in OPEN Alliance TC6 mode yet.

Testing: Raspberry Pi 4 with an EVAL-ADIN1110EBZ, SPI at 25 MHz, against
a 10BASE-T1L link partner. OPEN Alliance TC6 mode: probe/remove 20x,
link up/down under traffic, frame sizes 42-1514 bytes, flood ping,
~9.4 Mbit/s TCP in each direction, 0% loss on 10 Mbit/s bidirectional
UDP, kmemleak clean, also on a debug kernel (KASAN, lockdep). Generic SPI
mode: no change in results with and without the series.

Known limitations, unchanged by this series:
- A "Config unsync" error (e.g. after a chip reset) makes oa_tc6
disable the device until the driver is reloaded.
- Secondary unicast and multicast address lists are not programmed
into the MAC filter, as in the generic SPI path.

Open question: indirect MDIO is used automatically when STDCAP.DPRAC is
not set. Would you prefer an explicit quirk flag instead?

Parts of the code and of the commit messages were developed with the
help of an AI assistant (Claude Opus 5.5); all changes were reviewed and
tested on hardware by the submitter. Patches 1-4 were also reviewed with
Sashiko (Claude Opus 5.5) before sending. Patch 5 is too small a change
to merit a Sashiko review.

Ciprian Regus (4):
net: ethernet: oa_tc6: Allow custom reset settle time values
net: ethernet: oa_tc6: Add support for MDIO indirect access
dt-bindings: net: adi,adin1110: Add adi,spi-oa-tc6
net: ethernet: adi: adin1110: Add OA TC6 protocol support for ADIN1110

Iustin Stolniceanu (1):
net: phy: adin1100: Skip the soft reset on ADIN1110/ADIN2111

.../devicetree/bindings/net/adi,adin1110.yaml | 6 +
drivers/net/ethernet/adi/Kconfig | 1 +
drivers/net/ethernet/adi/adin1110.c | 186 ++++++++++++++++-
drivers/net/ethernet/oa_tc6.c | 189 ++++++++++++++++--
drivers/net/phy/adin1100.c | 9 +
include/linux/oa_tc6.h | 18 ++
6 files changed, 388 insertions(+), 21 deletions(-)

--
2.43.0