adaq4370-4 (2MSPS) and adaq4380-4 (4MSPS) are quad-channel precision data
acquisition signal chain μModule solutions compatible with the ad738x
family, with the following differences:
- pin selectable gain in front of each 4 adc
- internal reference is 3V derived from refin-supply (5V)
- additional supplies
To select the gain a new patternProperties is added to describe each
channel. It is restricted to adaq devices.
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
.../devicetree/bindings/iio/adc/adi,ad7380.yaml | 121 +++++++++++++++++++++
1 file changed, 121 insertions(+)
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml
index 0065d650882489e21b952bb9fb25f1e3a070ee68..d5eaa2d667eb4310daf0d35e85216363c14956da 100644
--- a/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml
@@ -25,6 +25,8 @@ description: |
* https://www.analog.com/en/products/ad7386-4.html
* https://www.analog.com/en/products/ad7387-4.html
* https://www.analog.com/en/products/ad7388-4.html
+ * https://www.analog.com/en/products/adaq4370-4.html
+ * https://www.analog.com/en/products/adaq4380-4.html
$ref: /schemas/spi/spi-peripheral-props.yaml#
@@ -46,6 +48,8 @@ properties:
- adi,ad7386-4
- adi,ad7387-4
- adi,ad7388-4
+ - adi,adaq4370-4
+ - adi,adaq4380-4
reg:
maxItems: 1
@@ -70,6 +74,20 @@ properties:
refin-supply:
description:
A 2.5V to 3.3V supply for external reference voltage, for ad7380-4 only.
+ For adaq devices, a 5V supply voltage. A 3.3V internal reference is
+ derived from it. Connect to vs-p-supply for normal operation.
+
+ vs-p-supply:
+ description:
+ Amplifiers positive supply.
+
+ vs-n-supply:
+ description:
+ Amplifiers negative supply.
+
+ ldo-supply:
+ description:
+ LDO supply. Connect to vs-p-supply or a 3.6 to 5.5 V supply.
aina-supply:
description:
@@ -97,12 +115,46 @@ properties:
specify the ALERT interrupt.
maxItems: 1
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
required:
- compatible
- reg
- vcc-supply
- vlogic-supply
+patternProperties:
+ "^channel@([0-3])$":
+ $ref: adc.yaml
+ type: object
+
+ properties:
+ reg:
+ description:
+ The channel number. From 0 to 3 corresponding to channels A,B,C,D
+ items:
+ minimum: 0
+ maximum: 3
+
+ adi,gain-milli:
+ description:
+ The hardware gain applied to the ADC input (in milli units).
+ If not present, default to 1000 (no actual gain applied).
+ Refer to the typical connection diagrams section of the datasheet for
+ pin wiring.
+ $ref: /schemas/types.yaml#/definitions/uint16
+ enum: [300, 600, 1000, 1600]
+ default: 1000
+
+ required:
+ - reg
+
+ additionalProperties: false
+
unevaluatedProperties: false
allOf:
@@ -140,6 +192,7 @@ allOf:
aind-supply: false
# ad7380-4 uses refin-supply as external reference.
+ # adaq devices use internal reference only, derived from refin-supply
# All other chips from ad738x family use refio as optional external reference.
# When refio-supply is omitted, internal reference is used.
- if:
@@ -147,6 +200,8 @@ allOf:
compatible:
enum:
- adi,ad7380-4
+ - adi,adaq4370-4
+ - adi,adaq4380-4
then:
properties:
refio-supply: false
@@ -156,6 +211,27 @@ allOf:
properties:
refin-supply: false
+ # adaq devices need more supplies and using channel to declare gain property
+ # only applies to adaq devices
+ - if:
+ properties:
+ compatible:
+ enum:
+ - adi,adaq4370-4
+ - adi,adaq4380-4
+ then:
+ required:
+ - vs-p-supply
+ - vs-n-supply
+ - ldo-supply
+ else:
+ properties:
+ vs-p-supply: false
+ vs-n-supply: false
+ ldo-supply: false
+ patternProperties:
+ "^channel@([0-3])$": false
+
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
@@ -180,3 +256,48 @@ examples:
refio-supply = <&supply_2_5V>;
};
};
+
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ adc@0 {
+ compatible = "adi,adaq4380-4";
+ reg = <0>;
+
+ spi-cpol;
+ spi-cpha;
+ spi-max-frequency = <80000000>;
+
+ interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-parent = <&gpio0>;
+
+ vcc-supply = <&supply_3_3V>;
+ vlogic-supply = <&supply_3_3V>;
+ refin-supply = <&supply_5V>;
+ vs-p-supply = <&supply_5V>;
+ vs-n-supply = <&supply_0V>;
+ ldo-supply = <&supply_5V>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ channel@0 {
+ reg = <0>;
+ adi,gain-milli = /bits/ 16 <300>;
+ };
+
+ channel@2 {
+ reg = <2>;
+ adi,gain-milli = /bits/ 16 <600>;
+ };
+
+ channel@3 {
+ reg = <3>;
+ adi,gain-milli = /bits/ 16 <1000>;
+ };
+ };
+ };
--
2.47.0
On Wed, Oct 23, 2024 at 11:19:33AM +0200, Julien Stephan wrote: > + vs-p-supply: > + description: > + Amplifiers positive supply. > + > + vs-n-supply: > + description: > + Amplifiers negative supply. > + > + ldo-supply: > + description: > + LDO supply. Connect to vs-p-supply or a 3.6 to 5.5 V supply. > > aina-supply: > description: > @@ -97,12 +115,46 @@ properties: > specify the ALERT interrupt. > maxItems: 1 > > + '#address-cells': If there is going to be new version/resend, then keep consistent quotes: " or '. > + const: 1 > + > + '#size-cells': > + const: 0 > + > required: > - compatible > - reg > - vcc-supply > - vlogic-supply > > +patternProperties: > + "^channel@([0-3])$": () are not necessary > + $ref: adc.yaml > + type: object > + > + properties: > + reg: > + description: > + The channel number. From 0 to 3 corresponding to channels A,B,C,D > + items: > + minimum: 0 > + maximum: 3 No improvements, no response to comment. > + > + adi,gain-milli: > + description: > + The hardware gain applied to the ADC input (in milli units). > + If not present, default to 1000 (no actual gain applied). > + Refer to the typical connection diagrams section of the datasheet for > + pin wiring. > + $ref: /schemas/types.yaml#/definitions/uint16 > + enum: [300, 600, 1000, 1600] > + default: 1000 > + > + required: > + - reg > + > + additionalProperties: false > + > unevaluatedProperties: false > > allOf: > @@ -140,6 +192,7 @@ allOf: > aind-supply: false > > # ad7380-4 uses refin-supply as external reference. > + # adaq devices use internal reference only, derived from refin-supply > # All other chips from ad738x family use refio as optional external reference. > # When refio-supply is omitted, internal reference is used. > - if: > @@ -147,6 +200,8 @@ allOf: > compatible: > enum: > - adi,ad7380-4 > + - adi,adaq4370-4 > + - adi,adaq4380-4 > then: > properties: > refio-supply: false > @@ -156,6 +211,27 @@ allOf: > properties: > refin-supply: false > > + # adaq devices need more supplies and using channel to declare gain property > + # only applies to adaq devices > + - if: > + properties: > + compatible: > + enum: > + - adi,adaq4370-4 > + - adi,adaq4380-4 > + then: > + required: > + - vs-p-supply > + - vs-n-supply > + - ldo-supply > + else: > + properties: > + vs-p-supply: false > + vs-n-supply: false > + ldo-supply: false > + patternProperties: > + "^channel@([0-3])$": false () are not necessary Best regards, Krzysztof
Le jeu. 24 oct. 2024 à 09:29, Krzysztof Kozlowski <krzk@kernel.org> a écrit : > > On Wed, Oct 23, 2024 at 11:19:33AM +0200, Julien Stephan wrote: > > + vs-p-supply: > > + description: > > + Amplifiers positive supply. > > + > > + vs-n-supply: > > + description: > > + Amplifiers negative supply. > > + > > + ldo-supply: > > + description: > > + LDO supply. Connect to vs-p-supply or a 3.6 to 5.5 V supply. > > > > aina-supply: > > description: > > @@ -97,12 +115,46 @@ properties: > > specify the ALERT interrupt. > > maxItems: 1 > > > > + '#address-cells': > > If there is going to be new version/resend, then keep consistent quotes: > " or '. > > > + const: 1 > > + > > + '#size-cells': > > + const: 0 > > + > > required: > > - compatible > > - reg > > - vcc-supply > > - vlogic-supply > > > > +patternProperties: > > + "^channel@([0-3])$": > > () are not necessary > > > + $ref: adc.yaml > > + type: object > > + > > + properties: > > + reg: > > + description: > > + The channel number. From 0 to 3 corresponding to channels A,B,C,D > > + items: > > + minimum: 0 > > + maximum: 3 > > No improvements, no response to comment. Hi Krzysztof, I am sorry, it got lost during my rebase. It was planned to be on the v2 (even added it to the changelog in the cover letter). Thank you for noticing it. I sent a v3 with all the changes. Cheers Julien > > > + > > + adi,gain-milli: > > + description: > > + The hardware gain applied to the ADC input (in milli units). > > + If not present, default to 1000 (no actual gain applied). > > + Refer to the typical connection diagrams section of the datasheet for > > + pin wiring. > > + $ref: /schemas/types.yaml#/definitions/uint16 > > + enum: [300, 600, 1000, 1600] > > + default: 1000 > > + > > + required: > > + - reg > > + > > + additionalProperties: false > > + > > unevaluatedProperties: false > > > > allOf: > > @@ -140,6 +192,7 @@ allOf: > > aind-supply: false > > > > # ad7380-4 uses refin-supply as external reference. > > + # adaq devices use internal reference only, derived from refin-supply > > # All other chips from ad738x family use refio as optional external reference. > > # When refio-supply is omitted, internal reference is used. > > - if: > > @@ -147,6 +200,8 @@ allOf: > > compatible: > > enum: > > - adi,ad7380-4 > > + - adi,adaq4370-4 > > + - adi,adaq4380-4 > > then: > > properties: > > refio-supply: false > > @@ -156,6 +211,27 @@ allOf: > > properties: > > refin-supply: false > > > > + # adaq devices need more supplies and using channel to declare gain property > > + # only applies to adaq devices > > + - if: > > + properties: > > + compatible: > > + enum: > > + - adi,adaq4370-4 > > + - adi,adaq4380-4 > > + then: > > + required: > > + - vs-p-supply > > + - vs-n-supply > > + - ldo-supply > > + else: > > + properties: > > + vs-p-supply: false > > + vs-n-supply: false > > + ldo-supply: false > > + patternProperties: > > + "^channel@([0-3])$": false > > () are not necessary > > Best regards, > Krzysztof >
© 2016 - 2024 Red Hat, Inc.