[PATCH v6 0/3] mfd: add X-Powers AC200 support
From: James Hilliard
Date: Tue Aug 11 2026 - 04:27:52 EST
This submission contains only the AC200 binding, managed syscon helper
and I2C register provider and is intended for the MFD tree. The Ethernet
PHY binding and driver will be submitted separately to net-next. Neither
series has a compile-time dependency or required merge order. Their only
shared design point is the DT representation: the MDIO PHY-package node
references the separately described AC200 I2C node for package-control
register access.
The X-Powers AC200 is an I2C-controlled mixed-signal companion IC with a
paged register map shared by its audio, video, RTC and Fast Ethernet PHY
functions. Its shared input clock must remain enabled while the chip is in
use.
The provider enables and rate-locks that clock, matches the vendor
driver's 40 ms delay before the first register access, initializes the
paged regmap, reports the chip revision and applies common reset. It
publishes the regmap through syscon so separately enumerated function
devices can reach their control registers through a firmware reference.
The existing external syscon registration API cannot withdraw an entry
when a removable provider unbinds. Add a managed variant which removes
the entry before the provider's regmap is released and holds the device
node reference for the entry's lifetime. Consumers remain responsible for
teardown ordering, for example through a device link.
The three patches add the AC200 binding, managed external syscon
registration and the AC200 I2C register provider.
The AC200 work builds on earlier work by Jernej Skrabec and Andre
Przywara:
https://github.com/jernejsk/linux-1/commits/ac200-v4
Public AC200 documentation is linked from:
https://linux-sunxi.org/AC200
Validation completed for v6:
- x86_64 defconfig object builds of syscon and the AC200 provider with W=1;
- dt_binding_check for the AC200 schema; and
- strict checkpatch checks with no errors and only the generic new-file
MAINTAINERS prompts.
The running-kernel and hardware results remain those from v5 because the
code is unchanged. Managed syscon registration, lookup, provider removal
and re-registration were tested on a running kernel. On an H616 board the
AC200 provider reported revision 0x101 in package 1, supplied its regmap to
the PHY consumer and correctly ordered supplier unbind/rebind through the
device link.
Assisted-by: OpenAI Codex (gpt-5.6-sol, max)
Signed-off-by: James Hilliard <james.hilliard1@xxxxxxxxx>
---
Changes in v6:
- split the MFD work from the independently mergeable networking series
- put the merge routing and shared DT design at the start of the cover letter
- rebase onto the current MFD for-mfd-next branch
- Link to v5: https://patch.msgid.link/20260809-submit-acx00-of-dynamic-v1-v5-0-bfa1f8518b28@xxxxxxxxx
---
James Hilliard (3):
dt-bindings: mfd: x-powers: Add AC200
mfd: syscon: Add managed registration for external regmaps
mfd: ac200: Add X-Powers AC200 support
.../devicetree/bindings/mfd/x-powers,ac200.yaml | 49 ++++++
drivers/mfd/Kconfig | 12 ++
drivers/mfd/Makefile | 1 +
drivers/mfd/ac200.c | 170 +++++++++++++++++++++
drivers/mfd/syscon.c | 87 ++++++++---
include/linux/mfd/syscon.h | 12 ++
6 files changed, 309 insertions(+), 22 deletions(-)
---
base-commit: ffc63a677b60247738b02a2520c6bfa740523c2b
change-id: 20260811-submit-ac200-mfd-8bad6d09e285
Best regards,
--
James Hilliard <james.hilliard1@xxxxxxxxx>