Hi! This driver implements support for voltage dividers and current sense shunts. It's pretty generic and should be easily adaptable to other linear scaling purposes.
Cheers, Peter Changes since v2: https://lkml.org/lkml/2018/4/3/461 - Rename from current-sence-circuit to current-sense-shunt (this should also fix all the typing problems I had with curciut). - Describe the shunt resistance directly (instead of indirectly in the form of a quotient). - Add a ->props() op to struct unit_converter_cfg to enable simple separation of properties for different converters. - Shuffle the code around to minimize forward declarations. - Drop the unused indio member from struct unit_converter. - Drop error report on iio driver registration failure. Changes since v1: https://lkml.org/lkml/2018/3/19/801 - Put the driver in the new afe category (Analog Front Ends) and do not move the iio-mux driver. - Do not refer to the source channel as "parent", use "source" instead. - Have the DT compatible drive the target unit, instead of relying on a "type" DT-property for that. - In the DT bindings, use an unnamed source channel. - Do not set up writes to _RAW (sorry Phil) as I don't need it and have not tested it. It's easy to add back if needed. - Fail if the source channel does not support _RAW or _SCALE. - Fix various spelling issues. - Fix various code style issues. Peter Rosin (2): dt-bindings: iio: afe: add current-sense-shunt and voltage-divider iio: afe: unit-converter: new driver .../bindings/iio/afe/current-sense-shunt.txt | 41 +++ .../bindings/iio/afe/voltage-divider.txt | 45 ++++ MAINTAINERS | 8 + drivers/iio/Kconfig | 1 + drivers/iio/Makefile | 1 + drivers/iio/afe/Kconfig | 18 ++ drivers/iio/afe/Makefile | 6 + drivers/iio/afe/iio-unit-converter.c | 291 +++++++++++++++++++++ 8 files changed, 411 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/afe/current-sense-shunt.txt create mode 100644 Documentation/devicetree/bindings/iio/afe/voltage-divider.txt create mode 100644 drivers/iio/afe/Kconfig create mode 100644 drivers/iio/afe/Makefile create mode 100644 drivers/iio/afe/iio-unit-converter.c -- 2.11.0