Re: [PATCH net-next 0/4] net: Add Allwinner H616/H618 EMAC1 and AC300 EPHY support
From: Chen-Yu Tsai
Date: Wed Sep 16 2026 - 00:56:47 EST
On Wed, Sep 16, 2026 at 12:41 PM Alastair D'Silva <alastair@xxxxxxxxxxx> wrote:
>
> 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.
There is already a series from James covering the same thing. Please check
the mailing list and possibly our wiki (linux-sunxi.org) to avoid duplicate
work and subjecting the maintainers to the same discussions again.
ChenYu
> 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
>