[PATCH v4 0/5] Add driver for LTC2664 and LTC2672

Kim Seer Paller
2024-06-19T06:49:53Z

Generalize the ABI documentation for DAC. The ABI defined for toggle mode
channels:

LTC2664:
* out_voltageY_toggle_en
* out_voltageY_raw0
* out_voltageY_raw1
* out_voltageY_symbol

LTC2672:
* out_currentY_toggle_en
* out_currentY_raw0
* out_currentY_raw1
* out_currentY_symbol

Default channels won't have any of the above ABIs. A channel is toggle capable
if the devicetree 'adi,toggle-mode' flag is set.

changes in v4:

ltc2664:
* Added comments for each field in the ltc2664_chan struct.
* Changed global_toggle data type to bool and updated vref and rfsadj variables
to include units.
* Added 0,0 entry in ltc2672_span_helper to removed the id field from the
ltc2664_chip_info struct.
* Used mul_u64_u32_div helper function from linux/math64.h to avoid integer
overflow during scale calculation.
* Refactored code to use a single template for channel instead of separate
channel arrays.
* Used the devm_regulator_get_enable_read_voltage API for simplifying voltage
retrieval.

ABI:
sysfs-bus-iio:
* Added commit message for the ABI changes.
sysfs-bus-iio-dac:
* Updated the description of toggle_en to clarify autonomous toggling.
* Fixed inconsistent use of spacing and tabs.

Bindings:
* Updated the description for both bindings to include both 12-bit and 16-bit
versions.

changes in v3:

ltc2664:
* Added span sanity check for no match.
* Initialized the variable 'span' to fix build warning.
* Added Reported-by and Closes by tag.

ABI:
* Modified descriptions to make it more generalize.
* Removed MAINTAINERS file entry.

Bindings:
* Changed clr-gpios to reset-gpios.
* Added output range and reset code description for 'adi,manual-span-operation-config'
property in ltc2664 binding.
* Removed the $ref for 'adi,output-range-microamp' due to dt-schema warning
in ltc2672 binding. Added Reported-by and Closes by tag.
* Modified io-channels description and added maxItems constraint.

changes in v2:

ltc2664:
* Updated struct ltc2664_chip_info to include device-specific data for scale,
offset, measurement type, internal vref, manual span support, and rfsadj
support.
* Added a read-only extended info attribute powerdown_mode to indicate the
state that the DAC output enters when the device is powered down.
* Refactored code for setting the span into separate function and directly
returning the span.
* Adjusted memory allocation for st->iio_channels to include null terminator.
* Spaces have been added after { and before }. Each pair of values is now
placed on a separate line.

ABI:
* Generalized the ABI documentation for DAC.
* Added DAC 42kohm_to_gnd powerdown mode.

Bindings:
* Created separate bindings for ltc2664 and ltc2672.
* Added v-pos-supply and v-neg-supply regulator properties.
* Renamed vref-supply to ref-supply based on the datasheet.
* Added io-channels property and specifying the pin for multiplexer output.
* Added vdd0-vdd4 supply properties for ltc2672, although they are not
currently supported in the driver.
* Changed clr-gpios description based on the datasheet.
* Used 4 spaces for example indentation.

Kim Seer Paller (5):
iio: ABI: Generalize ABI documentation for DAC
iio: ABI: add DAC 42kohm_to_gnd powerdown mode
dt-bindings: iio: dac: Add adi,ltc2664.yaml
dt-bindings: iio: dac: Add adi,ltc2672.yaml
iio: dac: ltc2664: Add driver for LTC2664 and LTC2672

Documentation/ABI/testing/sysfs-bus-iio | 1 +
Documentation/ABI/testing/sysfs-bus-iio-dac | 61 ++
.../ABI/testing/sysfs-bus-iio-dac-ltc2688 | 31 -
.../bindings/iio/dac/adi,ltc2664.yaml | 167 ++++
.../bindings/iio/dac/adi,ltc2672.yaml | 158 ++++
MAINTAINERS | 10 +
drivers/iio/dac/Kconfig | 11 +
drivers/iio/dac/Makefile | 1 +
drivers/iio/dac/ltc2664.c | 755 ++++++++++++++++++
9 files changed, 1164 insertions(+), 31 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-dac
create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml
create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml
create mode 100644 drivers/iio/dac/ltc2664.c

base-commit: 07d4d0bb4a8ddcc463ed599b22f510d5926c2495
--
2.34.1