1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/adc/envelope-detector.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ADC envelope detector using a DAC and a comparator
8
9maintainers:
10  - Peter Rosin <peda@axentia.se>
11
12description: |
13  The DAC is used to find the peak level of an alternating voltage input
14  signal by a binary search using the output of a comparator wired to
15  an interrupt pin. Like so:
16                          _
17                         | \
18    input +------>-------|+ \
19                         |   \
20           .-------.     |    }---.
21           |       |     |   /    |
22           |    dac|-->--|- /     |
23           |       |     |_/      |
24           |       |              |
25           |       |              |
26           |    irq|------<-------'
27           |       |
28           '-------'
29
30properties:
31  compatible:
32    const: axentia,tse850-envelope-detector
33
34  io-channels:
35    maxItems: 1
36    description: Channel node of the dac to be used for comparator input.
37
38  io-channel-names:
39    const: dac
40
41  interrupts:
42    maxItems: 1
43
44  interrupt-names:
45    const: comp
46
47required:
48  - compatible
49  - io-channels
50  - io-channel-names
51  - interrupts
52  - interrupt-names
53
54additionalProperties: false
55
56examples:
57  - |
58    #include <dt-bindings/interrupt-controller/irq.h>
59    i2c {
60        #address-cells = <1>;
61        #size-cells = <0>;
62        dpot: dpot@28 {
63            compatible = "microchip,mcp4651-104";
64            reg = <0x28>;
65            #io-channel-cells = <1>;
66        };
67    };
68
69    dac: dac {
70        compatible = "dpot-dac";
71        vref-supply = <&reg_3v3>;
72        io-channels = <&dpot 0>;
73        io-channel-names = "dpot";
74        #io-channel-cells = <1>;
75    };
76
77    envelope-detector {
78        compatible = "axentia,tse850-envelope-detector";
79        io-channels = <&dac 0>;
80        io-channel-names = "dac";
81
82        interrupt-parent = <&gpio>;
83        interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
84        interrupt-names = "comp";
85    };
86...
87