@@ -37,6 +37,9 @@ properties:
description: IRQ line for the ADC
maxItems: 1
+ interrupt-gpios:
+ description: GPIO reading the interrupt line
+
'#address-cells':
const: 1
@@ -57,7 +60,12 @@ required:
- reg
- clocks
- clock-names
- - interrupts
+
+oneOf:
+ - required:
+ - interrupts
+ - required:
+ - interrupt-gpios
patternProperties:
"^channel@([0-9]|1[0-5])$":
@@ -119,8 +127,7 @@ examples:
compatible = "adi,ad7124-4";
reg = <0>;
spi-max-frequency = <5000000>;
- interrupts = <25 2>;
- interrupt-parent = <&gpio>;
+ interrupt-gpios = <&gpio 25 2>;
refin1-supply = <&adc_vref>;
clocks = <&ad7124_mclk>;
clock-names = "mclk";
For the AD7124 chip the logical irq line (̅R̅D̅Y) is physically on the same pin as the spi MISO output (DOUT) and so reading a register might trigger an interrupt. For correct operation it's critical that the actual state of the pin can be read to judge if an interrupt event is a real one or just a spurious one triggered by toggling the line in its MISO mode. Allow specification of an "interrupt-gpios" property instead of a plain interrupt. The semantic is that the GPIO's interrupt is to be used as event source and reading the GPIO can be used to differentiate between a real event and one triggered by MISO. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com> --- .../devicetree/bindings/iio/adc/adi,ad7124.yaml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)