162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/adc/envelope-detector.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: ADC envelope detector using a DAC and a comparator
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Peter Rosin <peda@axentia.se>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  The DAC is used to find the peak level of an alternating voltage input
1462306a36Sopenharmony_ci  signal by a binary search using the output of a comparator wired to
1562306a36Sopenharmony_ci  an interrupt pin. Like so:
1662306a36Sopenharmony_ci                          _
1762306a36Sopenharmony_ci                         | \
1862306a36Sopenharmony_ci    input +------>-------|+ \
1962306a36Sopenharmony_ci                         |   \
2062306a36Sopenharmony_ci           .-------.     |    }---.
2162306a36Sopenharmony_ci           |       |     |   /    |
2262306a36Sopenharmony_ci           |    dac|-->--|- /     |
2362306a36Sopenharmony_ci           |       |     |_/      |
2462306a36Sopenharmony_ci           |       |              |
2562306a36Sopenharmony_ci           |       |              |
2662306a36Sopenharmony_ci           |    irq|------<-------'
2762306a36Sopenharmony_ci           |       |
2862306a36Sopenharmony_ci           '-------'
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciproperties:
3162306a36Sopenharmony_ci  compatible:
3262306a36Sopenharmony_ci    const: axentia,tse850-envelope-detector
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  io-channels:
3562306a36Sopenharmony_ci    maxItems: 1
3662306a36Sopenharmony_ci    description: Channel node of the dac to be used for comparator input.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  io-channel-names:
3962306a36Sopenharmony_ci    const: dac
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  interrupts:
4262306a36Sopenharmony_ci    maxItems: 1
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  interrupt-names:
4562306a36Sopenharmony_ci    const: comp
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_cirequired:
4862306a36Sopenharmony_ci  - compatible
4962306a36Sopenharmony_ci  - io-channels
5062306a36Sopenharmony_ci  - io-channel-names
5162306a36Sopenharmony_ci  - interrupts
5262306a36Sopenharmony_ci  - interrupt-names
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciadditionalProperties: false
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciexamples:
5762306a36Sopenharmony_ci  - |
5862306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
5962306a36Sopenharmony_ci    i2c {
6062306a36Sopenharmony_ci        #address-cells = <1>;
6162306a36Sopenharmony_ci        #size-cells = <0>;
6262306a36Sopenharmony_ci        dpot: dpot@28 {
6362306a36Sopenharmony_ci            compatible = "microchip,mcp4651-104";
6462306a36Sopenharmony_ci            reg = <0x28>;
6562306a36Sopenharmony_ci            #io-channel-cells = <1>;
6662306a36Sopenharmony_ci        };
6762306a36Sopenharmony_ci    };
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci    dac: dac {
7062306a36Sopenharmony_ci        compatible = "dpot-dac";
7162306a36Sopenharmony_ci        vref-supply = <&reg_3v3>;
7262306a36Sopenharmony_ci        io-channels = <&dpot 0>;
7362306a36Sopenharmony_ci        io-channel-names = "dpot";
7462306a36Sopenharmony_ci        #io-channel-cells = <1>;
7562306a36Sopenharmony_ci    };
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci    envelope-detector {
7862306a36Sopenharmony_ci        compatible = "axentia,tse850-envelope-detector";
7962306a36Sopenharmony_ci        io-channels = <&dac 0>;
8062306a36Sopenharmony_ci        io-channel-names = "dac";
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci        interrupt-parent = <&gpio>;
8362306a36Sopenharmony_ci        interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
8462306a36Sopenharmony_ci        interrupt-names = "comp";
8562306a36Sopenharmony_ci    };
8662306a36Sopenharmony_ci...
87