W1: w1_slave units, standardize 1C or .001C? Break API

From: David Fries
Date: Mon Jan 21 2008 - 18:27:17 EST


The ds18b20 one wire temperature sensor conversion routine is
returning the units in degrees C while the ds1820 (ds18s20) is
returning it in .001 degrees C. 20C vs 20312C. Once you know the
units I'm liking the latter as it gives a higher precision. Time to
break user applications so the driver can give the temperature in the
same units for both sensors.

I only have the ds18b20 sensor model. Here is the current output from
the sys file for this sensor.
/sys/devices/w1_bus_master1/28-0000000e84a2/w1_slave
45 01 4b 46 7f ff 0b 10 84 : crc=84 YES
45 01 4b 46 7f ff 0b 10 84 t=20

I ran the example data from the specification for the ds1820 through
it's conversion routine and found that t= was 1000 times the value.
What should the displayed units be?

This is the same ds18b20 conversion *1000. Is everyone ok or is any
objecting to .001 degrees C for the units? Patch will follow. The
.001 C does truncate one bit of precision from the ds18b20 by the way.

45 01 4b 46 7f ff 0b 10 84 : crc=84 YES
45 01 4b 46 7f ff 0b 10 84 t=20312

--
David Fries <david@xxxxxxxxx>
http://fries.net/~david/ (PGP encryption key available)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/