linux-rockchip.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/21] net: phy: add X-Powers AC200/AC300 EPHY support
@ 2026-08-03  5:14 James Hilliard
  2026-08-03  5:14 ` [PATCH 01/21] dt-bindings: net: allwinner: add H616 EMAC1 James Hilliard
                   ` (24 more replies)
  0 siblings, 25 replies; 51+ messages in thread
From: James Hilliard @ 2026-08-03  5:14 UTC (permalink / raw)
  To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Andre Przywara,
	Richard Genoud, Maxime Ripard, Alexandre Torgue,
	Giuseppe Cavallaro, Jose Abreu, Maxime Chevallier,
	Maxime Coquelin, Andrew Lunn, Heiner Kallweit, Russell King,
	Saravana Kannan, Lee Jones, Heiko Stuebner
  Cc: netdev, devicetree, linux-arm-kernel, linux-sunxi, linux-kernel,
	linux-stm32, mfd, linux-rockchip, James Hilliard

The Allwinner H616/H618 secondary EMAC is commonly connected to a Fast
Ethernet PHY in an X-Powers AC200 or AC300 companion package.  The two
packages expose the same link PHY ID and largely compatible link-side
registers, but require different control paths before those registers can
be accessed: AC200 is initialized through its I2C MFD, while AC300 uses a
non-PHY Clause 22 control endpoint.

Some H616-family products were shipped with either package under the same
board identity.  For those systems, this series uses a SID NVMEM field to
select the control provider at run time.  With CONFIG_OF_DYNAMIC, the link
PHY enables only the selected fail-needs-probe provider, so an AC300 board
does not probe the unused AC200 I2C controller or claim its pins.  The same
drivers also support fixed descriptions without CONFIG_OF_DYNAMIC: a board
can reference one enabled provider, or enable both candidates when runtime
selection is still required.

The series adds:

  - the H616 EMAC1 binding, stmmac variant and controller node;
  - generic MDIO OF reconfiguration support for PHYs, packages, scanned
    addresses and generic MDIO devices;
  - the AC200 MFD and AC200/AC300 EPHY control providers;
  - the shared AC200/AC300 link-PHY driver, including calibration, power and
    reset sequencing, MDI/MDI-X, statistics, EDPD, PHY-managed EEE, package
    LEDs, interrupts and Wake-on-LAN; and
  - H6 and H616-family device-tree descriptions and arm64 defconfig support.

The AC200 and AC300 control and link paths were exercised on H616-family
hardware during development, including link traffic, address handling,
ethtool EDPD/EEE controls, statistics and LEDs.  The H6 interrupt and
Wake-on-LAN description still needs validation by an H6 hardware user.

This series depends on Richard Genoud's v7 H616 PWM controller series,
which provides the bypass clock used by the companion EPHY:

  https://lore.kernel.org/all/20260703152215.192859-1-richard.genoud@bootlin.com/

The PWM patches are an external prerequisite and are intentionally not
included in this 21-patch series.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
James Hilliard (18):
      net: mdio: factor out OF child registration helpers
      net: mdio: make device map changes hotplug-safe
      net: mdio: support dynamic OF device changes
      dt-bindings: net: x-powers: add AC200 EPHY control
      dt-bindings: mfd: x-powers: add AC200
      mfd: add X-Powers AC200 support
      net: phy: add X-Powers AC200 EPHY control driver
      dt-bindings: net: x-powers: add AC300 EPHY control
      net: phy: add X-Powers AC300 EPHY control driver
      dt-bindings: net: x-powers: add AC200/AC300 EPHY
      net: phy: support configuring PHY-autonomous Tx LPI
      net: phylink: allow PHY-autonomous EEE without MAC LPI
      net: phy: add X-Powers AC200/AC300 EPHY driver
      arm64: dts: allwinner: h616: add ACx00 EPHY resources
      arm64: dts: allwinner: orangepi-zero2w: enable Ethernet expansion
      arm64: dts: allwinner: h6: add AC200 EPHY resources
      arm64: dts: allwinner: h6: tanix: enable AC200 EPHY
      arm64: defconfig: enable X-Powers ACx00 Ethernet support

