Devicetree
 help / color / mirror / Atom feed
From: Liviu Stan <liviu.stan@analog.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "Liviu Stan" <liviu.stan@analog.com>,
	"David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	"Michael Hennerich" <Michael.Hennerich@analog.com>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Antoniu Miclaus" <antoniu.miclaus@analog.com>,
	"Francesco Lavra" <flavra@baylibre.com>,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux@analog.com, devicetree@vger.kernel.org
Subject: Re: [PATCH v2 7/7] iio: temperature: ltc2983: Add support for ADT7604
Date: Mon, 18 May 2026 11:07:17 +0300	[thread overview]
Message-ID: <20260518080731.83585-1-liviu.stan@analog.com> (raw)
In-Reply-To: <20260516181250.039e154a@jic23-huawei>

On Sat, 16 May 2026 18:12:50 +0100 Jonathan Cameron <jic23@kernel.org> wrote:
> > 
> >  drivers/iio/temperature/ltc2983.c | 401 ++++++++++++++++++++++++++++--
> >  1 file changed, 386 insertions(+), 15 deletions(-)
> > 
> > diff --git a/drivers/iio/temperature/ltc2983.c b/drivers/iio/temperature/ltc2983.c
> > index bf435e965c6d..acd043ed62f5 100644
> > --- a/drivers/iio/temperature/ltc2983.c
> > +++ b/drivers/iio/temperature/ltc2983.c
> > @@ -28,6 +28,8 @@
> >  #define LTC2983_STATUS_REG			0x0000
> >  #define LTC2983_TEMP_RES_START_REG		0x0010
> >  #define LTC2983_TEMP_RES_END_REG		0x005F
> > +#define ADT7604_RES_RES_START_REG		0x0060
> > +#define ADT7604_RES_RES_END_REG			0x00AF
> >  #define LTC2983_EEPROM_KEY_REG			0x00B0
> >  #define LTC2983_EEPROM_READ_STATUS_REG		0x00D0
> >  #define LTC2983_GLOBAL_CONFIG_REG		0x00F0
> > @@ -186,17 +188,43 @@ enum {
> >  	LTC2983_SENSOR_SENSE_RESISTOR = 29,
> >  	LTC2983_SENSOR_DIRECT_ADC = 30,
> >  	LTC2983_SENSOR_ACTIVE_TEMP = 31,
> > +	/* Sensor types for some parts only; map to RTD_CUSTOM/THERMISTOR_CUSTOM in HW */
> > +	LTC2983_SENSOR_COPPER_TRACE = 32,
> > +	LTC2983_SENSOR_LEAK_DETECTOR = 33,
> Given you care about being in range of this I'd add
> 	LTC2983_SENSOR_NUM
> >  };
> 
> > @@ -1329,7 +1649,7 @@ static int ltc2983_parse_fw(struct ltc2983_data *st)
> >  	if (!st->sensors)
> >  		return -ENOMEM;
> >  
> > -	st->iio_channels = st->num_channels;
> > +	st->iio_channels = 0;
> >  	device_for_each_child_node_scoped(dev, child) {
> >  		struct ltc2983_sensor sensor;
> >  
> > @@ -1357,7 +1677,13 @@ static int ltc2983_parse_fw(struct ltc2983_data *st)
> >  			return dev_err_probe(dev, ret,
> >  				"adi,sensor-type property must given for child nodes\n");
> >  
> > -		dev_dbg(dev, "Create new sensor, type %u, chann %u",
> > +		if (sensor.type > LTC2983_SENSOR_LEAK_DETECTOR ||
> 
> To make it easier to extend in future, perhaps add the NUM entry I mention
> above then >= to it here.
> 

This makes sense. I will change in v3. Thanks!

> > +		    !(st->info->supported_sensors & BIT_ULL(sensor.type)))
> > +			return dev_err_probe(dev, -EINVAL,
> > +					     "sensor type %d not supported on %s\n",
> > +					     sensor.type, st->info->name);
> > +
> > +		dev_dbg(dev, "Create new sensor, type %u, channel %u",
> >  			sensor.type, sensor.chan);
> >  
> 
> > @@ -1445,8 +1782,9 @@ static int ltc2983_eeprom_cmd(struct ltc2983_data *st, unsigned int cmd,
> >  
> >  static int ltc2983_setup(struct ltc2983_data *st, bool assign_iio)
> >  {
> > -	u32 iio_chan_t = 0, iio_chan_v = 0, chan, iio_idx = 0, status;
> >  	struct device *dev = &st->spi->dev;
> > +	u32 iio_chan_t = 0, iio_chan_v = 0, iio_chan_r = 0, iio_chan_c = 0;
> > +	u32 chan, iio_idx = 0, status;
> >  	int ret;
> >  
> >  	/* make sure the device is up: start bit (7) is 0 and done bit (6) is 1 */
> > @@ -1493,8 +1831,26 @@ static int ltc2983_setup(struct ltc2983_data *st, bool assign_iio)
> >  		    !assign_iio)
> >  			continue;
> >  
> > +		/*
> > +		 * Copper trace and leak detector sensors without a custom table
> > +		 * produce only a resistance result; the chip does not populate
> > +		 * the temperature result register. Emit only an IIO_RESISTANCE
> > +		 * channel in this case.
> 
> Do we care?  That is are they useful without the table? We could just make it
> required in the binding.
> 

The datasheet specifies the table is optional. But more practically, in order to
be able to add accurate values to the custom table, the users first need to measure
the sensor's resistance at multiple known conditions, so I think the resistance-only
output is useful during that characterization phase, before the table exists. Making
it required would force users to provide placeholder values just to get the driver
to probe.

Thanks,
Liviu

  reply	other threads:[~2026-05-18  8:08 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-14 14:46 [PATCH v2 0/7] iio: temperature: ltc2983: Add support for ADT7604 Liviu Stan
2026-05-14 14:46 ` [PATCH v2 1/7] iio: temperature: ltc2983: Fix macro parenthesization and rename Liviu Stan
2026-05-14 19:32   ` sashiko-bot
2026-05-16 16:43   ` Jonathan Cameron
2026-05-18  8:25     ` Liviu Stan
2026-05-14 14:46 ` [PATCH v2 2/7] iio: temperature: ltc2983: Use local device pointer consistently Liviu Stan
2026-05-14 19:39   ` sashiko-bot
2026-05-16 16:46   ` Jonathan Cameron
2026-05-18  8:30     ` Liviu Stan
2026-05-14 14:46 ` [PATCH v2 3/7] iio: temperature: ltc2983: Fix inconsistent channel wording in messages Liviu Stan
2026-05-14 19:47   ` sashiko-bot
2026-05-16 16:48   ` Jonathan Cameron
2026-05-18  8:36     ` Liviu Stan
2026-05-14 14:46 ` [PATCH v2 4/7] iio: temperature: ltc2983: Use fwnode_property_present() for optional properties Liviu Stan
2026-05-14 20:04   ` sashiko-bot
2026-05-16 16:53   ` Jonathan Cameron
2026-05-18  8:50     ` Liviu Stan
2026-05-14 14:46 ` [PATCH v2 5/7] iio: core: Add IIO_COVERAGE_PERCENT channel type Liviu Stan
2026-05-14 20:16   ` sashiko-bot
2026-05-15  8:38   ` Francesco Lavra
2026-05-15  9:01     ` Stan, Liviu
2026-05-16 16:58   ` Jonathan Cameron
2026-05-18  8:53     ` Liviu Stan
2026-05-14 14:46 ` [PATCH v2 6/7] dt-bindings: iio: temperature: Add ADT7604 support to adi,ltc2983 Liviu Stan
2026-05-14 20:43   ` sashiko-bot
2026-05-16 17:03   ` Jonathan Cameron
2026-05-18  8:55     ` Liviu Stan
2026-05-14 14:46 ` [PATCH v2 7/7] iio: temperature: ltc2983: Add support for ADT7604 Liviu Stan
2026-05-15  8:38   ` Francesco Lavra
2026-05-15  9:07     ` Stan, Liviu
2026-05-16 17:12   ` Jonathan Cameron
2026-05-18  8:07     ` Liviu Stan [this message]
2026-05-18 13:58       ` Jonathan Cameron
2026-05-20 18:19         ` Liviu Stan
2026-05-20 18:53           ` Jonathan Cameron
2026-05-15  6:42 ` [PATCH v2 0/7] " Stan, Liviu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260518080731.83585-1-liviu.stan@analog.com \
    --to=liviu.stan@analog.com \
    --cc=Michael.Hennerich@analog.com \
    --cc=andy@kernel.org \
    --cc=antoniu.miclaus@analog.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=flavra@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@analog.com \
    --cc=nuno.sa@analog.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox