[PATCH 0/3] Add ADE9078 Driver

From: chegbeli
Date: Thu Feb 17 2022 - 08:52:13 EST


The ADE9078 is a highly accurate, fully integrated energy metering
device. It allows the monitoring of three independent phases
simultaneously, by using seven high performances ADCs and a flexible
DSP core for a fixed fundamental signal frequency.

Datasheet:
www.analog.com/media/en/technical-documentation/data-sheets/ADE9078.pdf

NOTE:
Given the unique nature of this type of ADC a new sub-folder has been
created in the driver/iio/ section. This folder would serve as a
location for energy meters.

This series of patches provide an initial implementation of the
driver with access from the userspace to the:
- For each active phase from the device tree:
- Current (read raw, read scale, set hwgain)
- Voltage (read raw, read scale, set hwgain)
- Current RMS (read raw, read scale, set offset)
- Voltage RMS (read raw, read scale, set offset)
- Active Power (read raw, read scale, set hwgain, set offset)
- Reactive Power (read raw, read scale, set offset)
- Apparent Power (read raw, read scale)
- Fundamental Active Power (read raw, read scale, set offset)
- Apparent Power (read raw, read scale)
- Event control for zero-crossing events on Voltage and Current
- Buffer implementation for read out of the internal FIFO

chegbeli (3):
iio: add meter subdirectory
dt-bindings: iio: add ADE9078
iio: meter: add ADE9078 driver

.../bindings/iio/meter/adi,ade9078.yaml | 153 ++
MAINTAINERS | 8 +
drivers/iio/Kconfig | 1 +
drivers/iio/Makefile | 1 +
drivers/iio/meter/Kconfig | 22 +
drivers/iio/meter/Makefile | 7 +
drivers/iio/meter/ade9078.c | 1666 +++++++++++++++++
include/dt-bindings/iio/meter/adi,ade9078.h | 21 +
8 files changed, 1879 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/meter/adi,ade9078.yaml
create mode 100644 drivers/iio/meter/Kconfig
create mode 100644 drivers/iio/meter/Makefile
create mode 100644 drivers/iio/meter/ade9078.c
create mode 100644 include/dt-bindings/iio/meter/adi,ade9078.h

--
2.34.1