[PATCH 0/4] iio: adc: ade9000: add support for ADE9039
From: Antoniu Miclaus
Date: Mon Oct 12 2026 - 07:18:51 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.
Patch 4 also clears three stray characters left in the ade9000.rst
introduction by the ADE9430 merge resolution. Happy to split that out.
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 | 24 +++++++-----
drivers/iio/adc/Kconfig | 1 +
drivers/iio/adc/ade9000.c | 39 ++++++++++++++++---
4 files changed, 66 insertions(+), 27 deletions(-)
base-commit: a22dc7ebb21a6bd4c8b63bc2c1dd46a24945aae7
--
2.43.0