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

Sai Krishna Potthuri posted 4 patches 1 week, 4 days ago
.../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
[PATCH v2 0/4] iio: adc: xilinx-xadc: Add I2C interface support for System Management Wizard
Posted by Sai Krishna Potthuri 1 week, 4 days ago
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