[PATCH net-next 0/4] net: Add Allwinner H616/H618 EMAC1 and AC300 EPHY support
From: Alastair D'Silva
Date: Wed Sep 16 2026 - 00:42:36 EST
This series adds support for the secondary Ethernet MAC controller (EMAC1)
and the co-packaged AC300 Fast Ethernet Physical Layer (EPHY) found on
Allwinner H616 and H618 SoCs.
The Allwinner H616/H618 SoCs feature two EMAC instances: EMAC0 (typically
used with an external RGMII Gigabit PHY) and EMAC1 (Fast Ethernet,
connected internally to the co-packaged AC300 EPHY). EMAC1 uses a
dedicated clock control register in the syscon register space, which is
accessed via an offset index in the DT syscon property.
The AC300 is an integrated 10/100M (100BASE-TX / 10BASE-T) Fast Ethernet
PHY communicating over MDIO at address 16 + phy_addr. It requires
retrieving factory bandgap calibration data from the SID nvmem controller,
managing internal power rails and clocks, and optimizing transceiver signal
parameters.
To ensure reliable link establishment and MAC software reset with the
internal PHY, dwmac-sun8i is updated to defer MAC software reset until
sun8i_dwmac_init() after the internal PHY has powered on and begun
clock generation.
The series is structured as follows:
- Patch 1: DT binding for Allwinner AC300 EPHY.
- Patch 2: PHY driver for Allwinner AC300 EPHY.
- Patch 3: DT binding update for Allwinner H616 EMAC1 and syscon index.
- Patch 4: dwmac-sun8i driver support for H616 EMAC1 clock index and
internal PHY deferred reset.
Testing:
- Tested on physical Mellow Fly-C5 hardware (Allwinner H618) running
Armbian with sustained 100Mbps full-duplex network traffic (DHCP,
iperf3, NFS rootfs).
- Device tree bindings validated with dt_binding_check.
- Separate SoC and board DTS additions will be submitted via the
linux-sunxi tree.
Alastair D'Silva (4):
dt-bindings: net: phy: Add Allwinner AC300 EPHY binding
net: phy: Add Allwinner AC300 EPHY driver
dt-bindings: net: allwinner,sun8i-a83t-emac: Add Allwinner H616 EMAC1
and syscon index
net: stmmac: dwmac-sun8i: Add Allwinner H616 EMAC clock index and
internal PHY support
.../net/allwinner,sun50i-h618-ac300-ephy.yaml | 79 +++++
.../net/allwinner,sun8i-a83t-emac.yaml | 14 +-
.../net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 65 +++-
drivers/net/phy/Kconfig | 9 +
drivers/net/phy/Makefile | 1 +
drivers/net/phy/ac300-phy.c | 331 ++++++++++++++++++
6 files changed, 486 insertions(+), 13 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/allwinner,sun50i-h618-ac300-ephy.yaml
create mode 100644 drivers/net/phy/ac300-phy.c
--
2.53.0