@@ -62,20 +62,19 @@ required:
- interrupts
patternProperties:
- "^channel@([0-9]|1[0-5])$":
- $ref: "adc.yaml"
+ "^config@(2[0-7])$":
type: object
description: |
- Represents the external channels which are connected to the ADC.
+ Represents a channel configuration.
+ See Documentation/devicetree/bindings/iio/adc/adc.txt.
properties:
reg:
description: |
- The channel number. It can have up to 8 channels on ad7124-4
- and 16 channels on ad7124-8, numbered from 0 to 15.
+ The config number. It can have up to 8 configuration.
items:
- minimum: 0
- maximum: 15
+ minimum: 20
+ maximum: 27
adi,reference-select:
description: |
@@ -88,8 +87,6 @@ patternProperties:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 3]
- diff-channels: true
-
bipolar: true
adi,buffered-positive:
@@ -100,6 +97,35 @@ patternProperties:
description: Enable buffered mode for negative input.
type: boolean
+ additionalProperties: false
+
+ "^channel@([0-9]|1[0-5])$":
+ type: object
+ description: |
+ Represents the external channels which are connected to the ADC.
+ See Documentation/devicetree/bindings/iio/adc/adc.txt.
+
+ properties:
+ reg:
+ description: |
+ The channel number. It can have up to 8 channels on ad7124-4
+ and 16 channels on ad7124-8, numbered from 0 to 15.
+ items:
+ minimum: 0
+ maximum: 15
+
+ diff-channels: true
+
+ adi,configuration:
+ description: |
+ The devices has 8 configuration and ad7124-8 support up to 16 unipolar channels.
+ Each channel can be assigned one configuration. Some channels will be sharing the
+ same configuration.
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 20
+ maximum: 27
+
required:
- reg
- diff-channels
@@ -127,30 +153,46 @@ examples:
#address-cells = <1>;
#size-cells = <0>;
- channel@0 {
- reg = <0>;
- diff-channels = <0 1>;
+ config@20 {
+ reg = <20>;
adi,reference-select = <0>;
adi,buffered-positive;
};
- channel@1 {
- reg = <1>;
+ config@21 {
+ reg = <21>;
bipolar;
- diff-channels = <2 3>;
adi,reference-select = <0>;
adi,buffered-positive;
adi,buffered-negative;
};
+ config@22 {
+ reg = <22>;
+ };
+
+ channel@0 {
+ reg = <0>;
+ diff-channels = <0 1>;
+ adi,configuration = <20>;
+ };
+
+ channel@1 {
+ reg = <1>;
+ diff-channels = <2 3>;
+ adi,configuration = <21>;
+ };
+
channel@2 {
reg = <2>;
diff-channels = <4 5>;
+ adi,configuration = <22>;
};
channel@3 {
reg = <3>;
diff-channels = <6 7>;
+ adi,configuration = <22>;
};
};
};