[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240830-chaos-unrivaled-04c5c4c6add9@spud>
Date: Fri, 30 Aug 2024 14:14:20 +0100
From: Conor Dooley <conor@...nel.org>
To: "Sperling, Tobias" <Tobias.Sperling@...ting.com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-hwmon@...r.kernel.org" <linux-hwmon@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>,
"jdelvare@...e.com" <jdelvare@...e.com>,
"linux@...ck-us.net" <linux@...ck-us.net>,
"robh@...nel.org" <robh@...nel.org>,
"krzk+dt@...nel.org" <krzk+dt@...nel.org>,
"conor+dt@...nel.org" <conor+dt@...nel.org>,
"corbet@....net" <corbet@....net>,
Jonathan Cameron <jic23@...nel.org>, linux-iio@...r.kernel.org
Subject: Re: [PATCH 1/2] dt-bindings: hwmon: Introduce ADS71x8
Hey Tobias, Guenter, Jonathan,
On Fri, Aug 30, 2024 at 11:49:53AM +0000, Sperling, Tobias wrote:
> From b2e04ce5500faf274654be5284be9db4f3abefce Mon Sep 17 00:00:00 2001
> From: Tobias Sperling <tobias.sperling@...ting.com>
> Date: Fri, 23 Aug 2024 12:08:33 +0200
> Subject: [PATCH 1/2] dt-bindings: hwmon: Introduce ADS71x8
>
> Add documentation for the driver of ADS7128 and ADS7138 12-bit, 8-channel
> analog-to-digital converters. These ADCs have a wide operating range and
> a wide feature set. Communication is based on an I2C interface.
> The driver provides the functionality of manually reading single channels
> or sequentially reading all channels automatically.
>
> Signed-off-by: Tobias Sperling <tobias.sperling@...ting.com>
> ---
> .../devicetree/bindings/hwmon/ti,ads71x8.yaml | 85 +++++++++++
If this is a "generic" adc, why is it going into hwmon?
I would have expected this to be in iio/adc, and use more typical adc
bindings, even if the driver is in hwmon.
Guenter/Jonathan wdyt?
> Documentation/hwmon/ads71x8.rst | 140 ++++++++++++++++++
> Documentation/hwmon/index.rst | 1 +
And these two documents are not dt-bindings, so they should either be in
their own commit or alongside the driver. Not sure how Guenter likes
things.
> 3 files changed, 226 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/hwmon/ti,ads71x8.yaml
> create mode 100644 Documentation/hwmon/ads71x8.rst
>
> diff --git a/Documentation/devicetree/bindings/hwmon/ti,ads71x8.yaml b/Documentation/devicetree/bindings/hwmon/ti,ads71x8.yaml
> new file mode 100644
> index 000000000000..e422c4ebd207
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/ti,ads71x8.yaml
Please make the filename match a compatible.
> @@ -0,0 +1,85 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +
> +$id: http://devicetree.org/schemas/hwmon/ti,ads71x8.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments ADS7128/ADS7138 Analog to Digital Converter (ADC)
> +
> +maintainers:
> + - None
Nice trick..
> +description: |
> + The ADS7128 is 12-Bit, 8-Channel Sampling Analog to Digital Converter (ADC)
> + with an I2C interface.
> +
> + Datasheets:
> + https://www.ti.com/product/ADS7128
> + https://www.ti.com/product/ADS7138
> +
> +properties:
> + compatible:
> + enum:
> + - ti,ads7128
> + - ti,ads7138
> +
> + reg:
> + maxItems: 1
> +
> + avdd-supply:
There's also a dvdd on the ads7128.
> + description:
> + The regulator used as analog supply voltage as well as reference voltage.
> +
> + ti,mode:
> + $ref: /schemas/types.yaml#/definitions/uint8
> + description: |
> + Operation mode
> + Mode 0 - Manual mode. A channel is only sampled when the according input
> + in the sysfs is read.
> + Mode 1 - Auto mode. All channels are automatically sampled sequentially.
> + Reading an input returns the last valid sample. In this mode further
> + features like statistics and interrupts are available.
> + default: 0
I don't think this ti,mode property is suitable for bindings. sysfs is a
linux implementation detail, when to do sampling is an implementation
detail of your driver. Bindings are only supposed to describe properties
of the hardware, not set software policy.
> +
> + ti,interval:
> + $ref: /schemas/types.yaml#/definitions/uint16
> + description: |
> + Only considered in mode 1!
> + Interval in microseconds a new sample is triggered. Is set to closest
> + possible interval, see datasheet.
For iio devices, this is usually set from userspace, not from
devicetree, because it is usually not a hardware property, but rather
something a user may want to change at runtime.
> + default: 1
> +
> + interrupts:
> + description: |
> + Only considered in mode 1!
> + Interrupt specifier the device's ALERT pin is connected to. Level must be
> + IRQ_TYPE_LEVEL_LOW. If not configured the digital window comparator (DWC)
> + is not available.
> + maxItems: 1
You've got 8 channels on the device, so I would be expecting to see
these described here, with a reference to adc.yaml, even if the only
suitable property is "label".
> +
> +required:
> + - compatible
> + - reg
> + - avdd-supply
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ads7138@10 {
This should just be "dac@".
> + compatible = "ti,ads7138";
> + reg = <0x10>;
> + avdd-supply = <®_stb_3v3>;
> + ti,mode = /bits/ 8 <1>;
> + ti,interval = /bits/ 16 <1000>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
> + status = "okay";
> + };
> + };
oCheers,
Conor.
Download attachment "signature.asc" of type "application/pgp-signature" (229 bytes)
Powered by blists - more mailing lists