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.
|
assumed that the pins are hardwired to VDD.
|
||||||
type: boolean
|
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:
|
patternProperties:
|
||||||
"^channel@[1-8]$":
|
"^channel@[1-8]$":
|
||||||
type: object
|
type: object
|
||||||
@ -175,12 +198,22 @@ required:
|
|||||||
- reg
|
- reg
|
||||||
- avcc-supply
|
- avcc-supply
|
||||||
- vdrive-supply
|
- vdrive-supply
|
||||||
- interrupts
|
|
||||||
- adi,conversion-start-gpios
|
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
|
- oneOf:
|
||||||
|
- required:
|
||||||
|
- adi,conversion-start-gpios
|
||||||
|
- required:
|
||||||
|
- pwms
|
||||||
|
|
||||||
|
- oneOf:
|
||||||
|
- required:
|
||||||
|
- interrupts
|
||||||
|
- required:
|
||||||
|
- io-backends
|
||||||
|
|
||||||
- if:
|
- if:
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
@ -222,6 +255,10 @@ allOf:
|
|||||||
adi,sw-mode: false
|
adi,sw-mode: false
|
||||||
else:
|
else:
|
||||||
properties:
|
properties:
|
||||||
|
pwms:
|
||||||
|
maxItems: 1
|
||||||
|
pwm-names:
|
||||||
|
maxItems: 1
|
||||||
adi,conversion-start-gpios:
|
adi,conversion-start-gpios:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
@ -247,6 +284,29 @@ allOf:
|
|||||||
unevaluatedProperties: false
|
unevaluatedProperties: false
|
||||||
|
|
||||||
examples:
|
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/gpio/gpio.h>
|
||||||
#include <dt-bindings/interrupt-controller/irq.h>
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user