[PATCH v2 0/4] iio: adc: xilinx-xadc: Add I2C interface support for System Management Wizard

From: Sai Krishna Potthuri

Date: Mon Mar 23 2026 - 03:46:35 EST


The existing driver only supported AXI memory-mapped access to the System
Management Wizard IP. This series extends the driver to support I2C-based
access, which is particularly useful for System Controller usecases.

Key Changes:
- Split the xilinx-xadc-core.c file into two files(xilinx-xadc-core.c and
xilinx-xadc-platform.c)
- Add required helper functions and callbacks
- Add channel configuration via callback mechanism
- New I2C driver for UltraScale+ System Management Wizard for basic
voltage and temperature monitoring
- Converted text binding to YAML schema format

Note: We are working on x86 platform support where fixed channel
configuration is used(no DT support). The .setup_channels() function
pointer introduced in patch 2/4 enables different channel configuration
approaches for various platforms.

Changes in v2:
-> 1/4 - Split the xilinx-xadc-core.c file into two files
xilinx-xadc-core.c and xilinx-xadc-platform.c(comments from Andy).
-> 2/4 - Referred as .setup_channels instead of setup_channels.
-> 3/4 - Created separate functions for i2c read and write.
- Created separate file for i2c interface handling.
-> 4/4(comments from Krzysztof)
- Removed $defs and use it directly under xlnx,channels.
- Documented the error information in the commit message due to
vendor prefix properties.
- Kept only one example as there is not much differences.


Sai Krishna Potthuri (4):
iio: adc: xilinx-xadc: Split driver into core and platform files
iio: adc: xilinx-xadc: Add .setup_channels() to struct xadc_ops
iio: adc: xilinx-xadc: Add I2C interface support
dt-bindings: iio: adc: xlnx,axi-xadc: convert to DT schema

.../bindings/iio/adc/xilinx-xadc.txt | 141 ---
.../bindings/iio/adc/xlnx,axi-xadc.yaml | 154 ++++
drivers/iio/adc/Kconfig | 23 +-
drivers/iio/adc/Makefile | 6 +-
drivers/iio/adc/xilinx-xadc-core.c | 814 +++---------------
drivers/iio/adc/xilinx-xadc-i2c.c | 215 +++++
drivers/iio/adc/xilinx-xadc-platform.c | 668 ++++++++++++++
drivers/iio/adc/xilinx-xadc.h | 33 +
8 files changed, 1193 insertions(+), 861 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
create mode 100644 Documentation/devicetree/bindings/iio/adc/xlnx,axi-xadc.yaml
create mode 100644 drivers/iio/adc/xilinx-xadc-i2c.c
create mode 100644 drivers/iio/adc/xilinx-xadc-platform.c

--
2.25.1