mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-06 21:14:18 +00:00
dt-bindings: iio: adc: ad7606: Add iio backend bindings
Add the required properties for iio-backend support, as well as an example and the conditions to mutually exclude interruption and conversion trigger with iio-backend. The iio-backend's function is to controls the communication, and thus the interruption pin won't be available anymore. As a consequence, the conversion pin must be controlled externally since we will miss information about when every single conversion cycle (i.e conversion + data transfer) ends, hence a PWM is introduced to trigger the conversions. Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Guillaume Stols <gstols@baylibre.com> Link: https://patch.msgid.link/20241015-ad7606_add_iio_backend_support-v5-2-654faf1ae08c@baylibre.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
0874763642
commit
7c2357b104
@ -129,6 +129,29 @@ properties:
|
||||
assumed that the pins are hardwired to VDD.
|
||||
type: boolean
|
||||
|
||||
pwms:
|
||||
description:
|
||||
In case the conversion is triggered by a PWM instead of a GPIO plugged to
|
||||
the CONVST pin, the PWM must be referenced.
|
||||
The first is the PWM connected to CONVST or CONVST1 for the chips with the
|
||||
2nd PWM connected to CONVST2, if CONVST2 is available and not shorted to
|
||||
CONVST1.
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
pwm-names:
|
||||
items:
|
||||
- const: convst1
|
||||
- const: convst2
|
||||
|
||||
io-backends:
|
||||
description:
|
||||
A reference to the iio-backend, which is responsible handling the BUSY
|
||||
pin's falling edge and communication.
|
||||
An example of backend can be found at
|
||||
http://analogdevicesinc.github.io/hdl/library/axi_ad7606x/index.html
|
||||
|
||||
|
||||
patternProperties:
|
||||
"^channel@[1-8]$":
|
||||
type: object
|
||||
@ -175,12 +198,22 @@ required:
|
||||
- reg
|
||||
- avcc-supply
|
||||
- vdrive-supply
|
||||
- interrupts
|
||||
- adi,conversion-start-gpios
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
- oneOf:
|
||||
- required:
|
||||
- adi,conversion-start-gpios
|
||||
- required:
|
||||
- pwms
|
||||
|
||||
- oneOf:
|
||||
- required:
|
||||
- interrupts
|
||||
- required:
|
||||
- io-backends
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -222,6 +255,10 @@ allOf:
|
||||
adi,sw-mode: false
|
||||
else:
|
||||
properties:
|
||||
pwms:
|
||||
maxItems: 1
|
||||
pwm-names:
|
||||
maxItems: 1
|
||||
adi,conversion-start-gpios:
|
||||
maxItems: 1
|
||||
|
||||
@ -247,6 +284,29 @@ allOf:
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
iio-backend {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
adi_adc@0 {
|
||||
compatible = "adi,ad7606b";
|
||||
reg = <0>;
|
||||
pwms = <&axi_pwm_gen 0 0>;
|
||||
|
||||
avcc-supply = <&adc_vref>;
|
||||
vdrive-supply = <&vdd_supply>;
|
||||
|
||||
reset-gpios = <&gpio0 91 GPIO_ACTIVE_HIGH>;
|
||||
standby-gpios = <&gpio0 90 GPIO_ACTIVE_LOW>;
|
||||
adi,range-gpios = <&gpio0 89 GPIO_ACTIVE_HIGH>;
|
||||
adi,oversampling-ratio-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH
|
||||
&gpio0 87 GPIO_ACTIVE_HIGH
|
||||
&gpio0 86 GPIO_ACTIVE_HIGH>;
|
||||
io-backends = <&iio_backend>;
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
Loading…
Reference in New Issue
Block a user