Re: [PATCH 2/3] dt-bindings: iio: temperature: ltc2983: support more parts

From: Cosmin Tanislav
Date: Mon Oct 17 2022 - 03:01:15 EST




On 10/14/22 18:37, Jonathan Cameron wrote:
On Fri, 14 Oct 2022 15:37:23 +0300
Cosmin Tanislav <demonsingur@xxxxxxxxx> wrote:

From: Cosmin Tanislav <cosmin.tanislav@xxxxxxxxxx>

Add support for the following parts:
* LTC2984
* LTC2986
* LTM2985

The LTC2984 is a variant of the LTC2983 with EEPROM.
The LTC2986 is a variant of the LTC2983 with only 10 channels,
EEPROM and support for active analog temperature sensors.

If they 'work' but with fewer features, perhaps a fallback
compatible?


10 channels vs 20 channels. Using ltc2983 compatible as fallback
would allow you to have 10 non-functional channels specified in the
dts.

The LTM2985 is software-compatible with the LTC2986.

Fallback compatible?


Signed-off-by: Cosmin Tanislav <cosmin.tanislav@xxxxxxxxxx>
---
.../bindings/iio/temperature/adi,ltc2983.yaml | 63 +++++++++++++++++--
1 file changed, 59 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml b/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml
index 722781aa4697..c33ab524fb64 100644
--- a/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml
+++ b/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml
@@ -4,19 +4,27 @@
$id: http://devicetree.org/schemas/iio/temperature/adi,ltc2983.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
-title: Analog Devices LTC2983 Multi-sensor Temperature system
+title: Analog Devices LTC2983, LTC2986, LTM2985 Multi-sensor Temperature system
maintainers:
- Nuno Sá <nuno.sa@xxxxxxxxxx>
description: |
- Analog Devices LTC2983 Multi-Sensor Digital Temperature Measurement System
+ Analog Devices LTC2983, LTC2984, LTC2986, LTM2985 Multi-Sensor Digital
+ Temperature Measurement Systems
+
https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf
+ https://www.analog.com/media/en/technical-documentation/data-sheets/2984fb.pdf
+ https://www.analog.com/media/en/technical-documentation/data-sheets/29861fa.pdf
+ https://www.analog.com/media/en/technical-documentation/data-sheets/ltm2985.pdf
properties:
compatible:
enum:
- adi,ltc2983
+ - adi,ltc2984
+ - adi,ltc2986
+ - adi,ltm2985
reg:
maxItems: 1
@@ -26,7 +34,7 @@ properties:
adi,mux-delay-config-us:
description:
- The LTC2983 performs 2 or 3 internal conversion cycles per temperature
+ The device performs 2 or 3 internal conversion cycles per temperature

Definitely a lesson here in avoiding device names in the descriptions!

result. Each conversion cycle is performed with different excitation and
input multiplexer configurations. Prior to each conversion, these
excitation circuits and input switch configurations are changed and an
@@ -145,7 +153,7 @@ patternProperties:
adi,three-conversion-cycles:
description:
Boolean property which set's three conversion cycles removing
- parasitic resistance effects between the LTC2983 and the diode.
+ parasitic resistance effects between the device and the diode.
type: boolean
adi,average-on:
@@ -353,6 +361,41 @@ patternProperties:
description: Boolean property which set's the adc as single-ended.
type: boolean
+ "^temp@":
+ type: object
+ description:
+ Represents a channel which is being used as an active analog temperature
+ sensor.
+
+ properties:
+ adi,sensor-type:
+ description:
+ Identifies the sensor as an active analog temperature sensor.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ const: 31

Ah. This is a bit odd as it's fixed for the channel type. However there
is precedence in this binding so fair enough.


I think it

+
+ adi,single-ended:
+ description: Boolean property which sets the sensor as single-ended.
+ type: boolean
+
+ adi,custom-temp:
+ description:
+ This is a table, where each entry should be a pair of
+ voltage(mv)-temperature(K). The entries must be given in nv and uK
+ so that, the original values must be multiplied by 1000000. For
+ more details look at table 71 and 72.
+ Note should be signed, but dtc doesn't currently maintain the
+ sign.
+ $ref: /schemas/types.yaml#/definitions/uint64-matrix
+ minItems: 3
+ maxItems: 64
+ items:
+ minItems: 2
+ maxItems: 2
+
+ required:
+ - adi,custom-temp
+
"^rsense@":
type: object
description:
@@ -382,6 +425,18 @@ required:
- reg
- interrupts
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - adi,ltc2983
+ - adi,ltc2984
+ then:
+ patternProperties:
+ "^temp@": false
+
additionalProperties: false
examples: