[PATCH v2 0/4] iio: adc: ade9000: add support for ADE9039

From: Antoniu Miclaus

Date: Thu Oct 22 2026 - 07:19:00 EST


Add support for the ADE9039, a polyphase energy monitoring device in the
ADE9000 family. It is register compatible with the ADE9000 for every
register the driver touches. The differences that matter here are:

- full-scale codes match the ADE9078, not the ADE9000;
- dip/swell detection and the digital integrator are both present;
- there is no total reactive power: no AVAR at 0x211, no AVAROS at
0x010, only the fundamental AFVAR and AFVAROS;
- maximum SPI clock is 10 MHz, as on the ADE9078.

It is the first part needing dip/swell present together with total
reactive power absent, which the channel-array macro could not express.
Patch 1 adds a second selector argument for the reactive power entry; it
is a no-op for the existing parts, with the preprocessed ade9000_channels
and ade9078_channels tables byte identical before and after.

The missing total reactive power channel is omitted rather than
repointed at AFVAR, which would make in_power[0-2]_reactive_raw mean
total power on the ADE9000 and fundamental power on the ADE9039 with no
IIO modifier to tell them apart. The fundamental reactive energy
channels are unaffected.

Changes in v2:
- List the ADE9039 in numeric part order everywhere it appears: the
binding title, description and datasheet links, the driver's channel
declarations, chip_info definitions, SPI and OF ID tables and Kconfig
help text, and the documentation title and datasheet links.
- Spell out in patch 2 why a fallback to adi,ade9000 is not usable for
this part.
- Turn the ade9000.rst introduction into a bullet list so that adding
the next part to the family does not reflow the paragraph.
- Picked up the review tags from v1.

v1: https://lore.kernel.org/linux-iio/20261012111342.48040-1-antoniu.miclaus@xxxxxxxxxx/

Antoniu Miclaus (4):
iio: adc: ade9000: parameterise the reactive power channel
dt-bindings: iio: adc: adi,ade9000: add adi,ade9039 compatible
iio: adc: ade9000: add support for ADE9039
docs: iio: ade9000: document ADE9039 support

.../bindings/iio/adc/adi,ade9000.yaml | 29 ++++++++------
Documentation/iio/ade9000.rst | 29 +++++++++-----
drivers/iio/adc/Kconfig | 1 +
drivers/iio/adc/ade9000.c | 39 ++++++++++++++++---
4 files changed, 71 insertions(+), 27 deletions(-)


base-commit: 43ffda3c7f8456bbe641ae8249a077a361b97880
--
2.43.0