mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-05 11:53:41 +00:00

For the AD7124 chip and some of its cousins the logical irq line (R̅D̅Y̅) is physically on the same pin as the spi MISO output (DOUT) and so reading a register might trigger an interrupt. For correct operation it's critical that the actual state of the pin can be read to judge if an interrupt event is a real one or just a spurious one triggered by toggling the line in its MISO mode. Allow specification of an "rdy-gpios" property that references a GPIO that can be used for that purpose. While this is typically the same GPIO also used (implicitly) as interrupt source, it is still supposed that the interrupt is specified as before and usual. Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com> Link: https://patch.msgid.link/7fc92a8539e55802d514332e70ee836a3ed08b66.1733504533.git.u.kleine-koenig@baylibre.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
100 lines
3.0 KiB
YAML
100 lines
3.0 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/iio/adc/adi,ad7780.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Analog Devices AD7170/AD7171/AD7780/AD7781 analog to digital converters
|
|
|
|
maintainers:
|
|
- Michael Hennerich <michael.hennerich@analog.com>
|
|
|
|
description: |
|
|
The ad7780 is a sigma-delta analog to digital converter. This driver provides
|
|
reading voltage values and status bits from both the ad778x and ad717x series.
|
|
Its interface also allows writing on the FILTER and GAIN GPIO pins on the
|
|
ad778x.
|
|
|
|
Specifications on the converters can be found at:
|
|
AD7170:
|
|
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7170.pdf
|
|
AD7171:
|
|
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7171.pdf
|
|
AD7780:
|
|
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7780.pdf
|
|
AD7781:
|
|
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7781.pdf
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- adi,ad7170
|
|
- adi,ad7171
|
|
- adi,ad7780
|
|
- adi,ad7781
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
avdd-supply:
|
|
description:
|
|
The regulator supply for the ADC reference voltage.
|
|
|
|
powerdown-gpios:
|
|
description:
|
|
Must be the device tree identifier of the PDRST pin. If
|
|
specified, it will be asserted during driver probe. As the
|
|
line is active high, it should be marked GPIO_ACTIVE_HIGH.
|
|
maxItems: 1
|
|
|
|
adi,gain-gpios:
|
|
description:
|
|
Must be the device tree identifier of the GAIN pin. Only for
|
|
the ad778x chips. If specified, it will be asserted during
|
|
driver probe. As the line is active low, it should be marked
|
|
GPIO_ACTIVE_LOW.
|
|
maxItems: 1
|
|
|
|
adi,filter-gpios:
|
|
description:
|
|
Must be the device tree identifier of the FILTER pin. Only
|
|
for the ad778x chips. If specified, it will be asserted
|
|
during driver probe. As the line is active low, it should be
|
|
marked GPIO_ACTIVE_LOW.
|
|
maxItems: 1
|
|
|
|
rdy-gpios:
|
|
description:
|
|
GPIO reading the R̅D̅Y̅ line. Having such a GPIO is technically optional but
|
|
highly recommended because DOUT/R̅D̅Y̅ toggles during SPI transfers (in its
|
|
DOUT aka MISO role) and so usually triggers a spurious interrupt. The
|
|
distinction between such a spurious event and a real one can only be done
|
|
by reading such a GPIO. (There is a register telling the same
|
|
information, but accessing that one needs a SPI transfer which then
|
|
triggers another interrupt event.)
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
spi {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
adc@0 {
|
|
compatible = "adi,ad7780";
|
|
reg = <0>;
|
|
|
|
avdd-supply = <&vdd_supply>;
|
|
powerdown-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
|
adi,gain-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
|
|
adi,filter-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|