Message ID | 20231208-ad7380-mainline-v1-1-2b33fe2f44ae@baylibre.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | iio: adc: add new ad7380 driver | expand |
On 08/12/2023 16:51, David Lechner wrote: > This adds a binding specification for the Analog Devices Inc. AD7380 > family of ADCs. > > Signed-off-by: David Lechner <dlechner@baylibre.com> > --- > .../devicetree/bindings/iio/adc/adi,ad7380.yaml | 102 +++++++++++++++++++++ > MAINTAINERS | 9 ++ > 2 files changed, 111 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml > new file mode 100644 > index 000000000000..e9a0b72cd9d3 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml > @@ -0,0 +1,102 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/adc/adi,ad7380.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analog Devices Simultaneous Sampling Analog to Digital Converters > + > +maintainers: > + - Michael Hennerich <Michael.Hennerich@analog.com> > + - Nuno Sá <nuno.sa@analog.com> > + > +description: | > + * https://www.analog.com/en/products/ad7380.html > + * https://www.analog.com/en/products/ad7381.html > + * https://www.analog.com/en/products/ad7383.html > + * https://www.analog.com/en/products/ad7384.html > + > +$ref: /schemas/spi/spi-peripheral-props.yaml# > + > +properties: > + compatible: > + enum: > + - adi,ad7380 > + - adi,ad7381 > + - adi,ad7383 > + - adi,ad7384 > + > + reg: true maxItems (unless 256 items are really possible for this device) > + > + spi-max-frequency: > + maximum: 80000000 > + spi-cpol: true > + spi-cpha: true > + Best regards, Krzysztof
On Fri, 8 Dec 2023 09:51:40 -0600 David Lechner <dlechner@baylibre.com> wrote: > This adds a binding specification for the Analog Devices Inc. AD7380 > family of ADCs. > > Signed-off-by: David Lechner <dlechner@baylibre.com> Hi David, Comments inline. A question for Mark Brown on the 2-wire bit.. Do we have existing DT bindings for devices with parallel spi data outputs? > --- > .../devicetree/bindings/iio/adc/adi,ad7380.yaml | 102 +++++++++++++++++++++ > MAINTAINERS | 9 ++ > 2 files changed, 111 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml > new file mode 100644 > index 000000000000..e9a0b72cd9d3 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml ... > + * https://www.analog.com/en/products/ad7380.html > + * https://www.analog.com/en/products/ad7381.html > + * https://www.analog.com/en/products/ad7383.html > + * https://www.analog.com/en/products/ad7384.html > + adi,sdo-mode: > + $ref: /schemas/types.yaml#/definitions/string > + enum: [ 1-wire, 2-wire ] > + description: > + In 1-wire mode, the SDOA pin acts as the sole data line and the SDOB/ALERT > + pin acts as the ALERT interrupt signal. In 2-wire mode, data for input A > + is read from SDOA and data for input B is read from SDOB/ALERT (and the > + ALERT interrupt signal is not available). This is fun... If I understand correctly 2-wire requires two SPI buses (or a complex spi controller that does parallel serial channels). What would description for that look like in DT and can we not establish what is wanted here from that bus description rather than an adi specific property? Seems a bit like parallel-memories. Mark, any insights into what we should do to describe this? > + > + vcc-supply: > + description: A 3V to 3.6V supply that powers the chip. > + > + vlogic-supply: > + description: > + A 1.65V to 3.6V supply for the logic pins. > + > + refio-supply: > + description: > + A 2.5V to 3.3V supply for the external reference voltage. When omitted, > + the internal 2.5V reference is used. > + > + interrupts: > + description: > + When the device is using 1-wire mode, this property is used to optionally > + specify the ALERT interrupt. > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - adi,sdo-mode Could define a default of 1-wire? Simplifies things a little in the bindings. > + - vcc-supply > + - vlogic-supply
On Sun, Dec 10, 2023 at 2:49 PM Jonathan Cameron <jic23@kernel.org> wrote: > > On Fri, 8 Dec 2023 09:51:40 -0600 > David Lechner <dlechner@baylibre.com> wrote: > > > This adds a binding specification for the Analog Devices Inc. AD7380 > > family of ADCs. > > > > Signed-off-by: David Lechner <dlechner@baylibre.com> > Hi David, > > Comments inline. A question for Mark Brown on the 2-wire bit.. > Do we have existing DT bindings for devices with parallel spi data > outputs? > > > --- > > .../devicetree/bindings/iio/adc/adi,ad7380.yaml | 102 +++++++++++++++++++++ > > MAINTAINERS | 9 ++ > > 2 files changed, 111 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml > > new file mode 100644 > > index 000000000000..e9a0b72cd9d3 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml > ... > > > > + * https://www.analog.com/en/products/ad7380.html > > + * https://www.analog.com/en/products/ad7381.html > > + * https://www.analog.com/en/products/ad7383.html > > + * https://www.analog.com/en/products/ad7384.html > > > + adi,sdo-mode: > > + $ref: /schemas/types.yaml#/definitions/string > > + enum: [ 1-wire, 2-wire ] > > + description: > > + In 1-wire mode, the SDOA pin acts as the sole data line and the SDOB/ALERT > > + pin acts as the ALERT interrupt signal. In 2-wire mode, data for input A > > + is read from SDOA and data for input B is read from SDOB/ALERT (and the > > + ALERT interrupt signal is not available). > > This is fun... If I understand correctly 2-wire requires two SPI buses (or a complex > spi controller that does parallel serial channels). No, it wouldn't work with two separate SPI busses. Only a special controller with parallel serial channels. > What would description for that > look like in DT and can we not establish what is wanted here from that bus description > rather than an adi specific property? > > Seems a bit like parallel-memories. I don't think this is the same as parallel-memories. Looking at the the patch [1] it looks like parallel memories requires multiple CS lines to connect to multiple chips to make the multiple chips behave as one chip but otherwise works like SPI_RX_DUAL. This ADC, on the other hand, works as if two chips that share everything except the MISO line. Each MISO line (SDOA and SDOB) shifts out one bit of two different words in parallel on each line instead of two bits of the same word like SPI_RX_DUAL busses. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git/commit/?h=for-6.8&id=88a50c1663ffa9f6b31705c6bf7a887a2c8d9434 > > Mark, any insights into what we should do to describe this? > > > + > > + vcc-supply: > > + description: A 3V to 3.6V supply that powers the chip. > > + > > + vlogic-supply: > > + description: > > + A 1.65V to 3.6V supply for the logic pins. > > + > > + refio-supply: > > + description: > > + A 2.5V to 3.3V supply for the external reference voltage. When omitted, > > + the internal 2.5V reference is used. > > + > > + interrupts: > > + description: > > + When the device is using 1-wire mode, this property is used to optionally > > + specify the ALERT interrupt. > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - adi,sdo-mode > > Could define a default of 1-wire? Simplifies things a little in the bindings. > > > + - vcc-supply > > + - vlogic-supply > >
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml new file mode 100644 index 000000000000..e9a0b72cd9d3 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml @@ -0,0 +1,102 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/adc/adi,ad7380.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices Simultaneous Sampling Analog to Digital Converters + +maintainers: + - Michael Hennerich <Michael.Hennerich@analog.com> + - Nuno Sá <nuno.sa@analog.com> + +description: | + * https://www.analog.com/en/products/ad7380.html + * https://www.analog.com/en/products/ad7381.html + * https://www.analog.com/en/products/ad7383.html + * https://www.analog.com/en/products/ad7384.html + +$ref: /schemas/spi/spi-peripheral-props.yaml# + +properties: + compatible: + enum: + - adi,ad7380 + - adi,ad7381 + - adi,ad7383 + - adi,ad7384 + + reg: true + + spi-max-frequency: + maximum: 80000000 + spi-cpol: true + spi-cpha: true + + adi,sdo-mode: + $ref: /schemas/types.yaml#/definitions/string + enum: [ 1-wire, 2-wire ] + description: + In 1-wire mode, the SDOA pin acts as the sole data line and the SDOB/ALERT + pin acts as the ALERT interrupt signal. In 2-wire mode, data for input A + is read from SDOA and data for input B is read from SDOB/ALERT (and the + ALERT interrupt signal is not available). + + vcc-supply: + description: A 3V to 3.6V supply that powers the chip. + + vlogic-supply: + description: + A 1.65V to 3.6V supply for the logic pins. + + refio-supply: + description: + A 2.5V to 3.3V supply for the external reference voltage. When omitted, + the internal 2.5V reference is used. + + interrupts: + description: + When the device is using 1-wire mode, this property is used to optionally + specify the ALERT interrupt. + maxItems: 1 + +required: + - compatible + - reg + - adi,sdo-mode + - vcc-supply + - vlogic-supply + +allOf: + - if: + properties: + adi,sdo-mode: + const: 2-wire + then: + properties: + interrupts: false + +unevaluatedProperties: false + +examples: + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + + adc@0 { + compatible = "adi,ad7380"; + reg = <0>; + + spi-cpol; + spi-cpha; + spi-max-frequency = <80000000>; + + adi,sdo-mode = "1-wire"; + interrupts = <27>; + + vcc-supply = <&supply_3_3V>; + vlogic-supply = <&supply_3_3V>; + refio-supply = <&supply_2_5V>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index fe1f6f97f96a..e2a998be5879 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -430,6 +430,15 @@ W: http://wiki.analog.com/AD7142 W: https://ez.analog.com/linux-software-drivers F: drivers/input/misc/ad714x.c +AD738X ADC DRIVER (AD7380/1/2/4) +M: Michael Hennerich <michael.hennerich@analog.com> +M: Nuno Sá <nuno.sa@analog.com> +R: David Lechner <dlechner@baylibre.com> +S: Supported +W: https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad738x +W: https://ez.analog.com/linux-software-drivers +F: Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml + AD7877 TOUCHSCREEN DRIVER M: Michael Hennerich <michael.hennerich@analog.com> S: Supported
This adds a binding specification for the Analog Devices Inc. AD7380 family of ADCs. Signed-off-by: David Lechner <dlechner@baylibre.com> --- .../devicetree/bindings/iio/adc/adi,ad7380.yaml | 102 +++++++++++++++++++++ MAINTAINERS | 9 ++ 2 files changed, 111 insertions(+)