Richard Genoud (3):
      dt-bindings: net: allwinner: add H616 EMAC1
      net: stmmac: sun8i: add support for Allwinner H616 EMAC1
      arm64: dts: allwinner: h616: add EMAC1 controller

 .../devicetree/bindings/mfd/x-powers,ac200.yaml    |  118 ++
 .../bindings/net/allwinner,sun8i-a83t-emac.yaml    |   18 +-
 .../devicetree/bindings/net/snps,dwmac.yaml        |    2 +
 .../bindings/net/x-powers,ac200-ephy-ctl.yaml      |   46 +
 .../bindings/net/x-powers,ac300-ephy-ctl.yaml      |   77 ++
 .../bindings/net/x-powers,acx00-ephy.yaml          |  217 +++
 arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi |   45 +
 arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi       |   73 +
 .../boot/dts/allwinner/sun50i-h616-acx00-ephy.dtsi |   61 +
 arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi     |   51 +
 .../dts/allwinner/sun50i-h618-orangepi-zero2w.dts  |   13 +
 arch/arm64/configs/defconfig                       |    6 +
 drivers/mfd/Kconfig                                |   13 +
 drivers/mfd/Makefile                               |    1 +
 drivers/mfd/ac200.c                                |  302 ++++
 drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c  |   21 +
 drivers/net/mdio/of_mdio.c                         |  508 ++++++-
 drivers/net/phy/Kconfig                            |   30 +
 drivers/net/phy/Makefile                           |    3 +
 drivers/net/phy/mdio_bus.c                         |   14 +-
 drivers/net/phy/mdio_bus_provider.c                |  140 +-
 drivers/net/phy/mdio_device.c                      |  235 +++-
 drivers/net/phy/phy.c                              |   35 +-
 drivers/net/phy/phy_device.c                       |  127 +-
 drivers/net/phy/phylib-internal.h                  |    4 +-
 drivers/net/phy/phylink.c                          |   35 +-
 drivers/net/phy/xpowers-ac200-ctl.c                |  330 +++++
 drivers/net/phy/xpowers-ac300-ctl.c                |  454 ++++++
 drivers/net/phy/xpowers-acx00.c                    | 1457 ++++++++++++++++++++
 drivers/net/phy/xpowers-acx00.h                    |   27 +
 include/dt-bindings/mfd/x-powers,ac200.h           |   13 +
 include/linux/mdio.h                               |    6 +
 include/linux/phy.h                                |   36 +
 33 files changed, 4384 insertions(+), 134 deletions(-)
---
base-commit: 075b74841bd0065a3bda3440873c747938e69b68
change-id: 20260802-submit-acx00-of-dynamic-v1-94a0dc15f282
prerequisite-message-id: <20260703152215.192859-1-richard.genoud@bootlin.com>
prerequisite-patch-id: 8c447ebd677ea7bf9e63a77d34d8fdaa05eebe7f
prerequisite-patch-id: c7574f9c0e2571ce8c6129ac6db7aa959c986ef3
prerequisite-patch-id: e8b00768102951244927ecf054314f6e02f9ff1b
prerequisite-patch-id: a3e2055ed7f3b5751a3e02d57e674b25ee404ff7

Best regards,
--  
James Hilliard <james.hilliard1@gmail.com>


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 51+ messages in thread

