Add device tree documentation for AD4000 series of ADC devices. Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ad4000-4004-4008.pdf Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ad4001-4005.pdf Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ad4002-4006-4010.pdf Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ad4003-4007-4011.pdf Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ad4020-4021-4022.pdf Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4001.pdf Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4003.pdf Signed-off-by: Marcelo Schmitt <marcelo.schmitt@xxxxxxxxxx> --- Pasting relevant comment from cover letter here to aid reviewers. These devices have the same SPI (Strange Peripheral Interface) as AD7944 devices, which has been documented in ad7944.rst [1]. The device tree description for SPI connections and mode can be the same as of ad7944 adi,spi-mode [2]. Because ad4000 driver does not currently support daisy-chain mode, I simplified things a little bit. If having a more complete doc is preferred, I'm fine changing to that. [1]: https://lore.kernel.org/linux-iio/20240313-mainline-ad7944-doc-v1-2-7860416726e4@xxxxxxxxxxxx/ [2]: https://lore.kernel.org/linux-iio/20240304-ad7944-mainline-v5-1-f0a38cea8901@xxxxxxxxxxxx/ .../bindings/iio/adc/adi,ad4000.yaml | 151 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 158 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml new file mode 100644 index 000000000000..9e3d6a3920ea --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml @@ -0,0 +1,151 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/adc/adi,ad4000.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices AD4000 ADC device driver + +maintainers: + - Marcelo Schmitt <marcelo.schmitt@xxxxxxxxxx> + +description: | + Analog Devices AD4000 family of Analog to Digital Converters with SPI support. + Specifications can be found at: + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4000-4004-4008.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4001-4005.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4002-4006-4010.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4003-4007-4011.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4020-4021-4022.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4001.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4003.pdf + +properties: + compatible: + enum: + - adi,ad4000 + - adi,ad4001 + - adi,ad4002 + - adi,ad4003 + - adi,ad4004 + - adi,ad4005 + - adi,ad4006 + - adi,ad4007 + - adi,ad4008 + - adi,ad4010 + - adi,ad4011 + - adi,ad4020 + - adi,ad4021 + - adi,ad4022 + - adi,adaq4001 + - adi,adaq4003 + + reg: true + spi-max-frequency: true + + vref-supply: + description: Phandle to the regulator for ADC reference voltage. + + adi,gain-milli: + description: | + The hardware gain applied to the ADC input (in milli units). + The gain provided by the ADC input scaler is defined by the hardware + connections between chip pins OUT+, R1K-, R1K1-, R1K+, R1K1+, and OUT-. + If not present, default to 1000 (no actual gain applied). + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [454, 909, 1000, 1900] + default: 1000 + + adi,spi-cs-mode: + type: boolean + description: | + This property indicates the SPI wiring configuration. + + When this property is omitted, it indicates that the device SDI pin is + connected to SPI controller CS line and device CNV pin has been connected + to a GPIO. Datasheets call this "4-wire mode". + + When this property is present, the driver must assume standard SPI + connections which, for these devices, consists of connecting the + controller CS line to device CNV pin. This configuration is + (misleadingly) called "3-wire mode" in datasheets. + + cnv-gpios: + description: The GPIO connected to the CNV pin. + maxItems: 1 + +patternProperties: + "^channel@([0-1])$": + $ref: adc.yaml + type: object + description: Represents the external channel connected to the ADC. + + properties: + reg: + maxItems: 1 + + diff-channels: true + + required: + - reg + + additionalProperties: false + +required: + - compatible + - reg + - vref-supply + +allOf: + - $ref: /schemas/spi/spi-peripheral-props.yaml# + + - if: + properties: + adi,spi-cs-mode: false + then: + required: + - cnv-gpios + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + spi { + #address-cells = <1>; + #size-cells = <0>; + /* Example for a AD4000 devices */ + adc@0 { + compatible = "adi,ad4020"; + reg = <0>; + spi-max-frequency = <71000000>; + vref-supply = <&vref>; + cnv-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH>; + #address-cells = <1>; + #size-cells = <0>; + channel@0 { + reg = <0>; + diff-channels = <0 1>; + }; + }; + }; + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + /* Example for a ADAQ4000 devices */ + adc@0 { + compatible = "adi,adaq4003"; + reg = <0>; + spi-max-frequency = <80000000>; + vref-supply = <&vref>; + adi,spi-cs-mode; + adi,gain-milli = <454>; + #address-cells = <1>; + #size-cells = <0>; + channel@0 { + reg = <0>; + diff-channels = <0 1>; + }; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 2662ec49b297..3ca90f842298 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1135,6 +1135,13 @@ W: https://ez.analog.com/linux-software-drivers F: Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml F: drivers/iio/dac/ad3552r.c +ANALOG DEVICES INC AD4000 DRIVER +M: Marcelo Schmitt <marcelo.schmitt@xxxxxxxxxx> +L: linux-iio@xxxxxxxxxxxxxxx +S: Supported +W: https://ez.analog.com/linux-software-drivers +F: Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml + ANALOG DEVICES INC AD4130 DRIVER M: Cosmin Tanislav <cosmin.tanislav@xxxxxxxxxx> L: linux-iio@xxxxxxxxxxxxxxx -- 2.43.0