[PATCH v7 0/6] Add driver for LTC2664 and LTC2672

From: Kim Seer Paller
Date: Sun Jul 14 2024 - 09:31:39 EST


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 v7:

Bindings:
* Reverted DAC bindings to original conditional requirements.
* Added Reviewed-by tag for dac.yaml.

changes in v6:

Bindings:
* Added clarification description for output-range-microvolt property and
modified conditional logic for output-range-microvolt for ltc2664 binding.
* Simplified schema validation logic for DAC binding.
* Added Reviewed-by tag for ltc2672 binding.

changes in v5:

ltc2664:
* Removed return statement for error code in ltc2664_dac_code_read making it a
void function.
* Refactored voltage regulator error handling and logic setting for vref_mv.
* Added Reviewed-by tag.

Bindings:
* Added dac.yaml and generalized DAC common properties.
* Modified ltc2664 binding adding constraints for the adi,manual-span-operation-config
and output-range-microvolt properties.

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:
* Dropped Reviewed-by tag.
* 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 (6):
iio: ABI: Generalize ABI documentation for DAC
iio: ABI: add DAC 42kohm_to_gnd powerdown mode
dt-bindings: iio: dac: Generalize DAC common properties
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 | 181 +++++
.../bindings/iio/dac/adi,ltc2672.yaml | 160 ++++
.../devicetree/bindings/iio/dac/dac.yaml | 50 ++
MAINTAINERS | 10 +
drivers/iio/dac/Kconfig | 11 +
drivers/iio/dac/Makefile | 1 +
drivers/iio/dac/ltc2664.c | 735 ++++++++++++++++++
10 files changed, 1210 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 Documentation/devicetree/bindings/iio/dac/dac.yaml
create mode 100644 drivers/iio/dac/ltc2664.c


base-commit: 1ebab783647a9e3bf357002d5c4ff060c8474a0a
--
2.34.1