end of thread, other threads:[~2026-08-03 22:07 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-03  5:14 [PATCH 00/21] net: phy: add X-Powers AC200/AC300 EPHY support James Hilliard
2026-08-03  5:14 ` [PATCH 01/21] dt-bindings: net: allwinner: add H616 EMAC1 James Hilliard
2026-08-03 13:03   ` Andrew Lunn
2026-08-03  5:14 ` [PATCH 02/21] net: stmmac: sun8i: add support for Allwinner " James Hilliard
2026-08-03  5:14 ` [PATCH 03/21] arm64: dts: allwinner: h616: add EMAC1 controller James Hilliard
2026-08-03  7:01   ` Krzysztof Kozlowski
2026-08-03  5:14 ` [PATCH 04/21] net: mdio: factor out OF child registration helpers James Hilliard
2026-08-03  5:14 ` [PATCH 05/21] net: mdio: make device map changes hotplug-safe James Hilliard
2026-08-03  5:14 ` [PATCH 06/21] net: mdio: support dynamic OF device changes James Hilliard
2026-08-03  5:14 ` [PATCH 07/21] dt-bindings: net: x-powers: add AC200 EPHY control James Hilliard
2026-08-03 13:40   ` Andrew Lunn
2026-08-03 18:03     ` James Hilliard
2026-08-03  5:14 ` [PATCH 08/21] dt-bindings: mfd: x-powers: add AC200 James Hilliard
2026-08-03  7:07   ` Krzysztof Kozlowski
2026-08-03  7:54     ` James Hilliard
2026-08-03  8:20       ` Krzysztof Kozlowski
2026-08-03  8:21         ` Krzysztof Kozlowski
2026-08-03 16:36           ` James Hilliard
2026-08-03 21:34         ` James Hilliard
2026-08-03 22:06           ` Andrew Lunn
2026-08-03 13:18   ` Andrew Lunn
2026-08-03 16:45     ` James Hilliard
2026-08-03 16:51       ` Chen-Yu Tsai
2026-08-03  5:14 ` [PATCH 09/21] mfd: add X-Powers AC200 support James Hilliard
2026-08-03  5:14 ` [PATCH 10/21] net: phy: add X-Powers AC200 EPHY control driver James Hilliard
2026-08-03 13:50   ` Andrew Lunn
2026-08-03 16:09     ` James Hilliard
2026-08-03 17:48       ` Andrew Lunn
2026-08-03 18:45         ` James Hilliard
2026-08-03  5:14 ` [PATCH 11/21] dt-bindings: net: x-powers: add AC300 EPHY control James Hilliard
2026-08-03  5:14 ` [PATCH 12/21] net: phy: add X-Powers AC300 EPHY control driver James Hilliard
2026-08-03  5:14 ` [PATCH 13/21] dt-bindings: net: x-powers: add AC200/AC300 EPHY James Hilliard
2026-08-03  5:14 ` [PATCH 14/21] net: phy: support configuring PHY-autonomous Tx LPI James Hilliard
2026-08-03  5:14 ` [PATCH 15/21] net: phylink: allow PHY-autonomous EEE without MAC LPI James Hilliard
2026-08-03 13:23   ` Andrew Lunn
2026-08-03  5:14 ` [PATCH 16/21] net: phy: add X-Powers AC200/AC300 EPHY driver James Hilliard
2026-08-03  5:14 ` [PATCH 17/21] arm64: dts: allwinner: h616: add ACx00 EPHY resources James Hilliard
2026-08-03  5:14 ` [PATCH 18/21] arm64: dts: allwinner: orangepi-zero2w: enable Ethernet expansion James Hilliard
2026-08-03  5:14 ` [PATCH 19/21] arm64: dts: allwinner: h6: add AC200 EPHY resources James Hilliard
2026-08-03  5:14 ` [PATCH 20/21] arm64: dts: allwinner: h6: tanix: enable AC200 EPHY James Hilliard
2026-08-03  5:14 ` [PATCH 21/21] arm64: defconfig: enable X-Powers ACx00 Ethernet support James Hilliard
2026-08-03  7:00   ` Krzysztof Kozlowski
2026-08-03  7:22     ` James Hilliard
2026-08-03 13:01 ` [PATCH 00/21] net: phy: add X-Powers AC200/AC300 EPHY support Andrew Lunn
2026-08-03 13:14 ` Andrew Lunn
2026-08-03 13:26 ` Andre Przywara
2026-08-03 13:30   ` Andrew Lunn
2026-08-03 15:57   ` James Hilliard
2026-08-03 13:52 ` Andrew Lunn
2026-08-03 13:54   ` Andre Przywara
2026-08-03 13:57     ` Andrew Lunn

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).