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