[PATCH v3 6/7] dt-bindings: iio: adc: add adi,ltc2387
From: Nicolae-Daniel Deaconescu
Date: Fri Nov 06 2026 - 11:06:14 EST
From: Sergiu Cuciurean <sergiu.cuciurean@xxxxxxxxxx>
Add a binding for the LTC2387-16, LTC2387-18, ADAQ23875, ADAQ23876 and
ADAQ23878. They are single channel differential ADCs, read like the AD762x
and AD796x: two PWMs drive CNV and CLK, and an AXI ADC captures the LVDS
data. A separate binding fits, as few properties of those parts apply:
- Output is double data rate on one or two lanes, selected by the TWOLANES
pin, described by adi,use-two-lanes.
- No EN pins, no clocks property: the PWM provider reports the clock its
waveforms derive from. The second PWM is named clk, after the pin it
drives.
- Supplies are VDD, VDDL and OVDD on the LTC2387, VDD, VIO, VS+ and VS- on
the ADAQ modules.
- The ADAQ modules have a fully differential amplifier ahead of the ADC.
Gain is fixed on the ADAQ23875, pin strapped on the ADAQ23876 and
ADAQ23878, described by adi,gain-milli.
The devicetree describes gain, as the strapping can't be read from the
part. No fallback compatible: a driver for an AD762x or AD796x part would
read these wrongly, as their output is double data rate with other timing
limits.
Add the binding to the maintainers entry of the AD7625 driver.
Signed-off-by: Sergiu Cuciurean <sergiu.cuciurean@xxxxxxxxxx>
Co-developed-by: Nicolae-Daniel Deaconescu <Nicolae-daniel.Deaconescu@xxxxxxxxxx>
Signed-off-by: Nicolae-Daniel Deaconescu <Nicolae-daniel.Deaconescu@xxxxxxxxxx>
---
.../bindings/iio/adc/adi,ltc2387.yaml | 169 ++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 170 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ltc2387.yaml
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ltc2387.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ltc2387.yaml
new file mode 100644
index 000000000000..f0f1071fd96d
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ltc2387.yaml
@@ -0,0 +1,169 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ltc2387.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices LTC2387 and ADAQ2387x Analog to Digital Converters
+
+maintainers:
+ - Nicolae-Daniel Deaconescu <Nicolae-daniel.Deaconescu@xxxxxxxxxx>
+ - Sergiu Cuciurean <sergiu.cuciurean@xxxxxxxxxx>
+
+description: |
+ Single channel differential 15 MSPS SAR analog to digital converters with an
+ LVDS interface, and the ADAQ uModule data acquisition systems that put a
+ fully differential amplifier in front of the LTC2387 die.
+
+ * https://www.analog.com/en/products/adaq23875.html
+ * https://www.analog.com/en/products/adaq23876.html
+ * https://www.analog.com/en/products/adaq23878.html
+ * https://www.analog.com/en/products/ltc2387-16.html
+ * https://www.analog.com/en/products/ltc2387-18.html
+
+properties:
+ compatible:
+ enum:
+ - adi,adaq23875
+ - adi,adaq23876
+ - adi,adaq23878
+ - adi,ltc2387-16
+ - adi,ltc2387-18
+
+ vdd-supply:
+ description: 5V analog power supply (VDD).
+
+ vddl-supply:
+ description: 2.5V analog power supply (VDDL), LTC2387 parts only.
+
+ ovdd-supply:
+ description: 2.5V output power supply (OVDD), LTC2387 parts only.
+
+ vio-supply:
+ description: 2.5V digital supply (VIO), ADAQ parts only.
+
+ vs-p-supply:
+ description: Amplifier positive supply (VS+), ADAQ parts only.
+
+ vs-n-supply:
+ description:
+ Amplifier negative supply (VS-), ADAQ parts only. Leave it out if VS-
+ is tied to ground.
+
+ ref-supply:
+ description:
+ Voltage regulator for the external reference voltage on REFBUF. If it
+ is not present, the internal reference is used.
+
+ pwms:
+ items:
+ - description: PWM connected to the CNV input on the ADC.
+ - description:
+ PWM that gates the clock connected to the ADC's CLK input, so that
+ it sees the burst of pulses for each conversion.
+
+ pwm-names:
+ items:
+ - const: cnv
+ - const: clk
+
+ io-backends:
+ description:
+ The AXI ADC IP block connected to the DA+/- and DB+/- data lines and
+ the DCO+/- lines of the ADC.
+ maxItems: 1
+
+ adi,use-two-lanes:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description:
+ Describes whether the TWOLANES pin is set high, selecting two-lane LVDS
+ output, or low, selecting one-lane output (the default).
+
+ adi,gain-milli:
+ description:
+ Gain of the fully-differential amplifier that the ADAQ modules
+ integrate ahead of the LTC2387 die, expressed as gain * 1000. It is
+ set by pin strapping on the ADAQ23876 and ADAQ23878, so it must match
+ the board. Not allowed on the ADAQ23875, whose gain is fixed at 2, or
+ on the LTC2387.
+ $ref: /schemas/types.yaml#/definitions/uint16
+ enum: [370, 730, 870, 1380, 2250]
+
+required:
+ - compatible
+ - pwms
+ - pwm-names
+ - io-backends
+ - vdd-supply
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - adi,ltc2387-16
+ - adi,ltc2387-18
+ then:
+ properties:
+ vio-supply: false
+ vs-p-supply: false
+ vs-n-supply: false
+ adi,gain-milli: false
+ required:
+ - vddl-supply
+ - ovdd-supply
+ else:
+ properties:
+ vddl-supply: false
+ ovdd-supply: false
+ required:
+ - vio-supply
+ - vs-p-supply
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: adi,adaq23875
+ then:
+ properties:
+ adi,gain-milli: false
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - adi,adaq23876
+ - adi,adaq23878
+ then:
+ required:
+ - adi,gain-milli
+
+additionalProperties: false
+
+examples:
+ - |
+ adc {
+ compatible = "adi,ltc2387-16";
+ io-backends = <&axi_adc>;
+ ovdd-supply = <&supply_2_5V>;
+ pwms = <&axi_pwm_gen 0 0 0>, <&axi_pwm_gen 1 0 0>;
+ pwm-names = "cnv", "clk";
+ ref-supply = <&supply_4_096V>;
+ vdd-supply = <&supply_5V>;
+ vddl-supply = <&supply_2_5V>;
+ };
+ - |
+ adc {
+ compatible = "adi,adaq23878";
+ io-backends = <&axi_adc>;
+ pwms = <&axi_pwm_gen 0 0 0>, <&axi_pwm_gen 1 0 0>;
+ pwm-names = "cnv", "clk";
+ vdd-supply = <&supply_5V>;
+ vio-supply = <&supply_2_5V>;
+ vs-p-supply = <&supply_5V>;
+ adi,gain-milli = /bits/ 16 <870>;
+ adi,use-two-lanes;
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 52024397dc78..9d07f1f47c6f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1658,6 +1658,7 @@ S: Supported
W: https://ez.analog.com/linux-software-drivers
W: http://analogdevicesinc.github.io/hdl/projects/pulsar_lvds/index.html
F: Documentation/devicetree/bindings/iio/adc/adi,ad7625.yaml
+F: Documentation/devicetree/bindings/iio/adc/adi,ltc2387.yaml
F: Documentation/iio/ad7625.rst
F: drivers/iio/adc/ad7625.c
--
2.56.0